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

Lorsque vous mettez à jour votre application et que vous utilisez Firebase Remote Config pour la transmettre à une application avec une base d'utilisateurs active, vous voulez vous assurer de bien faire les choses. Vous pourriez avoir des doutes sur 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 diminue. Les tests A/B peuvent aider à déterminer 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 garder la plupart de vos utilisateurs dans un groupe de contrôle garantit que la plupart de votre base d'utilisateurs peut continuer à utiliser votre application sans subir de modification de son comportement ou de son apparence jusqu'à la fin du test.
  • 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 mesure 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 le groupe de contrôle pour l'objectif sélectionné.

Pour tester A/B des variantes de fonctionnalités avec un groupe de contrôle, 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 de configuration à distance vous permet d' évaluer plusieurs variantes sur un ou plusieurs à distance les paramètres Config .

  1. Se connecter à Firebase, mettre à jour les paramètres de partage de données et assurez - vous que le partage de données est activée. Sans partage de données, votre expérience n'aura pas accès aux données d'analyse.
  2. Dans la section Engagez de la console Firebase barre de navigation, cliquez sur A / B Testing.
  3. Cliquez sur Créer expérience, puis sélectionnez Config à distance lorsque vous êtes invité pour le service que vous voulez expérimenter.
  4. Entrez un nom et en option Description pour votre expérience, puis cliquez sur Suivant.
  5. Remplissez les champs Ciblage, en choisissant d' abord l'application qui utilise votre expérience. Vous pouvez également cibler un sous-ensemble de vos utilisateurs pour participer à votre test en choisissant les options suivantes :

    • Version: une ou plusieurs versions de votre application
    • Audience de l' utilisateur: le public Analytics utilisés pour les utilisateurs cibles qui pourraient être inclus dans l'expérience
    • Propriété de l' utilisateur: Un ou plusieurs propriétés de l' utilisateur Analytics pour le choix des utilisateurs qui pourraient être inclus dans l'expérience
    • Prédiction: Les groupes d'utilisateurs prévus par l' apprentissage de la machine pour se livrer à un comportement particulier
    • Pays / Région: Un ou plusieurs pays ou régions pour la sélection des utilisateurs qui pourraient être inclus dans l'expérience
    • Langue de périphérique: une ou plusieurs langues et paramètres régionaux utilisés pour sélectionner les utilisateurs qui pourraient être inclus dans l'expérience
  6. Définissez le pourcentage d'utilisateurs cibles: Entrez le pourcentage de votre base d'utilisateurs de l' application correspondant aux critères définis dans les utilisateurs cibles que vous souhaitez diviser à parts égales entre le groupe témoin et un ou plusieurs variantes dans votre expérience. 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 en double.

  7. Vous pouvez éventuellement définir un événement d'activation pour vous assurer que seuls les utilisateurs qui ont déclenché un événement Analytics en premier sont comptabilisés dans votre test. Pour assurer une expérience vaild, assurez - vous que l'événement se produit après que vous choisissez votre application active les valeurs de configuration extraites. Des événements comme first_open ou session_start peuvent se produire avant activateFetched() , conduisant à des résultats inattendus.

  8. Pour les objectifs de l' expérience, sélectionnez la métrique pour suivre primaire, et ajouter des mesures supplémentaires dans la liste déroulante. Ceux-ci incluent des objectifs intégrés (engagement, achats, revenus, rétention, etc.), des événements de conversion Analytics et d'autres événements Analytics. Lorsque vous avez terminé, cliquez sur Suivant.

  9. Dans la section Variantes vous choisirez un groupe témoin et au moins une variante de l'expérience. Utilisez le Choisir ou créer une liste pour ajouter un ou plusieurs paramètres à expérimenter. Vous pouvez créer un paramètre qui n'a pas encore été utilisé 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. ( en option) Pour ajouter plus d'une variante à votre expérience, 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. Cliquez sur Vérifier pour enregistrer votre expérience.

Vous êtes autorisé à effectuer jusqu'à 300 expériences par projet, ce qui peut comprendre jusqu'à 24 expériences en cours, les autres étant en projet ou terminées.

Validez votre expérience sur un appareil de test

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

  1. Obtenez le jeton d'autorisation 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. Sur la console Firebase barre de navigation, cliquez sur A / B Testing.
  3. Cliquez sur Dépouille (et / ou l' exécution des expériences Config à distance), vol stationnaire au- dessus de votre expérience, cliquez sur le menu contextuel ( ), puis cliquez sur Gérer les périphériques de test.
  4. Saisissez le jeton d'autorisation 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, voir Gérer les installations Firebase .

Gérer votre expérience

Que vous créiez un test avec Remote Config, le composeur de notifications ou Firebase In-App Messaging, vous pouvez ensuite valider et démarrer votre test, surveiller votre test pendant son exécution et augmenter le nombre d'utilisateurs inclus dans votre test 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 pour tous les utilisateurs. Ou, vous pouvez exécuter une autre expérience.

Commencer une expérience

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

Surveiller une expérience

Une fois qu'un test est en cours d'exécution depuis 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 Engagez de la console Firebase barre de navigation, cliquez sur A / B Testing.
  2. Cliquez sur Courir, puis cliquez sur le titre de votre expérience. Sur cette page, vous pouvez afficher diverses statistiques observées et modélisées sur votre test en cours, notamment :

    • % De différence par rapport au départ: Mesure de l'amélioration d'une métrique pour une variante donnée par rapport à la ligne de base (ou le groupe de contrôle). Calculé en comparant la plage de valeurs de la variante à la plage de valeurs de la ligne de base.
    • Probabilité à la valeur initiale de battement: La probabilité estimée qu'une variante donnée bat la ligne de base pour la mesure sélectionnée.
    • observed_metric par utilisateur: Sur la base des résultats de l' expérience, c'est la plage prédit que la valeur métrique tombera dans le temps plus.
    • Total des observed_metric : La valeur cumulée observée pour le groupe de contrôle ou d'une variante. La valeur est utilisée pour évaluer dans quelle mesure chaque variante de effectue expérience, et est utilisée pour calculer l' amélioration, Plage de valeurs, probabilité à la valeur initiale de battement, 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 votre test exécuté pendant un certain temps (au moins 7 jours pour le FCM et la messagerie intégrée ou 14 jours pour la configuration à distance), les données de cette page indiquent quelle variante, le cas échéant, est le "leader". Certaines mesures sont accompagnées d'un graphique à barres qui présente les données dans un format visuel.

Déployer un test à 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 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 Engagez de la console Firebase barre de navigation, cliquez sur A / B Testing.
  2. Cliquez sur Terminé ou en cours, cliquez sur une expérience que vous souhaitez déployer à tous les utilisateurs, cliquez sur le menu contextuel ( ), puis cliquez sur Etaler 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 le compositeur Notifications, utilisez le déploiement de dialogue de 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 examen dans la configuration à distance 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 autonome. Une fois sélectionné, vous serez redirigé vers l'écran de composition FIAM pour apporter des modifications (si nécessaire) avant de publier.

Développer un test

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

  1. Dans la section Engagez de la console Firebase barre de navigation, cliquez sur A / B Testing.
  2. Sélectionnez le test en cours que vous souhaitez modifier.
  3. Dans la vue d' ensemble de l' expérience, cliquez sur le menu contextuel ( ), puis cliquez sur Modifier expérience en cours d'exécution.
  4. La boîte de dialogue affiche Ciblage une option pour augmenter le pourcentage d'utilisateurs qui sont dans l'expérience en cours d' exécution. Sélectionnez un plus grand nombre de que le pourcentage actuel et cliquez sur Publier. Le test sera envoyé au pourcentage d'utilisateurs que vous avez spécifié.

Dupliquer ou arrêter un test

  1. Dans la section Engagez de la console Firebase barre de navigation, cliquez sur A / B Testing.
  2. Cliquez sur Terminé ou la course, survolez votre expérience, cliquez sur le menu contextuel ( ), puis cliquez sur l' expérience en double ou expérience Stop.

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) 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 contient, ne contient pas, ou des allumettes exactement les opérateurs, vous pouvez fournir une liste séparée par des virgules des valeurs.

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

Public(s) utilisateur(s) comprend tout,
comprend au moins l'un de,
ne comprend pas tous,
ne comprend pas au moins l'un des
Sélectionnez une ou plusieurs audiences Analytics pour cibler les utilisateurs susceptibles d'être inclus dans votre test.
Propriété de l'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 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 un entier/un flottant.
Lorsque vous utilisez l'opérateur contient regex, vous pouvez créer des expressions régulières dans RE2 format. Votre expression régulière peut correspondre à tout ou partie de la chaîne de version cible. Vous pouvez également utiliser les ^ et $ ancres pour correspondre au début, à la fin, ou totalité d'une chaîne cible.
Prédiction N / A Ciblez les groupes d'utilisateurs définis par Firebase Predictions, par exemple, ceux qui sont susceptibles d'arrêter d'utiliser votre application ou les utilisateurs qui sont susceptibles d'effectuer un achat via l'application. Sélectionnez l'une des valeurs définies par l'outil Firebase Predictions. Si une option n'est pas disponible, vous devrez peut-être activer Firebase Predictions en visitant la section Predictions de la console Firebase.
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 le test. 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, spécifié en jours. Ce critère de ciblage n'est disponible que pour la messagerie intégrée à l'application Firebase.
Dernier engagement de l'application plus que
moins que
entre
Ciblez les utilisateurs en fonction de la dernière fois qu'ils ont utilisé votre application, spécifié en jours. Ce critère de ciblage n'est disponible que pour la messagerie intégrée à l'application Firebase.

Métriques des tests A/B

Lorsque vous créez votre test, vous choisissez une métrique qui est utilisée pour comparer les variantes de test, et vous pouvez également choisir d'autres métriques à suivre pour vous aider à mieux comprendre chaque variante de test et à détecter les effets secondaires importants (tels que les plantages d'applications). 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 de l'objectif

Métrique La description
Conservation (1 jour) Le nombre d'utilisateurs qui reviennent à votre application quotidiennement.
Conservation (2-3 jours) Le nombre d'utilisateurs qui reviennent à votre application dans les 2-3 jours.
Conservation (4-7 jours) Le nombre d'utilisateurs qui reviennent à votre application dans les 4 à 7 jours.
Rétention (8-14 jours) Le nombre d'utilisateurs qui reviennent à votre application dans les 8 à 14 jours.
Rétention (15+ jours) Le nombre d'utilisateurs qui reviennent à votre application 15 jours ou plus après leur dernière utilisation.
Notification ouverte Suit si un utilisateur ouvre la notification envoyée par le compositeur de notifications.
Revenu d'achat Valeur combinée pour tous ecommerce_purchase et in_app_purchase événements.
Revenus AdMob estimés Revenus estimés d'AdMob.
Revenu total estimé Valeur d'achat combinée et revenus AdMob estimés.
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.
notification_ouverte Un événement Analytics qui se déclenche lorsqu'un utilisateur ouvre une notification envoyée par le composeur de notifications. Utilisé dans le cadre d'un entonnoir de conversion.

Autres métriques

Métrique La description
Utilisateurs sans plantage Pourcentage d'utilisateurs qui n'ont pas rencontré d'erreurs dans votre application qui ont été détectées par le SDK Firebase Crashlytics au cours du test.
notification_dismiss Un événement Analytics qui se déclenche lorsqu'une notification envoyée par le composeur de notifications est rejetée (Android uniquement).
notification_recevoir Un événement Analytics qui se déclenche lorsqu'une notification envoyée par le composeur de notifications est reçue alors que l'application est en arrière-plan (Android uniquement).
os_update Un événement Analytics que les pistes lorsque le système d'exploitation de l' appareil est mis à jour à une nouvelle version.To en savoir plus, voir les événements collectés automatiquement .
screen_view Un événement Analytics qui suit les écrans consultés dans votre application. Pour en savoir plus, voir piste Screenviews .
session_start Un événement Analytics qui compte les sessions utilisateur dans votre application. Pour en savoir plus, voir les événements collectés automatiquement .
engagement_utilisateur Un événement Analytics qui se déclenche périodiquement lorsque votre application est au premier plan. Pour en savoir plus, voir les événements collectés automatiquement .

Exportation de données BigQuery

Vous pouvez accéder à toutes les données liées à l' analyse de 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 cloud ou d'utiliser les données pour vos modèles de ML personnalisés. Voir lien BigQuery à Firebase pour plus d' informations.

Pour tirer pleinement parti de l'exportation de données BigQuery, les projets Firebase doivent adopter le plan de tarification à l'utilisation "Blaze". BigQuery facture des frais pour le stockage des données, les insertions en streaming et les requêtes de données. Le chargement et l'exportation des données sont gratuits. Voir BigQuery prix 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> Link. 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. A partir de vos expériences actives liste, sélectionnez l'expérience voulue pour ouvrir la page de résultats de l' expérience.
  2. A partir du menu contextuel dans le volet aperçu de l' expérience, sélectionnez les données d'expérience de requête (cette option est disponible pour les projets sur le 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 de test préchargé pour votre examen. Dans cette requête, votre test est codé en tant que propriété utilisateur avec le nom du test dans la clé et la variante du test dans la valeur.

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

Notez que, étant donné que 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.