Il existe deux manières principales de créer des rapports sur les tests :
- Rapports de test directs : interrogez la ressource
experimentpour obtenir des métriques. Cette option fournit des métriques pour les groupes de contrôle et de traitement dans une seule réponse, ainsi que des données de comparaison statistique telles que l'augmentation et les valeurs p. Il s'agit de la seule façon de créer des rapports sur les tests intracampagnes. - Rapports sur les campagnes : interrogez la ressource
campaignpour obtenir des métriques, en utilisantcampaign.experiment_typepour faire la distinction entre les campagnes de base et les campagnes tests. Cette option n'est disponible que pour les tests qui utilisent des campagnes de contrôle et de traitement distinctes, comme les tests gérés par le système.
Ce guide se concentre principalement sur les rapports de test directs, qui sont compatibles avec tous les types de tests qui prennent en charge les rapports.
Rapports de test directs
Vous pouvez interroger directement la ressource experiment pour récupérer les métriques de performances et les comparaisons statistiques entre vos groupes de contrôle et de traitement.
Métriques et pertinence statistique
Pour les métriques de base telles que les clics, les impressions, le coût, les conversions et la valeur de conversion, la ressource experiment fournit à la fois des métriques de traitement (par exemple, metrics.clicks) et des métriques de contrôle (par exemple, metrics.control_clicks) sur la même ligne.
Elle fournit également des champs pour vous aider à évaluer la pertinence statistique de toute différence entre les groupes :
metrics.*_p_value: probabilité que les résultats observés se produisent si le test n'avait aucun effet réel sur la métrique. Une valeur p inférieure indique une pertinence statistique plus élevée.metrics.*_point_estimate: augmentation estimée en pourcentage (positive ou négative) de la métrique donnée pour le groupe de traitement par rapport au groupe de contrôle. Avecmargin_of_error, ils décrivent un intervalle de confiance avec un niveau de confiance prescrit pour la différence estimée. La quantité estimée est (traitement / contrôle - 1). L'estimation ponctuelle est le centre de l'intervalle de confiance.metrics.*_margin_of_error: rayon de l'intervalle de confiance, centré surpoint_estimate. Il est calculé pour un niveau de confiance prescrit, qui dépend du type de test.
Les champs de métriques de base suivants sont compatibles avec la ressource experiment, y compris une valeur de groupe de traitement, une valeur de groupe de contrôle et les champs de statistiques listés précédemment :
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
Pour les conversions, en particulier, les champs statistiques sont disponibles via les champs absolute_change suivants, plutôt que sous forme de valeurs relatives :
metrics.conversions_absolute_change_p_value: valeur p pour l'hypothèse nulle selon laquelle le test n'a aucun effet sur la modification absolue des conversions. Plage de 0 à 1.metrics.conversions_absolute_change_point_estimate: estimation ponctuelle lors de l'estimation de l'effet du test sur la modification absolue des conversions.metrics.conversions_absolute_change_margin_of_error: marge d'erreur lors de l'estimation de l'effet du test sur la modification absolue des conversions.
Pour obtenir de l'aide sur la création de requêtes valides pour la ressource experiment, utilisez l'
outil de création de requêtes Google Ads.
Exemple de requête
La requête GAQL suivante récupère les métriques clés d'un test :
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
Interpréter les résultats
Vous pouvez utiliser les champs de valeur p, d'estimation ponctuelle et de marge d'erreur pour déterminer si votre test a généré des résultats statistiquement pertinents. Par exemple,
si conversions_absolute_change_p_value est inférieur au seuil que vous avez choisi (par
exemple,
0,05 pour une confiance de 95 %) et si conversions_absolute_change_point_estimate -
conversions_absolute_change_margin_of_error est supérieur à zéro, cela indique
que le groupe de traitement est nettement plus performant que le groupe de contrôle
en termes de conversions.
Voici un extrait de code Python qui montre comment évaluer les résultats en fonction de la valeur p et des estimations d'augmentation :
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
Avantages par rapport aux rapports sur les campagnes
Les rapports de test directs offrent plusieurs avantages par rapport à l'interrogation séparée des rapports sur les campagnes :
- Métriques centralisées : récupérez les métriques de contrôle et de traitement sur une seule ligne.
- Données de confiance statistique : fournit des valeurs p, des estimations ponctuelles et des marges d'erreur calculées.
- Efficacité : élimine le besoin de joindre ou de comparer manuellement les résultats de plusieurs rapports.
- Compatibilité intracampagne : il s'agit de la seule façon de comparer le contrôle et le traitement pour les tests intracampagnes, où le trafic est réparti au sein d'une seule campagne.
Rapports sur les campagnes
Pour les tests qui créent des campagnes de traitement distinctes (par exemple,
SEARCH_CUSTOM), vous pouvez interroger la ressource campaign et utiliser
campaign.experiment_type pour identifier les campagnes BASE (contrôle) et EXPERIMENT
(traitement). Cette approche est utile si vous devez segmenter les métriques à un niveau plus précis (par exemple, par groupe d'annonces ou par mot clé) ou afficher des métadonnées de campagne non disponibles sur la ressource experiment. Toutefois, vous devez effectuer manuellement les comparaisons de performances et les calculs statistiques.
Vous ne pouvez pas utiliser les rapports au niveau de la campagne pour comparer les groupes pour les tests intracampagnes, car la répartition du trafic s'effectue en interne au sein d'une seule campagne.
L'interrogation de campaign pour un test intracampagne ne renvoie que des totaux agrégés.
Bonnes pratiques
- Sélectionnez un niveau de confiance approprié : la définition d'un seuil de valeur p inférieur peut fournir plus rapidement des conseils directionnels, en particulier avec des budgets ou des volumes de conversion plus faibles. Une confiance de 95 % (valeur p <= 0,05) est considérée comme la norme académique et peut être préférable pour obtenir des résultats plus précis sur une période plus longue.
- Exécutez les tests suffisamment longtemps : exécutez les tests pendant au moins quatre semaines pour tenir compte des cycles de performances hebdomadaires, des délais de conversion et des périodes d'apprentissage.
- Laissez le temps de la montée en puissance : pour les campagnes qui utilisent des enchères automatiques ou qui testent de nouvelles fonctionnalités, ignorez les données des une à deux premières semaines pour laisser le temps aux modèles d'enchères et aux niveaux de trafic de se recalibrer sur la répartition.
- Utilisez des répartitions à 50/50 : une répartition du trafic à 50/50 est généralement le moyen le plus rapide d' obtenir des résultats statistiquement pertinents.
- Planifiez à l'avance : définissez la date de début de votre test trois à sept jours à l' avance pour laisser le temps aux processus d'examen et d'approbation des annonces.
- Vous ne pouvez exécuter qu'un seul test par campagne à la fois.