Existen dos formas principales de generar informes sobre los experimentos:
- Informes directos de experimentos: Consulta el recurso
experimentpara obtener métricas. Esta opción proporciona métricas para los grupos de control y de tratamiento en una sola respuesta, junto con datos de comparación estadística, como la efectividad y los valores p. Esta es la única forma de generar informes sobre experimentos dentro de la campaña. - Informes de campañas: Consulta el recurso
campaignpara obtener métricas, usandocampaign.experiment_typepara distinguir entre las campañas base y las experimentales. Esta opción solo está disponible para los experimentos que usan campañas de control y de tratamiento independientes, como los experimentos administrados por el sistema.
Esta guía se centra principalmente en los informes directos de experimentos, que son compatibles con todos los tipos de experimentos que admiten informes.
Informes directos de experimentos
Puedes consultar el recurso experiment directamente para recuperar las métricas de rendimiento y las comparaciones estadísticas entre tus grupos de control y de tratamiento.
Métricas e importancia estadística
Para las métricas principales, como los clics, las impresiones, el costo, las conversiones y el valor de conversión, el recurso experiment proporciona métricas de tratamiento (por ejemplo, metrics.clicks) y métricas de control (por ejemplo, metrics.control_clicks) en la misma fila.
También proporciona campos para ayudarte a evaluar la importancia estadística de cualquier diferencia entre los grupos:
metrics.*_p_value: Es la probabilidad de que los resultados observados ocurran si el experimento no tuviera un efecto real en la métrica. Un valor p más bajo indica una mayor importancia estadística.metrics.*_point_estimate: Es la efectividad porcentual estimada (positiva o negativa) en la métrica determinada para el grupo de tratamiento en comparación con el grupo de control. Junto conmargin_of_error, describen un intervalo de confianza con un nivel de confianza prescrito para la diferencia que se estima. La cantidad que se estima es (tratamiento / control - 1). La estimación puntual es el centro del intervalo de confianza.metrics.*_margin_of_error: Es el radio del intervalo de confianza, que se centra enpoint_estimate. Se calcula para un nivel de confianza prescrito, que depende del tipo de experimento.
Los siguientes campos de métricas principales son compatibles con el recurso experiment, incluido un valor del grupo de tratamiento, un valor del grupo de control y los campos de estadísticas que se mencionaron anteriormente:
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
En el caso de las conversiones, específicamente, los campos estadísticos están disponibles a través de los siguientes campos absolute_change, en lugar de como valores relativos:
metrics.conversions_absolute_change_p_value: Es el valor p de la hipótesis nula de que el experimento no tiene ningún efecto en el cambio absoluto de las conversiones. El rango es de 0 a 1.metrics.conversions_absolute_change_point_estimate: Es la estimación puntual cuando se estima el efecto del experimento en el cambio absoluto de las conversiones.metrics.conversions_absolute_change_margin_of_error: Es el margen de error cuando se estima el efecto del experimento en el cambio absoluto de las conversiones.
Para obtener ayuda para crear consultas válidas al recurso experiment, usa la
herramienta Compilador de consultas de Google Ads.
Consulta de ejemplo
La siguiente consulta de GAQL recupera las métricas clave de un experimento:
SELECT
experiment.experiment_id,
experiment.name,
experiment.type,
metrics.clicks,
metrics.control_clicks,
metrics.clicks_point_estimate,
metrics.clicks_margin_of_error,
metrics.clicks_p_value,
metrics.conversions,
metrics.control_conversions,
metrics.conversions_absolute_change_point_estimate,
metrics.conversions_absolute_change_margin_of_error,
metrics.conversions_absolute_change_p_value
FROM experiment
WHERE experiment.experiment_id = EXPERIMENT_ID
Interpreta los resultados
Puedes usar los campos de valor p, estimación puntual y margen de error para determinar si tu experimento arrojó resultados estadísticamente significativos. Por ejemplo,
si conversions_absolute_change_p_value está por debajo del umbral elegido (por
ejemplo,
0.05 para una confianza del 95%) y conversions_absolute_change_point_estimate -
conversions_absolute_change_margin_of_error es mayor que cero, indica
que el grupo de tratamiento tiene un rendimiento significativamente mejor que el grupo de control
en términos de conversiones.
A continuación, se muestra un fragmento de Python que demuestra cómo evaluar los resultados en función de las estimaciones del valor p y de la efectividad:
Java
This example is not yet available in Java; you can take a look at the other languages.
C#
This example is not yet available in C#; you can take a look at the other languages.
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
def evaluate_experiment( client: GoogleAdsClient, customer_id: str, row: GoogleAdsRow ) -> None: """Evaluates the performance of the experiment. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. row: a GoogleAdsRow containing the experiment arm and metrics. """ metrics = row.metrics experiment_resource_name = row.experiment.resource_name # 1. Evaluate conversion success as a primary success signal. # - Point Estimate: Represents the estimated average lift or difference in conversions. # - Margin of Error: Outlines the confidence interval bounds. Note that the margin_of_error provided by the API is calculated for a preset confidence level which is set based on the experiment type. # - Lower Bound: (Point Estimate - Margin of Error). If this value is above 0, # we have statistical significance that performance has improved. conv_p_value = metrics.conversions_absolute_change_p_value conv_lift = metrics.conversions_absolute_change_point_estimate conv_error = metrics.conversions_absolute_change_margin_of_error conv_lower_bound = conv_lift - conv_error if conv_p_value <= P_VALUE_THRESHOLD: if conv_lower_bound > 0: print( "Significant Success: Conversions increased. Even at the lower" f" bound, the lift is {conv_lower_bound:.2f}. Promoting" " changes." ) promote_experiment(client, customer_id, experiment_resource_name) return elif (conv_lift + conv_error) < 0: print( "Significant Decline: Even the upper bound" f" ({conv_lift + conv_error:.2f}) is below zero. Ending" " experiment." ) end_experiment(client, customer_id, experiment_resource_name) return # 2. Evaluate click volume as a secondary signal. # This is helpful as an early indicator or for lower-volume accounts. click_p_value = metrics.clicks_p_value click_lift = metrics.clicks_point_estimate click_error = metrics.clicks_margin_of_error click_lower_bound = click_lift - click_error if click_p_value <= P_VALUE_THRESHOLD and click_lower_bound > 0: # We have a directional winner: high confidence in more traffic, # but not enough data to confirm conversion impact yet. print( f"Click volume is significantly up (+{click_lift*100:.1f}%). " "Graduating treatment for further manual analysis." ) # Graduate if it's a separate campaign test. # This keeps the high-volume treatment running independently. # Intra-campaign experiments (like ADOPT_BROAD_MATCH_KEYWORDS and # ADOPT_AI_MAX) run directly within the base campaign, meaning there is only # a single campaign involved and no separate treatment campaign to graduate. # Therefore, graduation is not supported for intra-campaign experiments. experiment_type_name = row.experiment.type_.name if ( experiment_type_name != "ADOPT_BROAD_MATCH_KEYWORDS" and experiment_type_name != "ADOPT_AI_MAX" ): graduate_experiment(client, customer_id, experiment_resource_name) else: print( "Intra-campaign trial detected: Graduation is not supported" " because there is only one campaign. Continuing to run to" " gather more conversion data." ) else: # Both conversions and clicks are noisy. print( "Inconclusive: No significant lift in Conversions" f" (p={conv_p_value:.2f}) or Clicks (p={click_p_value:.2f})." f" Current estimated lift: {conv_lift:.2f} +/- {conv_error:.2f}." " Continue running." )
Ruby
This example is not yet available in Ruby; you can take a look at the other languages.
Perl
This example is not yet available in Perl; you can take a look at the other languages.
curl
Beneficios en comparación con los informes de campañas
Los informes directos de experimentos ofrecen varias ventajas en comparación con la consulta de informes de campañas por separado:
- Métricas centralizadas: Recupera métricas para el control y el tratamiento en una sola fila.
- Datos de confianza estadística: Proporciona valores p, estimaciones puntuales y márgenes de error calculados.
- Eficiencia: Elimina la necesidad de unir o comparar manualmente los resultados de varios informes.
- Compatibilidad dentro de la campaña: Es la única forma de comparar el control con el tratamiento para los experimentos dentro de la campaña, en los que el tráfico se divide dentro de una sola campaña.
Informes de campañas
Para los experimentos que crean campañas de tratamiento independientes (por ejemplo,
SEARCH_CUSTOM), puedes consultar el recurso campaign y usar
campaign.experiment_type para identificar las campañas BASE (control) y EXPERIMENT
(tratamiento). Este enfoque es útil si necesitas segmentar las métricas a un nivel más detallado (por ejemplo, por grupo de anuncios o palabra clave) o ver metadatos de la campaña que no están disponibles en el recurso experiment. Sin embargo, requiere que realices comparaciones de rendimiento y cálculos estadísticos de forma manual.
No puedes usar los informes a nivel de la campaña para comparar los grupos de experimentos dentro de la campaña, ya que la división del tráfico se realiza internamente dentro de una sola campaña.
La consulta de campaign para un experimento dentro de la campaña solo muestra totales agregados.
Prácticas recomendadas
- Selecciona un nivel de confianza adecuado: Establecer un umbral de valor p más bajo puede proporcionar orientación direccional más rápido, en especial con presupuestos o volúmenes de conversiones más bajos. Una confianza del 95% (valor p <= 0.05) se considera el estándar académico y puede ser mejor para obtener resultados más precisos en un período más largo.
- Ejecuta experimentos durante el tiempo suficiente: Ejecuta experimentos durante, al menos, 4 semanas para tener en cuenta los ciclos de rendimiento semanales, las demoras en las conversiones y los períodos de aprendizaje.
- Da tiempo para el aumento: En el caso de las campañas que usan ofertas automáticas o prueban funciones nuevas, ignora las primeras 1 o 2 semanas de datos para dar tiempo a que los modelos de ofertas y los niveles de tráfico se reajusten a la división.
- Usa divisiones de 50/50: Por lo general, una división del tráfico de 50/50 es la forma más rápida de obtener resultados estadísticamente significativos.
- Programa con anticipación: Establece la fecha de inicio de tu experimento entre 3 y 7 días en el futuro para dar tiempo a los procesos de revisión y aprobación de anuncios.
- Solo puedes ejecutar un experimento por campaña en un momento determinado.