Implémenter des tests A/B pour votre jeu Unity avec Firebase Remote Config

1. Introduction

Dans cet atelier de programmation, vous allez apprendre à créer un test Remote Config à l'aide d'A/B Testing pour l'exemple de jeu MechaHamster : Level Up with Firebase edition, que vous avez modifié dans Instrumenter votre jeu avec Firebase Remote Config.

Les tests A/B avec Remote Config vous permettent de tester les modifications apportées à l'UI, aux fonctionnalités ou aux campagnes axées sur l'engagement de votre application auprès d'une audience cible avant de les déployer auprès d'une audience plus large. Vous pouvez également utiliser les résultats des tests pour:

  • Déterminez quelles variantes de valeur de paramètre améliorent les métriques clés telles que les revenus et la fidélisation.
  • Identifiez les sous-groupes d'utilisateurs qui préfèrent les variantes.
  • Collectez et stockez les données de test pour effectuer des analyses supplémentaires sur les effets de la définition de différentes valeurs de paramètres.

C'est l'essence même du test A/B: il vous permet d'utiliser du code instrumenté pour Remote Config et de lancer des tests qui contrôlent les valeurs reçues par les clients, en fonction des conditions Remote Config (y compris les propriétés utilisateur Google Analytics), des pourcentages de déploiement, des événements de conversion Analytics et d'une combinaison de ces éléments.

Tout d'abord, vous allez implémenter une condition qui détermine qui sera inclus dans le test en définissant des propriétés utilisateur en fonction des actions des utilisateurs. Vous créerez ensuite un test A/B qui utilise les propriétés utilisateur Google Analytics pour identifier les clients inclus dans le test. Enfin, vous utiliserez ces données pour en savoir plus sur votre audience.

Points abordés

  • Configurer des tests A/B à l'aide de valeurs Remote Config instrumentées
  • Utiliser les propriétés utilisateur Google Analytics dans les conditions d'admission aux tests A/B

Prérequis

Prérequis

  • Unity 2019.1.0f1 ou version ultérieure avec prise en charge de la compilation pour iOS et/ou Android

2. Activer le menu de débogage

Un menu de débogage est masqué dans le projet. Le bouton permettant d'y accéder existe dans le jeu, mais n'est pas activé pour le moment. Vous devez activer le bouton pour y accéder à partir du prefab MainMenu.

  1. Dans l'éditeur Unity, sélectionnez l'onglet Project (Projet), puis sous Assets (Composants), développez Hamster > Prefabs > Menus, puis cliquez sur Menu principal.

Onglet "Project" (Projet) de l'éditeur Unity affichant les\néléments Hamster, Prefabs, Menus

  1. Dans la hiérarchie Prefab, recherchez le sous-objet désactivé nommé DebugMenuButton, puis cliquez dessus pour l'ouvrir dans l'onglet Inspector (Inspecteur).

L'éditeur Unity affiche le menu principal,\navec DebugMenu désactivé

  1. Dans l'onglet Inspector (Inspecteur), cochez la case en haut à gauche à côté du champ de texte contenant DebugMenuButton pour l'activer.

Onglet "Inspector" (Inspecteur) de DebugMenuButton\navec case à cocher

  1. Sauvez le Prefab.

Si vous exécutez le jeu dans l'éditeur ou sur votre appareil, le menu devrait à présent être accessible.

3. Activer le sous-menu Remote Config

  1. Dans l'onglet Project (Projet) de l'éditeur Unity, développez Assets (Composants) > Hamster > Prefabs (Préfabriques) > Menus, puis double-cliquez sur l'objet DebugMenu pour l'ouvrir dans l'onglet Hierarchy (Hiérarchie) de l'éditeur.

    Élément DebugMenu imbriqué sous Assets,\nHamster, Prefabs, Menus
  2. Dans l'onglet Hierarchy (Hiérarchie), développez la hiérarchie et cliquez sur le sous-objet sous DebugMenu > d'administration, qui est associé au libellé Remote Config Actions (Actions Remote Config).

Actions Remote Config imbriquées sous\nCanvas, DebugMenu

  1. Dans l'onglet Inspecteur d'Unity, activez les actions de configuration à distance en cochant la case située à gauche du champ de texte contenant le nom de l'objet.

Éditeur Unity avec Remote Config\nActions activées sous DebugMenu, Panel

Il y a deux enfants GameObject nommés "Set Bored Of Subtitle" et "Set Likes Subtitle", qui sont tous deux configurés pour appeler des méthodes existantes, mais non implémentées dans DebugMenu.cs.

4. Rétablir le forçage des sous-titres sur la valeur par défaut de l'application

Dans l'atelier de programmation précédent, vous avez remplacé la valeur par défaut d'un paramètre en tant que JSON et utilisé des conditions pour diffuser différentes variantes. Dans cet atelier de programmation, vous allez supprimer la condition que vous avez créée et réintroduire la valeur par défaut dans l'application. Vous ne la remplacerez qu'avec le résultat du test A/B.

Pour réactiver la valeur par défaut dans l'application :

  1. Ouvrez la page "Remote Config" (Configuration à distance) dans la console Firebase, puis cliquez sur l'icône en forme de crayon à côté du paramètre subtitle_override pour ouvrir le panneau latéral Modifier le paramètre.
  2. Cliquez sur l'icône X à côté de la condition pour la supprimer.
  3. À côté de la valeur par défaut restante, activez l'option Utiliser les paramètres par défaut de l'application.

Supprimer une condition de l'éditeur de paramètres Remote\nConfig

  1. Cliquez sur Enregistrer pour enregistrer vos modifications, puis sur Publier les modifications pour les publier.Option Publier\ndes modifications sur la page Remote Config

5. Définir les propriétés utilisateur dans les fonctions de débogage

Vous allez maintenant écrire des corps de fonction pour certaines fonctions Google Analytics préconfigurées, mais non implémentées, dans DebugMenu.cs (disponible dans Assets > Hamster > Scripts > States).

Ces fonctions définissent des propriétés utilisateur, qui permettent de décrire des segments de votre base d'utilisateurs et d'enregistrer l'opinion de l'utilisateur sur les sous-titres du jeu.

Implémentez SetUserBoredOfSubtitle et SetUserEnjoysSubtitle en recherchant les versions existantes dans DebugMenu.cs et en les remplaçant comme suit :

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Si votre application est correctement configurée avec Google Analytics, vous pouvez appeler l'une de ces fonctions pour rendre la propriété disponible pour les conditions de Remote Config. Pour appeler SetUserBoredOfSubtitle depuis un appareil mobile, démarrez le jeu et appuyez sur le bouton Debug Menu (Menu de débogage) dans le menu principal, puis appuyez sur Set Bored of Subtitle.

6. Créer une dimension personnalisée

Ensuite, vous allez configurer différentes variantes de sous-titres pour le subtitle_override afin de déterminer laquelle fonctionne le mieux. Toutefois, dans votre test A/B, vous ne diffuserez ces variantes qu'aux utilisateurs dont l'avis concernant le sous-titre actuel (enregistré dans subtitle_sentiment) inclut le mot "ennui".

Vous utiliserez une dimension personnalisée pour créer et suivre des paramètres personnalisés sur les événements Analytics. Pour en savoir plus, consultez Dimensions et métriques personnalisées.

Pour créer une dimension personnalisée:

  1. Ouvrez la console Firebase, développez le menu Analytics, puis sélectionnez Définitions personnalisées.
  2. Sur la page "Définitions personnalisées", cliquez sur Créer des dimensions personnalisées.
  3. Dans la fenêtre Nouvelle dimension personnalisée, définissez le nom de la dimension sur "Sentiment des sous-titres", puis sélectionnez Utilisateur dans le menu déroulant Portée.
  4. Dans le champ Propriété utilisateur, sélectionnez subtitle_sentiment..

7. Configurer le test A/B

Ensuite, créez un test A/B pour définir différentes valeurs pour subtitle_override à tester les unes contre les autres afin d'optimiser la fidélisation des utilisateurs sur deux à trois jours.

  1. Tout d'abord, sélectionnez Modifier pour le paramètre subtitle_override sur la page Remote Config de la console Firebase:

Paramètre "subtitle_override"\nsur la page Remote Config, affichant l'option "Edit" (Modifier).

  1. Dans la boîte de dialogue Modifier le paramètre qui s'affiche, cliquez sur Ajouter.

Option "Ajouter un test" sur la page de modification des paramètres Remote Config.

  1. Dans la liste qui s'affiche, sélectionnez Test.

Page du paramètre Remote Config: Ajouter un nouveau\ntest

  1. Saisissez un nom et une description pour votre test.

Section "Nom et description du test"\n

  1. Choisissez ensuite les conditions de ciblage. Commencez par sélectionner votre application dans le menu déroulant.

Étape "Ciblage" d'une configuration de test A/B, avec une application sélectionnée

  1. Cliquez ensuite sur Et pour ajouter une condition, puis sélectionnez Propriété utilisateur et subtitle_sentiment. S'il n'apparaît pas, saisissez-le manuellement.
  2. Puisque vous ne voulez définir un sous-titre que pour ceux dont le sentiment actuel de sous-titres inclut "ennui", sélectionnez contient et saisissez bored.
  3. Vous pouvez également choisir le pourcentage de l'audience qui correspond aux critères ci-dessus à exposer au test. Sélectionnez 100 % pour éviter les éléments aléatoires que vous ne pouvez pas facilement contrôler.

Section "Ciblage des tests A/B" avec\nsubtitle_sentiment sélectionné

  1. Sélectionnez ensuite un objectif que le test tentera de maximiser. Sélectionnez Fidélisation (2-3 jours).

Section "Objectifs du test A/B"

  1. Ensuite, configurez les paramètres du test et créez différentes variantes de sous-titres. Ces variantes sont les différentes valeurs que le test A/B diffusera auprès des utilisateurs dont la valeur subtitle_sentiment contient "ennui". Le test A/B déterminera la variante la plus adaptée pour maximiser la fidélisation.
  2. Saisissez la valeur de paramètre suivante pour la variante A :
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Saisissez la valeur de paramètre suivante pour la variante B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Définissez les ratios des variantes avec des nombres entiers comme suit :
    • Valeur de référence : 1
    • Variante A: 100
    • Variante B : 100
    Cela se traduit par des pondérations totales de 0,5 % pour la référence, de 49,8 % pour la variante A et de 49,8 % pour la variante B.Section de configuration\nde la pondération des variantesCes variantes spécifient qu'une fois sur 201, le test A/B diffuse la valeur par défaut pour les utilisateurs qui en ont assez des sous-titres, mais que 200 fois sur 201, il diffuse l'une des deux nouvelles valeurs et remplace l'écran de titre.
  5. Enregistrez et envoyez le test en cliquant sur Démarrer le test, puis cliquez sur Démarrer dans le pop-up de confirmation.Cliquez sur "Démarrer" pour lancer l'\nexpérience.

8. Exécuter la méthode "Définir la propriété utilisateur" et actualiser

Vous avez maintenant défini différentes propriétés sur l'utilisateur, qui peuvent ensuite être utilisées pour diriger la logique ou la présentation de votre jeu.

Si vous n'avez pas encore exécuté la méthode SetUserProperty ou si vous l'avez définie sur enjoys, le sous-titre par défaut devrait toujours s'afficher lorsque vous ouvrez le jeu.

Si vous l'avez définie sur bored (avant la nouvelle extraction), vous devriez voir l'une des nouvelles valeurs avec un ratio d'environ 50/50.

Une fois qu'un appareil entre dans un test A/B, les valeurs qu'il reçoit de ce test ne changent pas et sont persistantes à chaque installation. Par conséquent, pour recevoir l'une des autres valeurs expérimentales, vous devez créer une nouvelle installation soit en réinstallant le jeu sur le même appareil/simulateur, soit en installant le jeu sur un nouvel appareil/simulateur.

Dans un test A/B réel lancé auprès de votre base d'utilisateurs, vous devez attribuer à la référence une pondération semblable à celle des autres variantes. Toutefois, dans ce cas, vous attribuez des probabilités très biaisées pour valider que le test fonctionne. Si vous obtenez toujours la valeur par défaut (dans le cas de 1/201), essayez de réinstaller le jeu sur votre appareil/simulateur.

Par ailleurs, si vous rétablissez la valeur enjoys pour la propriété utilisateur, la valeur ne sera pas rétablie à la valeur de référence. Pour ce faire, vous devez à nouveau définir la valeur sur enjoys et réinstaller le package.

9. Félicitations !

Vous avez utilisé A/B Testing Remote Config pour tester différentes valeurs Remote Config et déterminer l'impact de chacune sur les métriques Analytics.

Points abordés

  • Configurer des tests A/B à l'aide de valeurs Remote Config instrumentées
  • Utiliser les propriétés utilisateur Google Analytics dans les conditions d'admission aux tests A/B Testing

Étapes suivantes

Une fois le test terminé, vous pouvez en sélectionner un dans la liste des tests de votre projet pour décider de l'action à effectuer. Voulez-vous en choisir un comme "gagnant" ou effectuer d'autres tests ?