Inspecter les données de tests A/B avec BigQuery

En plus d'afficher les données des expériences A/B Testing dans la console Firebase, vous pouvez les inspecter et les analyser dans BigQuery. Bien que A/B Testing ne dispose pas d'une table BigQuery distincte, les appartenances aux tests et aux variantes sont stockées dans chaque événement Google Analytics au sein des tables d'événements Analytics.

Les propriétés utilisateur qui contiennent des informations sur les tests se présentent sous la forme userProperty.key like "firebase_exp_%" ou userProperty.key = "firebase_exp_01", où 01 correspond à l'ID du test et userProperty.value.string_value contient l'index (à partir de zéro) de la variante du test.

Vous pouvez utiliser ces propriétés utilisateur du test pour extraire les données du test. Vous pouvez ainsi segmenter les résultats de votre test de nombreuses manières différentes et vérifier indépendamment les résultats de A/B Testing.

Pour commencer, procédez comme suit, comme décrit dans ce guide :

  1. Activer l'exportation BigQuery pour Google Analytics dans la console Firebase
  2. Accéder aux données A/B Testing à l'aide de BigQuery
  3. Explorer des exemples de requêtes

Activer l'BigQuery exportation pour Google Analytics dans la console Firebase

Si vous disposez du forfait Spark, vous pouvez utiliser le BigQuery bac à sable pour accéder BigQuery sans frais, sous réserve des limites du bac à sable. Pour en savoir plus, consultez Tarifs et le BigQuery bac à sable.

Tout d'abord, assurez-vous d'exporter vos données Analytics vers BigQuery :

  1. Ouvrez l'onglet Intégrations, auquel vous pouvez accéder en sélectionnant > Paramètres du projet dans la console Firebase.
  2. Si vous utilisez déjà BigQuery avec d'autres services Firebase, cliquez sur Gérer. Sinon, cliquez sur Associer.
  3. Consultez À propos de l'association de Firebase à BigQuery, puis cliquez sur Suivant.
  4. Dans la section Configurer l'intégration, activez le Google Analytics bouton.
  5. Sélectionnez une région et choisissez les paramètres d'exportation.

  6. Cliquez sur Associer à BigQuery.

Selon la méthode d'exportation des données que vous avez choisie, les tables peuvent mettre jusqu'à un jour à être disponibles. Pour en savoir plus sur l'exportation des données de projet vers BigQuery, consultez Exporter des données de projet vers BigQuery.

Accéder aux données A/B Testing dans BigQuery

Avant d'interroger les données d'un test spécifique, vous devez obtenir tout ou partie des éléments suivants à utiliser dans votre requête :

  • ID du test : vous pouvez l'obtenir à partir de l'URL de la page Aperçu du test. Par exemple, si votre URL ressemble à https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, l'ID du test est 25.
  • Google Analytics ID de propriété : il s'agit de votre ID de propriété à neuf chiffres Google Analytics. Vous pouvez le trouver dans Google Analytics. Il apparaît également dans BigQuery lorsque vous développez le nom de votre projet pour afficher le nom de votre Google Analytics table d'événements (project_name.analytics_000000000.events).
  • Date du test : pour composer une requête plus rapide et plus efficace, il est recommandé de limiter vos requêtes aux partitions de table d'événementsGoogle Analyticsquotidiens qui contiennent les données de votre test (tables identifiées par un suffixe YYYYMMDD). Ainsi, si votre test s'est déroulé du 2 février 2024 au 2 mai 2024, vous devez spécifier un _TABLE_SUFFIX between '20240202' AND '20240502'. Pour obtenir un exemple, consultez Sélectionner les valeurs d'un test spécifique.
  • Noms d'événements : ils correspondent généralement aux métriques d'objectif que vous avez configurées dans le test. Par exemple, les événements in_app_purchase, ad_impression ou user_retention.

Une fois que vous avez rassemblé les informations nécessaires pour générer votre requête :

  1. Ouvrez BigQuery dans la Google Cloud console.
  2. Sélectionnez votre projet, puis Créer une requête SQL.
  3. Ajoutez votre requête. Pour obtenir des exemples de requêtes à exécuter, consultez Explorer des exemples de requêtes.
  4. Cliquez sur Exécuter.

Interroger les données de test à l'aide de la requête générée automatiquement par la console Firebase

Si vous disposez du forfait Blaze, la page Aperçu du test fournit un exemple de requête qui renvoie le nom du test, les variantes, les noms d'événements et le nombre d'événements pour le test que vous consultez.

Pour obtenir et exécuter la requête générée automatiquement :

  1. Dans la console Firebase, ouvrez A/B Testing et sélectionnez le test A/B Testing que vous souhaitez interroger pour ouvrir l' Aperçu du test.
  2. Dans le menu "Options", sous BigQuery intégration, sélectionnez Interroger les données du test. Votre projet s'ouvre alors dans BigQuery dans la console Google Cloud Google Cloud et fournit une requête de base que vous pouvez utiliser pour interroger les données de votre test.

L'exemple suivant montre une requête générée pour un test comportant trois variantes (y compris la référence) nommé "Winter welcome experiment" (Test de bienvenue hivernal). Il renvoie le nom du test actif, le nom de la variante, l'événement unique et le nombre d'événements pour chaque événement. Notez que le générateur de requêtes ne spécifie pas le nom de votre projet dans le nom de la table, car il s'ouvre directement dans votre projet.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

Pour obtenir d'autres exemples de requêtes, consultez Explorer des exemples de requêtes.

Explorer des exemples de requêtes

Les sections suivantes fournissent des exemples de requêtes que vous pouvez utiliser pour extraire A/B Testing les données des expériences des tables d'événements Google Analytics.

Extraire les valeurs d'écart type des achats et des tests de tous les tests

Vous pouvez utiliser les données des résultats des tests pour vérifier indépendamment Firebase A/B Testing les résultats. L'instruction SQL BigQuery suivante extrait les variantes du test, le nombre d'utilisateurs uniques dans chaque variante, et additionne le revenu total des événements in_app_purchase et ecommerce_purchase, ainsi que les écarts types pour tous les tests au cours de la période spécifiée comme dates de début et de fin _TABLE_SUFFIX. Vous pouvez utiliser les données obtenues à partir de cette requête avec un générateur de signification statistique pour les tests t unilatéraux afin de vérifier que les résultats fournis par Firebase correspondent à votre propre analyse.

Pour en savoir plus sur la façon dont A/B Testing calcule l'inférence, consultez Interpréter les résultats des tests.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Sélectionner les valeurs d'un test spécifique

L'exemple de requête suivant montre comment obtenir des données pour un test spécifique dans BigQuery. Cet exemple de requête renvoie le nom du test, les noms des variantes (y compris la référence), les noms des événements et le nombre d'événements.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName