Check out what’s new from Firebase at Google I/O 2022. Learn more

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 de bien faire les choses. Vous pouvez utiliser des 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 n'apprennent pas 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 décline. 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 actuellement. De plus, le fait de conserver la plupart de vos utilisateurs dans un groupe de base garantit que la plupart de votre base d'utilisateurs peut continuer à utiliser votre application sans subir de modifications de son comportement ou de son apparence jusqu'à la fin de l'expérience.
  • La meilleure façon d'optimiser l'expérience utilisateur pour un objectif commercial. Parfois, vous mettez en œuvre des modifications de produit pour maximiser une métrique comme 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 ligne de base pour l'objectif sélectionné.

Pour tester A/B des variantes de fonctionnalités avec une ligne de base, 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 via > Paramètres du projet dans la console Firebase .

  2. Dans la section Engager de la barre de navigation de la console Firebase , cliquez sur Test A/B .

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

  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 des 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 le test
    • Pays/région : un ou plusieurs pays ou régions pour la sélection des utilisateurs à inclure dans le test
    • Audience d'utilisateurs : audiences Analytics utilisées pour cibler les utilisateurs susceptibles d'être inclus dans le test
    • Propriété utilisateur : une ou plusieurs propriétés utilisateur Analytics permettant de sélectionner les utilisateurs susceptibles d'être inclus dans le test
  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 équitablement 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 affectés au hasard à chaque expérience, y compris les expériences dupliquées.

  7. Si vous le souhaitez, définissez un événement d'activation pour vous assurer que seules les données des utilisateurs qui ont d'abord déclenché un événement Analytics sont comptabilisées 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 la validité du test, assurez-vous que l'événement que vous choisissez se produit après que votre application a activé 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 l'activation des valeurs récupérées :

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
    • first_open
  8. Pour les objectifs du test , sélectionnez la statistique principale à suivre et ajoutez les statistiques supplémentaires souhaitées dans la liste déroulante. Ceux-ci incluent des objectifs intégrés (achats, revenus, rétention, utilisateurs sans plantage, etc.), des événements de conversion Analytics et d'autres événements Analytics. Une fois terminé, cliquez sur Suivant .

  9. Dans la section Variantes , vous choisirez une ligne de base 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 test.

  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 le test.

  12. Développez 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 Review pour enregistrer votre test.

Vous êtes autorisé à effectuer jusqu'à 300 expériences par projet, qui peuvent comprendre jusqu'à 24 expériences en cours d'exécution, les autres étant à l'état de brouillon ou terminées.

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 de test spécifiques sur un appareil de test sur lequel votre application est installée. Pour valider votre expérience sur un appareil de test, procédez comme suit :

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

    Rapide

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    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

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .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().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 Test A/B .
  3. Cliquez sur Brouillon (et/ou En cours d' exécution pour les expériences de configuration à distance), passez la souris sur votre expérience, cliquez sur le menu contextuel ( ), puis cliquez sur Gérer les appareils de test .
  4. Entrez le jeton d'authentification d'installation pour un appareil de test et choisissez la variante de test à 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 de Firebase, consultez Gérer les installations de Firebase .

Gérer votre expérience

Que vous créiez une expérience avec Remote Config, le compositeur 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.

Lorsque votre test est terminé, vous pouvez prendre note des paramètres utilisés par la variante gagnante, puis déployer ces paramètres pour tous les utilisateurs. Ou, vous pouvez exécuter une autre expérience.

Démarrer une expérience

  1. Dans la section Engager de la barre de navigation de la console Firebase , cliquez sur Test A/B .
  2. Cliquez sur Brouillon , puis cliquez sur le titre de votre expérience.
  3. Pour vérifier que votre application comporte 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 test, cliquez sur Modifier .
  5. Pour démarrer votre test, cliquez sur Démarrer le test . Vous pouvez exécuter jusqu'à 24 expériences par projet à la fois.

Surveiller une expérience

Une fois qu'un test a été exécuté pendant un certain temps, vous pouvez vérifier sa progression et voir à quoi ressemblent vos résultats pour les utilisateurs qui ont participé à votre test jusqu'à présent.

  1. Dans la section Engager de la barre de navigation de la console Firebase , cliquez sur Test A/B .
  2. Cliquez sur En cours d' exécution , puis cliquez sur le titre de votre expérience. Sur cette page, vous pouvez afficher diverses statistiques observées et modélisées concernant votre test en cours, notamment :

    • % de différence par rapport à la ligne de base : une 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 ligne de base.
    • Probabilité de battre la ligne de base : probabilité estimée qu'une variante donnée dépasse la ligne de base pour la métrique sélectionnée.
    • métrique_observée observed_metric utilisateur : sur la base des résultats du test, il s'agit de la plage prévue dans laquelle la valeur de la métrique tombera au fil du temps.
    • Total observed_metric : la 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 de test et est utilisée pour calculer l'Amélioration , la Plage de valeurs , la Probabilité de battre la ligne de base et la Probabilité d'être la meilleure variante . Selon la statistique 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 que votre test a duré 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 la "principale". Certaines mesures sont accompagnées d'un graphique à barres qui présente les données sous forme visuelle.

Déployer une expérience pour tous les utilisateurs

Une fois qu'un test s'est déroulé suffisamment longtemps pour que vous ayez un "leader", ou une variante gagnante, pour votre indicateur d'objectif, vous pouvez déployer le test auprès de 100 % des utilisateurs. Cela vous permet de sélectionner une variante à publier pour tous les utilisateurs à l'avenir. Même si votre test n'a pas créé de gagnant clair, vous pouvez toujours choisir de déployer une variante pour tous vos utilisateurs.

  1. Dans la section Engager de la barre de navigation de la console Firebase , cliquez sur Test A/B .
  2. Cliquez sur Terminé ou En cours d' exécution , cliquez sur une expérience que vous souhaitez déployer pour tous les utilisateurs, cliquez sur le menu contextuel ( ), puis cliquez sur Déployer la variante .
  3. Déployez votre test auprès de tous les utilisateurs en procédant de l'une des manières suivantes :

    • Pour une expérience qui utilise l'éditeur de notifications , utilisez la boîte de dialogue Déployer le message pour envoyer le message aux autres utilisateurs ciblés qui ne faisaient pas partie de l'expérience.
    • Pour une expérience de configuration à distance , sélectionnez une variante pour déterminer les valeurs de paramètre de configuration à distance à mettre à jour. Les critères de ciblage définis lors de la création du test seront 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 Examiner dans Remote Config pour examiner les modifications, cliquez sur Publier les modifications pour terminer le déploiement.
    • Pour une expérience de messagerie intégrée à l'application , utilisez la boîte de dialogue pour déterminer quelle variante doit être déployée en tant que campagne de messagerie intégrée à l'application autonome. Une fois sélectionné, vous serez redirigé vers l'écran de composition FIAM pour apporter des modifications (si nécessaire) avant la publication.

Développer un test

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

  1. Dans la section Engager de la barre de navigation de la console Firebase , cliquez sur Test A/B .
  2. Sélectionnez l'expérience en cours que vous souhaitez modifier.
  3. Dans la vue d' ensemble de l'expérience , cliquez sur le menu contextuel ( ), puis 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 . Le test sera étendu au pourcentage d'utilisateurs que vous avez spécifié.

Dupliquer ou arrêter un test

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

Ciblage des utilisateurs

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

Critère de ciblage Les opérateurs) Valeurs) Noter
Version contient,
ne contient pas,
correspond exactement,
contient regex
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 regex contains , 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) utilisateur(s) comprend tout,
comprend au moins un parmi,
n'inclut pas tous,
n'inclut 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 qui ciblent des audiences Google Analytics peuvent nécessiter quelques jours pour accumuler des données, car elles sont soumises à la latence de traitement des données Analytics . Vous êtes plus susceptible de rencontrer ce délai avec les nouveaux utilisateurs, qui sont généralement inscrits dans les audiences éligibles 24 à 48 heures après la création, ou pour les audiences récemment créées .

Pour Remote Config, cela signifie que même si un utilisateur se qualifie techniquement pour une audience, si Analytics n'a pas encore ajouté l'utilisateur à l'audience lors de l'exécution de "activateFetched", l'utilisateur ne sera pas inclus dans le test.

Propriété utilisateur Pour le texte :
contient,
ne contient pas,
correspond exactement,
contient regex

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

Sur le client, vous ne pouvez définir que 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 regex contains , 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 de l'appareil N / A Un ou plusieurs pays ou régions utilisés pour sélectionner les utilisateurs susceptibles d'être inclus dans le test.
Langue de l'appareil 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. Ce critère de ciblage n'est disponible que pour Remote Config.
Première ouverture plus que
moins que
entre
Ciblez les utilisateurs en fonction de la première fois qu'ils ont ouvert votre application, en jours. Ce critère de ciblage n'est disponible que pour Firebase In-App Messaging.
Dernier engagement avec l'application plus que
moins que
entre
Ciblez les utilisateurs en fonction de la dernière fois qu'ils ont interagi avec votre application, en jours. Ce critère de ciblage n'est disponible que pour Firebase In-App Messaging.

Métriques de test A/B

Lorsque vous créez votre expérience, vous choisissez une métrique principale, ou d' 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, telles que la fidélisation des utilisateurs, la stabilité de l'application et les revenus des achats intégrés. Vous pouvez suivre jusqu'à cinq statistiques sans objectif dans votre test.

Par exemple, supposons que vous utilisez Remote Config pour lancer deux flux de jeu différents dans votre application et que vous souhaitez optimiser les achats intégrés et les revenus publicitaires, mais que vous souhaitez également suivre la stabilité et la rétention des utilisateurs de chaque variante. Dans ce cas, vous pouvez envisager de choisir Revenu total estimé comme statistique d'objectif, car elle inclut les revenus des achats via l'application et les revenus publicitaires, puis, pour Autres statistiques à suivre , vous pouvez ajouter les éléments suivants :

  • Pour suivre votre rétention d'utilisateurs quotidienne et hebdomadaire, ajoutez Rétention (2-3 jours) et Rétention (4-7 jours) .
  • Pour comparer la stabilité entre les deux flux de jeu, ajoutez des utilisateurs sans plantage .
  • 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 métriques d'objectif et d'autres métriques sont calculées.

Métriques d'objectif

Métrique La description
Utilisateurs sans plantage Pourcentage d'utilisateurs n'ayant 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 d' 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 les 2 à 3 jours.
Rétention (4-7 jours) Le nombre d'utilisateurs qui reviennent sur votre application dans les 4 à 7 jours.
Rétention (8-14 jours) Le nombre d'utilisateurs qui reviennent sur votre application dans les 8 à 14 jours.
Rétention (15+ jours) Le nombre d'utilisateurs qui reviennent sur votre application 15 jours ou plus après leur dernière utilisation.
first_open Un événement Analytics qui se déclenche lorsqu'un utilisateur ouvre une application pour la première fois après l'avoir installée ou réinstallée. Utilisé dans le cadre d'un entonnoir de conversion.

Autres métriques

Métrique La description
notification_dismiss Un événement Analytics qui se déclenche lorsqu'une notification envoyée par l'éditeur de notifications est rejetée (Android uniquement).
notification_receive Un événement Analytics qui se déclenche lorsqu'une notification envoyée par l'éditeur de notifications est reçue alors que l'application est en arrière-plan (Android uniquement).
os_update Un événement Analytics qui effectue le suivi de 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 .
screen_view 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

Vous pouvez accéder à toutes les données analytiques liées à vos tests A/B dans BigQuery . BigQuery vous permet d'analyser les données à l'aide de BigQuery SQL, de les exporter vers un autre fournisseur de cloud ou d'utiliser les données pour vos modèles de ML personnalisés. Consultez Associer BigQuery à Firebase pour plus d'informations.

Pour tirer pleinement parti de l'exportation de données BigQuery, les projets Firebase doivent adopter le plan tarifaire "Blaze" avec paiement à l'utilisation. BigQuery facture le stockage des données, les insertions en continu et l'interrogation des données. Le chargement et l'exportation des données sont gratuits. Consultez la page Tarification BigQuery ou le bac à sable BigQuery pour plus d'informations.

Pour commencer, assurez-vous que votre projet Firebase est associé à BigQuery. Sélectionnez Paramètres > Paramètres du projet dans la barre de navigation de gauche, puis sélectionnez Intégrations > BigQuery > Lien . Cette page affiche les options permettant d'exporter les données d'analyse BiqQuery pour toutes les applications du projet.

Pour interroger les données d'analyse d'un test :

  1. Dans votre liste d'expériences actives , sélectionnez l'expérience souhaitée pour ouvrir la page des résultats des expériences.
  2. Dans le menu contextuel du volet de présentation de l' expérience , sélectionnez Interroger les données de l'expérience (cette option n'est pas disponible pour les projets du niveau gratuit) .

    Cela ouvre l'éditeur de requêtes de la console BigQuery avec un exemple de requête généré automatiquement de données d'expérience préchargées pour votre examen. Dans cette requête, votre expérience est codée en tant que propriété utilisateur avec le nom de l'expérience dans la clé et la variante de l'expérience dans la valeur.

  3. Dans l'éditeur de requête, sélectionnez Exécuter la requête. Les résultats sont affichés dans le volet inférieur.

Notez que, comme les données Firebase dans BigQuery ne sont mises à jour qu'une fois par jour, les données disponibles sur la page de test peuvent être plus à jour que les données disponibles dans la console BigQuery.