Saltar al contenido principal
Este tutorial describe cómo solicitar los resultados de los experimentos y determinar las variaciones ganadoras usando la Automation API. Sigue a los tutoriales anteriores sobre creación de experimentos, modificación de variaciones, asociación de objetivos y segmentos y lanzamiento de experimentos.

Requisitos

  • access_token
La Automation API requiere un token de acceso. Obtenga el token de forma programática siguiendo las instrucciones de la sección sobre cómo obtener un token de acceso.

Objetivo

El tutorial utiliza el siguiente experimento de ejemplo:
Experiment_188308
Este experimento, llamado Product Page Redesign, incluye dos variaciones además de la versión original: Redesign 1 (ID 828220) y Redesign 2 (ID 828221). Aunque el experimento tiene varios objetivos, este tutorial se centrará únicamente en el objetivo principal, que es hacer seguimiento de las suscripciones a seguros mediante Click Tracking. Esta guía describe cómo recuperar e interpretar los resultados del experimento y aplicar filtros.
El tutorial también se aplica a los experimentos de Feature Flag; sin embargo, utilice los endpoints https://api.kameleoon.com/feature-flags/* en lugar de https://api.kameleoon.com/experiments/*:El experimentId se encuentra en el Rollout Planner:

1. Recuperar el código de datos

Caso 1: Recuperar resultados directamente

Endpoint: Recupere los resultados del experimento enviando una solicitud POST al endpoint Request experiment’s result.
NombreTipoDescripción
experimentIdStringCampo obligatorio en el encabezado de la solicitud.
goalIdArrayProporcione el ID del objetivo específico para identificar los resultados del objetivo principal.
referenceVariationIdObjectID de la variación de referencia para comparación.
sequentialTestingStringEstablecido en true para usar pruebas secuenciales en la determinación de intervalos de confianza.
visitorDataStringEstablecido en false para recuperar datos basados en visitas. Establecido en true para datos basados en visitantes.
Ejemplo:
curl -L -X POST 'https://api.kameleoon.com/experiments/188308/results' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
  "visitorData": false,
  "sequentialTesting": true,
  "referenceVariationId": "0",   
  "goalsIds": [
 279599
  ]
}'

Caso 2: Compartir resultados sin autorización

1. Recuperar un SharedToken

Endpoint: Comparta los resultados con usuarios no autorizados obteniendo un SharedToken del endpoint Share experiment results.
curl -L -X POST 'https://api.kameleoon.com/experiments/188308/results/share' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
  "visitorData": false,
  "sequentialTesting": true,
  "referenceVariationId": "0",   
  "goalsIds": [
 279599
  ]
}'
Respuesta:
{
    "method": "POST",
    "url": "https://api.kameleoon.com/experiments/188308/results",
    "path": "/experiments/188308/results",
    "headers": {
        "SharedToken": "eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE4NDQ5NDI5MTMsInNoYXJlZENvZGUiOiJhZmM1NzRjN2I4MjY4NTY3NzI2YjZhMDRhMTUxMjgyNjA3Zjk1ZGI4YjA1Y2RkZGY1ZDEwM2ExZDg5ZWM0MmZmIn0.oCECNm5mEhgIthc6eejo9BrfB7p8kEIrpoqtNb4JUiHK6nsxWHMvLc4hHYXCg3DgaBlVoKv6eEZHGty9c-VAoA",
        "Content-Type": "application/json"
    },
    "payload": {
        "visitorData": false,
        "sequentialTesting": true,
        "referenceVariationId": "0",
        "goalsIds": [
            279599
        ]
    }
}

1. Recuperar el dataCode con el SharedToken

Recupere los resultados del experimento enviando una solicitud POST al endpoint Request experiment’s result usando el SharedToken en lugar de un token de acceso.
NombreTipoDescripción
experimentIdStringCampo obligatorio en el encabezado de la solicitud.
goalIdArrayProporcione el ID del objetivo específico para identificar los resultados del objetivo principal.
referenceVariationIdObjectID de la variación de referencia para comparación.
sequentialTestingStringEstablecido en true para usar pruebas secuenciales en la determinación de intervalos de confianza.
visitorDataStringEstablecido en false para recuperar datos basados en visitas. Establecido en true para datos basados en visitantes.
Ejemplo:
curl -L -X POST 'https://api.kameleoon.com/experiments/188308/results' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'SharedToken: <ACCESS_TOKEN>' \
--data-raw '{
  "visitorData": false,
  "sequentialTesting": true,
  "referenceVariationId": "0",   
  "goalsIds": [
 279599
  ]
}'

Respuesta:
{"dataCode":"14443931880924098266207585267983330260134079899081739889989435434342588016765"}

2. Recuperar los resultados del experimento

Endpoint: Tras recibir el dataCode, utilice el endpoint result. Ejemplo:
curl -L -X GET 'https://api.kameleoon.com/results?dataCode=14443931880924098266207585267983330260134079899081739889989435434342588016765'

Respuesta:

{
 "status": "READY",
 "data": {
  "dataCode": "14443931880924098266207585267983330260134079899081739889989435434342588016765",
  "variationData": {
   "_reference": {
    "breakdownData": {
     "_reference": {
      "intervalData": {},
      "generalData": {
       "visitCount": 126862,
       "visitorCount": 0,
       "goalsData": {
        "279599": {
         "conversionCount": 1898,
         "convertedVisitCount": 1898,
         "revenueCount": 235352.0,
         "convertedVisitorCount": 0,
         "revenuePerVisit": 1.86,
         "revenuePerVisitor": 0.0,
         "conversionRate": 0.014961138875313333,
         "averageCart": 124.0,
         "ratioValue": 0.0,
         "outlierBounds": {
          "lower": 0.1,
          "upper": 99.0
         }
        }
       }
      }
     }
    }
   },
   "828220": {
    "breakdownData": {
     "_reference": {
      "intervalData": {},
      "generalData": {
       "visitCount": 167938,
       "visitorCount": 0,
       "goalsData": {
        "279599": {
         "conversionCount": 7826,
         "convertedVisitCount": 7826,
         "revenueCount": 986076.0,
         "convertedVisitorCount": 0,
         "revenuePerVisit": 5.87,
         "revenuePerVisitor": 0.0,
         "reliability": 100.0,
         "improvementRange": {
          "min": 193.92,
          "max": 229.03,
          "half": 17.56
         },
         "improvementRate": 211.48,
         "conversionRate": 0.04660053114840001,
         "averageCart": 126.0,
         "ratioValue": 0.0,
         "continuousMetrics": {
          "conversions": {
           "reliability": 1.0,
           "improvementRate": 2.114771645178252,
           "halfInterval": 0.10445147824911348,
           "lowerBound": 2.0103201669291386,
           "upperBound": 2.219223123427365
          },
          "revenuePerVisit": {
           "reliability": 1.0,
           "improvementRate": 2.1650098975198366,
           "halfInterval": 0.10613617951119597,
           "lowerBound": 2.0588737180086407,
           "upperBound": 2.2711460770310326
          },
          "averageCart": null
         },
         "outlierBounds": {
          "lower": 0.1,
          "upper": 99.0
         }
        }
       }
      }
     }
    }
   },
   "828221": {
    "breakdownData": {
     "_reference": {
      "intervalData": {},
      "generalData": {
       "visitCount": 174194,
       "visitorCount": 0,
       "goalsData": {
        "279599": {
         "conversionCount": 1477,
         "convertedVisitCount": 1477,
         "revenueCount": 189056.0,
         "convertedVisitorCount": 0,
         "revenuePerVisit": 1.09,
         "revenuePerVisitor": 0.0,
         "reliability": 100.0,
         "improvementRange": {
          "min": -47.93,
          "max": -38.72,
          "half": 4.6
         },
         "improvementRate": -43.33,
         "conversionRate": 0.00847905209134643,
         "averageCart": 128.0,
         "ratioValue": 0.0,
         "continuousMetrics": {
          "conversions": {
           "reliability": 1.0,
           "improvementRate": -0.4332615877700786,
           "halfInterval": 0.027369693136479373,
           "lowerBound": -0.46063128090655797,
           "upperBound": -0.40589189463359926
          },
          "revenuePerVisit": {
           "reliability": 1.0,
           "improvementRate": -0.41497970350459723,
           "halfInterval": 0.028252586463462577,
           "lowerBound": -0.4432322899680598,
           "upperBound": -0.38672711704113466
          },
          "averageCart": null
         },
         "outlierBounds": {
          "lower": 0.1,
          "upper": 99.0
         }
        }
       }
      }
     }
    }
   }
  },
  "ventilationNames": null,
  "cupedDataByGoalId": {}
 }
}

3. Interpretar los resultados para determinar la variación ganadora

Las variaciones ganadoras deben demostrar una alta fiabilidad (superior al 95%) y una tasa de mejora positiva en comparación con la variación de referencia. La respuesta JSON muestra que tanto Redesign 1 como Redesign 2 tienen una tasa de fiabilidad del 100%. Sin embargo, Redesign 1 tiene una tasa de mejora del +211,48% frente a la tasa del -43,33% de Redesign 2. Por lo tanto, Redesign 1 es la ganadora. Redesign 1
"828220": {
    "breakdownData": {
     "_reference": {
      "intervalData": {},
      "generalData": {
       "visitCount": 167938,
       "visitorCount": 0,
       "goalsData": {
        "279599": {
         "conversionCount": 7826,
         "convertedVisitCount": 7826,
         "revenueCount": 986076.0,
         "convertedVisitorCount": 0,
         "revenuePerVisit": 5.87,
         "revenuePerVisitor": 0.0,
         "reliability": 100.0,
         "improvementRange": {
          "min": 193.92,
          "max": 229.03,
          "half": 17.56
         },
         "improvementRate": 211.48,
Redesign 2

"828221": {
    "breakdownData": {
     "_reference": {
      "intervalData": {},
      "generalData": {
       "visitCount": 174194,
       "visitorCount": 0,
       "goalsData": {
        "279599": {
         "conversionCount": 1477,
         "convertedVisitCount": 1477,
         "revenueCount": 189056.0,
         "convertedVisitorCount": 0,
         "revenuePerVisit": 1.09,
         "revenuePerVisitor": 0.0,
         "reliability": 100.0,
         "improvementRange": {
          "min": -47.93,
          "max": -38.72,
          "half": 4.6
         },
         "improvementRate": -43.33,

4. Filtrar los resultados del experimento

Obtenga resultados específicos utilizando los parámetros breakdown y filter. El parámetro breakdown organiza los datos por factores como nuevos visitantes, sistema operativo, navegador, día de la semana, SDK y zona horaria. Por ejemplo, devuelva un desglose por navegador solo para los nuevos visitantes incluyendo el parámetro breakdown establecido en BROWSER y un parámetro filters establecido en NEW_VISITOR, basándose en el procedimiento de resultados directos. La solicitud cURL al endpoint Export experiment results debe verse como sigue:

curl -L -X POST 'https://api.kameleoon.com/experiments/188308/results' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>
' \
--data-raw '{
  "visitorData": true,
  "sequentialTesting": true,
  "breakdown": {
    "type": "BROWSER"
  },
  "referenceVariationId": "0",
  "filters": [
    
    {
        "type":"NEW_VISITOR",
        "visitorsType":"NEW_VISITORS",
        "include":true
    }],
  "goalsIds": [
        279599
  ]
}'
Tras recibir el dataCode, envíe la siguiente solicitud GET:
curl -L -X GET 'https://api.kameleoon.com/results?dataCode=14443931880924098266207585267983330260134079899081739889989435434342588016765'
Una solicitud exitosa devuelve los resultados del experimento para los nuevos visitantes que utilizan el navegador Chrome. La siguiente respuesta está truncada para mayor claridad:
>....                                                                                                                                                              
                        }
                    },
                    "OTHERS": {
                        "intervalData": {},
                        "generalData": {
                            "visitCount": 0,
                            "visitorCount": 587206,
                            "goalsData": {
                                "279599": {
                                    "conversionCount": 5410,
                                    "convertedVisitCount": 0,
                                    "revenueCount": 692480.0,
                                    "convertedVisitorCount": 5359,
                                    "revenuePerVisit": 0.0,
                                    "revenuePerVisitor": 1.18,
                                    "reliability": 100.0,
                                    "improvementRange": {
                                        "min": -53.0,
                                        "max": -48.7,
                                        "half": 2.15
                                    },
                                    "improvementRate": -50.85,
                                    "conversionRate": 0.009126269145751235,
                                    "averageCart": 129.22,
                                    "ratioValue": 0.0
                                }
                            }
                        }
                    },
                    "CHROME": {
                        "intervalData": {},
                        "generalData": {
                            "visitCount": 0,
                            "visitorCount": 16,
                            "goalsData": {
                                "279599": {
                                    "conversionCount": 0,
                                    "convertedVisitCount": 0,
                                    "revenueCount": 0.0,
                                    "convertedVisitorCount": 0,
                                    "revenuePerVisit": 0.0,
                                    "revenuePerVisitor": 0.0,
                                    "reliability": 50.0,
                                    "improvementRange": {
                                        "min": null,
                                        "max": null,
                                        "half": null
                                    },
                                    "improvementRate": 0.0,
                                    "averageCart": 0.0,
                                    "ratioValue": 0.0
                                }
                            }
                        }
                    }
                }
            }
        },
        "ventilationNames": null,
        "cupedDataByGoalId": {}
    }
}