Créer des expériences de configuration à distance Firebase avec des tests A/B

Lorsque vous utilisez Firebase Remote Config pour déployer les paramètres d'une application avec une base d'utilisateurs active, vous voulez vous assurer que vous faites les choses correctement. Vous pouvez utiliser les expériences de test A/B pour déterminer au mieux les éléments suivants :

  • La meilleure façon d’implémenter une fonctionnalité pour optimiser l’expérience utilisateur. Trop souvent, les développeurs d'applications ne se rendent pas compte que leurs utilisateurs n'aiment pas une nouvelle fonctionnalité ou une expérience utilisateur mise à jour jusqu'à ce que la note de leur application dans l'App Store diminue. Les tests A/B peuvent aider à mesurer si vos utilisateurs aiment les nouvelles variantes de fonctionnalités ou s'ils préfèrent l'application telle qu'elle existe. De plus, le fait de conserver la plupart de vos utilisateurs dans un groupe de référence garantit que la plupart de votre base d'utilisateurs peut continuer à utiliser votre application sans subir de changements dans son comportement ou son apparence jusqu'à la fin de l'expérience.
  • La meilleure façon d’optimiser l’expérience utilisateur pour un objectif business. Parfois, vous mettez en œuvre des modifications de produit pour maximiser une mesure telle que les revenus ou la rétention. Avec les tests A/B, vous définissez votre objectif commercial et Firebase effectue l'analyse statistique pour déterminer si une variante surpasse la référence pour votre objectif sélectionné.

Pour tester A/B des variantes de fonctionnalités avec une référence, procédez comme suit :

  1. Créez votre expérience.
  2. Validez votre expérience sur un appareil de test.
  3. Gérez votre expérience.

Créer une expérience

Une expérience Remote Config vous permet d'évaluer plusieurs variantes sur un ou plusieurs paramètres Remote Config .

  1. Connectez-vous à la console Firebase et vérifiez que Google Analytics est activé dans votre projet afin que l'expérience ait accès aux données Analytics.

    Si vous n'avez pas activé Google Analytics lors de la création de votre projet, vous pouvez l'activer dans l'onglet Intégrations , auquel vous pouvez accéder en utilisant > Paramètres du projet dans la console Firebase .

  2. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .

  3. Cliquez sur Créer une expérience , puis sélectionnez Configuration à distance lorsque vous êtes invité à indiquer le service que vous souhaitez expérimenter.

  4. Saisissez un Nom et une Description facultative pour votre expérience, puis cliquez sur Suivant .

  5. Remplissez les champs de ciblage , en choisissant d'abord l'application qui utilise votre test. Vous pouvez également cibler un sous-ensemble de vos utilisateurs pour qu'ils participent à votre test en cliquant sur et , puis en choisissant les options dans la liste suivante :

    • Version : une ou plusieurs versions de votre application
    • Numéro de build : le code de version de l'application
    • Langues : une ou plusieurs langues et paramètres régionaux utilisés pour sélectionner les utilisateurs susceptibles d'être inclus dans l'expérience.
    • Pays/Région : un ou plusieurs pays ou régions pour sélectionner les utilisateurs qui doivent être inclus dans l'expérience.
    • Audience d'utilisateurs : audiences d'analyse utilisées pour cibler les utilisateurs susceptibles d'être inclus dans le test
    • Propriété utilisateur : une ou plusieurs propriétés utilisateur Analytics pour sélectionner les utilisateurs susceptibles d'être inclus dans le test.
    • Première ouverture : ciblez les utilisateurs en fonction de la première fois qu'ils ont ouvert votre application

      Le ciblage des utilisateurs par première heure d'ouverture est disponible après avoir sélectionné une application Android ou iOS. Il est pris en charge par les versions suivantes du SDK Remote Config : SDK des plates-formes Apple v9.0.0+ et Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

      L'analyse doit également avoir été activée sur le client lors du premier événement ouvert.

  6. Définissez le pourcentage d'utilisateurs cibles : saisissez le pourcentage de la base d'utilisateurs de votre application correspondant aux critères définis sous Utilisateurs cibles que vous souhaitez répartir uniformément entre la référence et une ou plusieurs variantes de votre test. Il peut s'agir de n'importe quel pourcentage compris entre 0,01 % et 100 %. Les utilisateurs sont assignés au hasard à chaque expérience, y compris aux expériences dupliquées.

  7. Vous pouvez éventuellement définir un événement d'activation pour garantir que seules les données des utilisateurs qui ont déclenché en premier un événement Analytics sont prises en compte dans votre test. Notez que tous les utilisateurs correspondant à vos paramètres de ciblage recevront des valeurs expérimentales de Remote Config, mais seuls ceux qui déclenchent un événement d'activation seront inclus dans les résultats de votre test.

    Pour garantir une expérience valide, assurez-vous que l'événement que vous choisissez se produit après que votre application active les valeurs de configuration récupérées. De plus, les événements suivants ne peuvent pas être utilisés car ils se produisent toujours avant que les valeurs récupérées ne soient activées :

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. Pour les Objectifs de l'expérience, sélectionnez la métrique principale à suivre et ajoutez toutes les métriques supplémentaires que vous souhaitez suivre dans la liste. Ceux-ci incluent des objectifs intégrés (achats, revenus, fidélisation, utilisateurs sans crash, etc.), des événements de conversion Analytics et d'autres événements Analytics. Une fois terminé, cliquez sur Suivant .

  9. Dans la section Variantes , choisissez une référence et au moins une variante pour l'expérience. Utilisez la liste Choisir ou créer un nouveau pour ajouter un ou plusieurs paramètres à expérimenter. Vous pouvez créer un paramètre qui n'a pas été utilisé auparavant dans la console Firebase, mais il doit exister dans votre application pour qu'il ait un effet. Vous pouvez répéter cette étape pour ajouter plusieurs paramètres à votre expérience.

  10. (facultatif) Pour ajouter plusieurs variantes à votre test, cliquez sur Ajouter une autre variante .

  11. Modifiez un ou plusieurs paramètres pour des variantes spécifiques. Tous les paramètres inchangés sont les mêmes pour les utilisateurs non inclus dans l'expérience.

  12. Développez les poids des variantes pour afficher ou modifier le poids des variantes pour l'expérience. Par défaut, chaque variante est pondérée de manière égale. Notez que des poids inégaux peuvent augmenter le temps de collecte des données et que les poids ne peuvent pas être modifiés après le début de l'expérience .

  13. Cliquez sur Réviser pour enregistrer votre expérience.

Vous êtes autorisé à réaliser jusqu'à 300 expériences par projet, qui peuvent comprendre jusqu'à 24 expériences en cours, le reste étant à l'état de brouillon ou terminé.

Validez votre expérience sur un appareil de test

Pour chaque installation Firebase, vous pouvez récupérer le jeton d'authentification d'installation qui lui est associé. Vous pouvez utiliser ce jeton pour tester des variantes d'expérience spécifiques sur un appareil de test sur lequel votre application est installée. Pour valider votre test sur un appareil de test, procédez comme suit :

  1. Obtenez le jeton d'authentification d'installation comme suit :

    Rapide

    do {
      let result = try await Installations.installations()
        .authTokenForcingRefresh(true)
      print("Installation auth token: \(result.authToken)")
    } catch {
      print("Error fetching token: \(error)")
    }
    

    Objectif c

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Java

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    val forceRefresh = true
    FirebaseInstallations.getInstance().getToken(forceRefresh)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
    

    Unité

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. Dans la barre de navigation de la console Firebase , cliquez sur Tests A/B .
  3. Cliquez sur Brouillon (et/ou Exécution pour les expériences Remote Config), survolez votre expérience, cliquez sur le menu contextuel ( ), puis cliquez sur Gérer les appareils de test .
  4. Saisissez le jeton d'authentification d'installation pour un appareil de test et choisissez la variante d'expérience à envoyer à cet appareil de test.
  5. Exécutez l'application et confirmez que la variante sélectionnée est reçue sur l'appareil de test.

Pour en savoir plus sur les installations Firebase, consultez Gérer les installations Firebase .

Gérer votre expérience

Que vous créiez une expérience avec Remote Config, le composeur de notifications ou Firebase In-App Messaging, vous pouvez ensuite valider et démarrer votre expérience, surveiller votre expérience pendant son exécution et augmenter le nombre d'utilisateurs inclus dans votre expérience en cours.

Une fois votre test terminé, vous pouvez prendre note des paramètres utilisés par la variante gagnante, puis déployer ces paramètres auprès de tous les utilisateurs. Vous pouvez également exécuter une autre expérience.

Commencer une expérience

  1. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .
  2. Cliquez sur Brouillon , puis cliquez sur le titre de votre expérience.
  3. Pour vérifier que votre application compte des utilisateurs qui seraient inclus dans votre test, développez les détails du brouillon et recherchez un nombre supérieur à 0 % dans la section Ciblage et distribution (par exemple, 1 % d'utilisateurs correspondant aux critères ).
  4. Pour modifier votre expérience, cliquez sur Modifier .
  5. Pour démarrer votre expérience, cliquez sur Démarrer l'expérience . Vous pouvez exécuter jusqu'à 24 expériences par projet à la fois.

Surveiller une expérience

Une fois qu'une expérience est en cours depuis un certain temps, vous pouvez suivre sa progression et voir à quoi ressemblent vos résultats pour les utilisateurs qui ont participé à votre expérience jusqu'à présent.

  1. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .
  2. Cliquez sur En cours d'exécution , puis cliquez sur le titre de votre expérience ou recherchez-le. Sur cette page, vous pouvez afficher diverses statistiques observées et modélisées sur votre expérience en cours, notamment les suivantes :

    • % de différence par rapport à la ligne de base : mesure de l'amélioration d'une métrique pour une variante donnée par rapport à la ligne de base. Calculé en comparant la plage de valeurs de la variante à la plage de valeurs de la référence.
    • Probabilité de battre la ligne de base : probabilité estimée qu'une variante donnée bat la ligne de base pour la métrique sélectionnée.
    • observed_metric par utilisateur : sur la base des résultats de l'expérience, il s'agit de la plage prévue dans laquelle la valeur métrique tombera au fil du temps.
    • Total observed_metric : valeur cumulée observée pour la ligne de base ou la variante. La valeur est utilisée pour mesurer les performances de chaque variante d'expérience et est utilisée pour calculer l'amélioration , la plage de valeurs , la probabilité de dépasser la ligne de base et la probabilité d'être la meilleure variante . Selon la métrique mesurée, cette colonne peut être intitulée "Durée par utilisateur", "Revenu par utilisateur", "Taux de rétention" ou "Taux de conversion".
  3. Une fois votre test exécuté pendant un certain temps (au moins 7 jours pour FCM et la messagerie intégrée à l'application ou 14 jours pour la configuration à distance), les données de cette page indiquent quelle variante, le cas échéant, est "leader". Certaines mesures sont accompagnées d'un graphique à barres qui présente les données sous un format visuel.

Déployer une expérience à tous les utilisateurs

Une fois qu'un test a duré suffisamment longtemps pour que vous ayez un « leader », ou une variante gagnante, pour votre métrique d'objectif, vous pouvez proposer le test à 100 % des utilisateurs. Cela vous permet de sélectionner une variante à publier ultérieurement pour tous les utilisateurs. Même si votre test n'a pas permis de dégager un gagnant clair, vous pouvez toujours choisir de proposer une variante à tous vos utilisateurs.

  1. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .
  2. Cliquez sur Terminé ou en cours d'exécution , cliquez sur une expérience que vous souhaitez proposer à tous les utilisateurs, cliquez sur le menu contextuel ( ) Déployer la variante .
  3. Déployez votre test auprès de tous les utilisateurs en effectuant l'une des opérations suivantes :

    • Pour une expérience qui utilise le composeur de notifications , utilisez la boîte de dialogue Déployer le message pour envoyer le message aux utilisateurs ciblés restants qui ne faisaient pas partie de l'expérience.
    • Pour une expérience Remote Config , sélectionnez une variante pour déterminer les valeurs des paramètres Remote Config à mettre à jour. Les critères de ciblage définis lors de la création du test sont ajoutés en tant que nouvelle condition dans votre modèle, afin de garantir que le déploiement n'affecte que les utilisateurs ciblés par le test. Après avoir cliqué sur Review in Remote Config pour vérifier les modifications, cliquez sur Publier les modifications pour terminer le déploiement.
    • Pour un test de messagerie In-App , utilisez la boîte de dialogue pour déterminer quelle variante doit être déployée en tant que campagne de messagerie In-App autonome. Une fois sélectionné, vous êtes redirigé vers l'écran de rédaction FIAM pour apporter des modifications (si nécessaire) avant la publication.

Développer une expérience

Si vous constatez qu'une expérience n'attire pas suffisamment d'utilisateurs pour que l'A/B Testing puisse désigner un leader, vous pouvez augmenter la diffusion de votre expérience pour atteindre un plus grand pourcentage de la base d'utilisateurs de l'application.

  1. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .
  2. Sélectionnez l'expérience en cours que vous souhaitez modifier.
  3. Dans la présentation de l'expérience , cliquez sur le menu contextuel ( ), puis cliquez sur Modifier l'expérience en cours .
  4. La boîte de dialogue Ciblage affiche une option permettant d'augmenter le pourcentage d'utilisateurs participant à l'expérience en cours. Sélectionnez un nombre supérieur au pourcentage actuel et cliquez sur Publier . L'expérience sera étendue au pourcentage d'utilisateurs que vous avez spécifié.

Dupliquer ou arrêter une expérience

  1. Dans la section Engager du menu de navigation de la console Firebase , cliquez sur A/B Testing .
  2. Cliquez sur Terminé ou en cours d'exécution , maintenez le pointeur sur votre expérience, cliquez sur le menu contextuel ( ), puis cliquez sur Dupliquer l'expérience ou Arrêter l'expérience .

Ciblage des utilisateurs

Vous pouvez cibler les utilisateurs à inclure dans votre test à l'aide des critères de ciblage d'utilisateurs suivants.

Critère de ciblage Les opérateurs) Valeurs) Note
Version contient,
ne contient pas,
correspond exactement,
contient une expression régulière
Saisissez une valeur pour une ou plusieurs versions d'application que vous souhaitez inclure dans le test.

Lorsque vous utilisez l’un des opérateurs contient , ne contient pas ou correspond exactement , vous pouvez fournir une liste de valeurs séparées par des virgules.

Lorsque vous utilisez l'opérateur contain regex , vous pouvez créer des expressions régulières au format RE2 . Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ancres ^ et $ pour faire correspondre le début, la fin ou l'intégralité d'une chaîne cible.

Public(s) d'utilisateurs comprend tout,
comprend au moins un des,
n'inclut pas la totalité,
ne comprend pas au moins un des
Sélectionnez une ou plusieurs audiences Analytics pour cibler les utilisateurs susceptibles d'être inclus dans votre test. Certaines expériences ciblant les audiences Google Analytics peuvent nécessiter quelques jours pour accumuler des données, car elles sont soumises à la latence du traitement des données Analytics. Vous êtes plus susceptible de rencontrer ce retard avec les nouveaux utilisateurs, qui sont généralement inscrits dans des audiences éligibles 24 à 48 heures après leur création, ou pour les audiences récemment créées .

Pour Remote Config, cela signifie que même si un utilisateur est techniquement qualifié pour une audience, si Analytics ne l'a pas encore ajouté à l'audience lorsque `fetchAndActivate()` est exécuté, l'utilisateur ne sera pas inclus dans l'expérience.

Propriété de l'utilisateur Pour le texte :
contient,
ne contient pas,
correspond exactement,
contient une expression régulière

Pour les chiffres :
<, ≤, =, ≥, >
Une propriété utilisateur Analytics est utilisée pour sélectionner les utilisateurs susceptibles d'être inclus dans une expérience, avec une gamme d'options pour sélectionner les valeurs de propriété utilisateur.

Sur le client, vous pouvez définir uniquement des valeurs de chaîne pour les propriétés utilisateur. Pour les conditions qui utilisent des opérateurs numériques, le service Remote Config convertit la valeur de la propriété utilisateur correspondante en nombre entier/flottant.
Lorsque vous utilisez l'opérateur contain regex , vous pouvez créer des expressions régulières au format RE2 . Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ancres ^ et $ pour faire correspondre le début, la fin ou l'intégralité d'une chaîne cible.
Pays/Région N / A Un ou plusieurs pays ou régions utilisés pour sélectionner les utilisateurs susceptibles d'être inclus dans le test.
Langues N / A Une ou plusieurs langues et paramètres régionaux utilisés pour sélectionner les utilisateurs susceptibles d'être inclus dans l'expérience.
Première ouverture Avant
Après

Ciblez les utilisateurs en fonction de la première fois qu'ils ouvrent votre application :

  • Sélectionnez Nouveaux utilisateurs pour cibler les utilisateurs qui ouvrent votre application pour la première fois après une date et une heure ultérieures spécifiées.
  • Sélectionnez Période pour cibler les utilisateurs qui ouvrent votre application pour la première fois dans la plage avant ou après la date et l'heure que vous spécifiez. Combinez les conditions Avant et Après pour cibler les utilisateurs dans une plage de temps spécifique.

Le ciblage des utilisateurs par première ouverture est disponible après avoir sélectionné une application Android ou iOS. Il est actuellement pris en charge par les versions suivantes du SDK Remote Config : SDK des plates-formes Apple v9.0.0+ et Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

L'analyse doit également avoir été activée sur le client lors du premier événement ouvert.

Métriques des tests A/B

Lorsque vous créez votre expérience, vous choisissez une mesure principale, ou objectif , qui est utilisée pour déterminer la variante gagnante. Vous devez également suivre d'autres mesures pour vous aider à mieux comprendre les performances de chaque variante de test et suivre les tendances importantes qui peuvent différer pour chaque variante, comme la fidélisation des utilisateurs, la stabilité de l'application et les revenus des achats intégrés. Vous pouvez suivre jusqu'à cinq métriques non liées aux objectifs dans votre test.

Par exemple, supposons que vous utilisiez Remote Config pour lancer deux flux de jeu différents dans votre application et que vous souhaitiez optimiser les achats intégrés et les revenus publicitaires, mais que vous souhaitiez également suivre la stabilité et la fidélisation des utilisateurs de chaque variante. Dans ce cas, vous pouvez envisager de choisir les revenus totaux estimés comme mesure d'objectif, car ils incluent les revenus des achats intégrés et les revenus publicitaires, puis, pour Autres mesures à suivre , vous pouvez ajouter les éléments suivants :

  • Pour suivre la rétention quotidienne et hebdomadaire de vos utilisateurs, ajoutez Rétention (2-3 jours) et Rétention (4-7 jours) .
  • Pour comparer la stabilité entre les deux flux de jeu, ajoutez les utilisateurs sans crash .
  • Pour afficher des vues plus détaillées de chaque type de revenus, ajoutez Revenus d'achat et Revenus publicitaires estimés .

Les tableaux suivants fournissent des détails sur la façon dont les mesures d'objectif et d'autres mesures sont calculées.

Mesures d'objectif

Métrique Description
Utilisateurs sans crash Pourcentage d'utilisateurs qui n'ont pas rencontré d'erreurs dans votre application détectées par le SDK Firebase Crashlytics au cours du test.
Revenus publicitaires estimés Revenus publicitaires estimés.
Revenu total estimé Valeur d'achat combinée et revenus publicitaires estimés.
Revenus d'achat Valeur combinée pour tous les événements purchase et in_app_purchase .
Rétention (1 jour) Le nombre d'utilisateurs qui reviennent quotidiennement sur votre application.
Rétention (2-3 jours) Le nombre d'utilisateurs qui reviennent sur votre application dans un délai de 2 à 3 jours.
Rétention (4-7 jours) Le nombre d'utilisateurs qui reviennent sur votre application dans un délai de 4 à 7 jours.
Rétention (8-14 jours) Le nombre d'utilisateurs qui reviennent sur votre application dans un délai de 8 à 14 jours.
Rétention (15+ jours) Nombre d'utilisateurs qui reviennent sur votre application 15 jours ou plus après leur dernière utilisation.
premier_ouvert Un événement Analytics qui se déclenche lorsqu'un utilisateur ouvre pour la première fois une application après l'avoir installée ou réinstallée. Utilisé dans le cadre d'un entonnoir de conversion.

Autres mesures

Métrique Description
notification_dismiss Un événement Analytics qui se déclenche lorsqu'une notification envoyée par le rédacteur de notifications est rejetée (Android uniquement).
notification_receive Un événement Analytics qui se déclenche lorsqu'une notification envoyée par le rédacteur de notifications est reçue alors que l'application est en arrière-plan (Android uniquement).
os_update Un événement Analytics qui suit la mise à jour du système d'exploitation de l'appareil vers une nouvelle version. Pour en savoir plus, consultez Événements collectés automatiquement .
vue_écran Un événement Analytics qui suit les écrans affichés dans votre application. Pour en savoir plus, consultez Suivre les vues d'écran .
session_start Un événement Analytics qui compte les sessions utilisateur dans votre application. Pour en savoir plus, consultez Événements collectés automatiquement .

Exportation de données BigQuery

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

Les propriétés utilisateur qui contiennent des informations sur l'expérience sont de la forme userProperty.key like "firebase_exp_%" ou userProperty.key = "firebase_exp_01"01 est l'ID de l'expérience et userProperty.value.string_value contient l'index (de base zéro) de l'expérience. variante d'expérimentation.

Vous pouvez utiliser ces propriétés utilisateur d'expérience pour extraire des données d'expérience. Cela vous donne le pouvoir de découper les résultats de vos tests de différentes manières et de vérifier indépendamment les résultats des tests A/B.

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 de tests A/B à l'aide de BigQuery
  3. Explorer des exemples de requêtes

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

Si vous disposez d'un forfait Spark, vous pouvez utiliser le bac à sable BigQuery pour accéder à BigQuery sans frais, sous réserve des limites du bac à sable . Consultez Tarifs et sandbox BigQuery pour plus d'informations.

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 utilisant > 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 Lien .
  3. Consultez À propos de la liaison de Firebase à BigQuery , puis cliquez sur Suivant .
  4. Dans la section Configurer l'intégration , activez le bouton Google Analytics .
  5. Sélectionnez une région et choisissez les paramètres d'exportation.

  6. Cliquez sur Lien vers BigQuery .

Selon la manière dont vous avez choisi d'exporter les données, cela peut prendre jusqu'à un jour pour que les tableaux soient disponibles. Pour plus d'informations sur l'exportation de données de projet vers BigQuery, consultez Exporter des données de projet vers BigQuery .

Accéder aux données de tests A/B dans BigQuery

Avant de rechercher des données pour une expérience spécifique, vous souhaiterez obtenir tout ou partie des éléments suivants à utiliser dans votre requête :

  • ID de l'expérience : vous pouvez l'obtenir à partir de l'URL de la page de présentation de l'expérience . Par exemple, si votre URL ressemble à https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 , l'ID de l'expérience est 25 .
  • ID de propriété Google Analytics : Il s'agit de votre ID de propriété Google Analytics à 9 chiffres. 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 table d'événements Google Analytics ( project_name.analytics_000000000.events ).
  • Date du test : pour rédiger une requête plus rapide et plus efficace, il est recommandé de limiter vos requêtes aux partitions de la table des événements quotidiens de Google Analytics qui contiennent vos données de test (tables identifiées par le 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'une expérience spécifique .
  • Noms d'événements : ils correspondent généralement aux métriques d'objectif que vous avez configurées dans l'expérience. Par exemple, les événements in_app_purchase , ad_impression ou user_retention .

Après avoir rassemblé les informations dont vous avez besoin pour générer votre requête :

  1. Ouvrez BigQuery dans la console Google Cloud.
  2. Sélectionnez votre projet, puis sélectionnez 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 du test à l'aide de la requête générée automatiquement par la console Firebase

Si vous utilisez le plan Blaze, la page de présentation de l'expérience fournit un exemple de requête qui renvoie le nom de l'expérience, les variantes, les noms d'événements et le nombre d'événements pour l'expérience que vous consultez.

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

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

L'exemple suivant montre une requête générée pour un test avec trois variantes (y compris la ligne de base) nommée « Expérience de bienvenue en hiver ». Il renvoie le nom de l'expérience active, 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 des exemples de requêtes supplémentaires, passez à 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 les données des expériences de test A/B des tables d'événements Google Analytics.

Extraire les valeurs d'écart type d'achat et d'expérimentation de toutes les expériences

Vous pouvez utiliser les données des résultats des tests pour vérifier indépendamment les résultats des tests A/B Firebase. L'instruction BigQuery SQL suivante extrait les variantes de test, le nombre d'utilisateurs uniques dans chaque variante, additionne les revenus totaux des événements in_app_purchase et ecommerce_purchase , ainsi que les écarts types pour toutes les expériences au cours de la plage de temps spécifiée comme dates de début et de fin _TABLE_SUFFIX . Vous pouvez utiliser les données que vous obtenez à 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 plus d'informations sur la manière 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électionnez les valeurs d'un test spécifique

L'exemple de requête suivant illustre comment obtenir des données pour une expérience spécifique dans BigQuery. Cet exemple de requête renvoie le nom de l'expérience, les noms des variantes (y compris la ligne de base), 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