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

1. Introduction

Dans cet atelier de programmation, vous apprendrez à créer une expérience Remote Config à l'aide des tests A/B pour l'exemple de jeu MechaHamster : Level Up with Firebase edition , que vous avez modifié dans Instrument your game with Firebase Remote Config .

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

  • Déterminez quelles variantes de valeur de paramètre améliorent les indicateurs clés tels que les revenus et la rétention.
  • Découvrez quels sous-groupes d'utilisateurs préfèrent quelles variantes.
  • Rassemblez et stockez les données d’expérience pour effectuer une analyse supplémentaire sur les effets de la définition de différentes valeurs de paramètres.

C'est l'essence même de l'A/B Testing : il vous permet d'utiliser du code instrumenté pour Remote Config et de lancer des expériences qui contrôlent les valeurs que les clients reçoivent, en fonction des conditions de Remote Config (y compris les propriétés utilisateur de Google Analytics), des déploiements en pourcentage, des événements de conversion Analytics, et une combinaison de ceux-ci.

Tout d’abord, vous implémenterez une condition qui détermine qui sera inclus dans l’expérience en définissant les propriétés utilisateur en fonction des actions de l’utilisateur. Ensuite, vous créerez une expérience de test A/B qui utilise les propriétés utilisateur de Google Analytics pour déterminer quels clients sont inclus dans l'expérience. Et enfin, vous utiliserez ces données pour mieux comprendre votre audience.

Ce que vous apprendrez

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

Conditions préalables

Ce dont vous aurez besoin

  • Unity 2019.1.0f1 ou version ultérieure avec prise en charge des builds iOS et/ou Android

2. Activation du menu de débogage

Il y a un menu de débogage caché dans le projet, et le bouton permettant d'accéder à ce menu existe dans le jeu mais n'est pas actuellement activé. Vous devez activer le bouton pour y accéder à partir du préfabriqué MainMenu.

  1. Dans l'éditeur Unity, sélectionnez l'onglet Projet , puis sous Assets , développez Hamster > Prefabs > Menus et cliquez sur MainMenu .

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. Dans la hiérarchie préfabriquée, recherchez le sous-objet désactivé nommé DebugMenuButton et cliquez dessus pour l'ouvrir dans l'onglet Inspecteur .

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. Dans l'onglet Inspecteur , cochez la case dans le coin supérieur gauche à côté du champ de texte contenant DebugMenuButton pour l'activer.

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Enregistrez le préfabriqué.

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

3. Activez le sous-menu Remote Config

  1. Dans l'onglet Projet de l'éditeur Unity, développez Actifs > Hamster > Préfabriqués > Menus et double-cliquez sur l'objet DebugMenu pour l'ouvrir dans l'onglet Hiérarchie de l'éditeur.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. Dans l'onglet Hiérarchie , développez la hiérarchie et cliquez sur le sous-objet sous DebugMenu > Panel , intitulé Remote Config Actions .

Remote Config Actions nested under\nCanvas, DebugMenu

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

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

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

4. Réinitialisez le remplacement des sous-titres par défaut dans 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 proposer différentes variantes. Dans le cadre de cet atelier de programmation, vous supprimerez la condition que vous avez créée et réintroduirez la valeur par défaut dans l'application, et vous la remplacerez uniquement par le résultat des tests A/B.

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

  1. Ouvrez la page Remote Config dans la console Firebase et 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 le bouton Utiliser la valeur par défaut dans l'application .

Deleting a condition from the Remote\nConfig parameter editor

  1. Cliquez sur Enregistrer pour enregistrer vos modifications, puis cliquez sur Publier les modifications pour publier vos modifications. Publish\nchanges option on the Remote Config page

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

Vous allez maintenant écrire des corps de fonctions pour certaines fonctions Google Analytics préconfigurées mais non implémentées dans DebugMenu.cs (qui se trouvent dans Actifs > Hamster > Scripts > États).

Ces fonctions définissent les propriétés de l'utilisateur , qui sont des moyens de décrire des segments de votre base d'utilisateurs et sont utilisées pour enregistrer ce que l'utilisateur ressent à propos du sous-titre du jeu.

Implémentez SetUserBoredOfSubtitle et SetUserEnjoysSubtitle en recherchant leurs versions existantes dans DebugMenu.cs et en les écrasant 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 aux conditions de Remote Config. Pour appeler SetUserBoredOfSubtitle depuis un appareil mobile, démarrez le jeu et appuyez sur le bouton Debug Menu dans le menu principal, puis appuyez sur Set Bored of Subtitle .

6. Créez une dimension personnalisée

Ensuite, vous configurerez différentes variantes de sous-titres pour subtitle_override afin de voir quel sous-titre fonctionne le mieux. Mais, dans votre test A/B, vous ne proposerez ces variantes qu'aux utilisateurs dont les sentiments à propos du sous-titre actuel (tels qu'enregistrés dans subtitle_sentiment ) incluent le mot « ennuyé ».

Vous utiliserez une dimension personnalisée pour créer et suivre des paramètres personnalisés sur les événements Analytics. Consultez Dimensions et statistiques personnalisées pour plus d’informations.

Pour créer une nouvelle dimension personnalisée :

  1. Ouvrez la console Firebase , développez le menu Analytics et 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 « Sous-titre Sentiment » et, dans la liste déroulante Portée, sélectionnez Utilisateur .
  4. Pour le champ Propriété utilisateur , sélectionnez subtitle_sentiment.

7. Mettre en place l'expérience de test A/B

Ensuite, créez une expérience de test A/B pour définir différentes valeurs pour subtitle_override à tester les unes par rapport aux autres afin d'optimiser la rétention des utilisateurs sur deux à trois jours.

  1. Tout d'abord, sélectionnez Modifier sur le paramètre subtitle_override sur la page de configuration à distance de la console Firebase :

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. Dans la boîte de dialogue Modifier le paramètre qui apparaît, cliquez sur Ajouter un nouveau .

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. Dans la liste qui apparaît, sélectionnez Expérience .

Remote Config parameter page: Add new\nexperiment

  1. Saisissez un nom et une description pour votre expérience.

Experiment name and description\nsection

  1. Ensuite, choisissez les conditions de ciblage. Tout d’abord, sélectionnez votre application dans la liste déroulante.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. Ensuite, cliquez sur Et pour ajouter une nouvelle condition, puis sélectionnez Propriété utilisateur et choisissez subtitle_sentiment . S'il n'apparaît pas, saisissez-le manuellement.
  2. Puisque vous souhaitez uniquement définir un sous-titre pour ceux dont le sentiment actuel de sous-titre inclut « ennuyé », choisissez contain et tapez bored .
  3. Vous pouvez éventuellement choisir le pourcentage de l'audience qui correspond aux critères ci-dessus à exposer au test. Sélectionnez 100 % pour éviter tout caractère aléatoire que vous ne pouvez pas facilement contrôler.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. Ensuite, sélectionnez un objectif pour lequel le test tentera de maximiser. Rétention des choix (2-3 jours) .

A/B Testing Goals section

  1. Ensuite, configurez les paramètres de l'expérience et créez différentes variantes de sous-titres. Ces variantes sont les différentes valeurs que les tests A/B serviront aux utilisateurs dont subtitle_sentiment contient « ennuyé », et les tests A/B détermineront quelle variante est la meilleure pour maximiser la rétention.
  2. Entrez 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. Entrez 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 rapports de variantes avec des nombres entiers comme suit :
    • Base de référence : 1
    • Variante A : 100
    • Variante B : 100
    Cela entraînera 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. Variant weights configuration\nsection Ces variantes précisent qu'une fois sur 201, l'A/B Testing sert la valeur par défaut à ceux qui s'ennuient des sous-titres, mais 200/201 fois, il servira l'une des deux nouvelles valeurs et remplacera l'écran titre.
  5. Enregistrez et soumettez en cliquant sur Démarrer l'expérience , puis cliquez sur Démarrer dans la fenêtre contextuelle de confirmation. Click Start to start the\nexperiment

8. Exécutez la méthode Set User Property et actualisez

Vous avez maintenant défini diverses propriétés concernant l'utilisateur, qui peuvent ensuite être utilisées pour orienter 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 , vous devriez toujours voir le sous-titre par défaut lors de l'ouverture du jeu.

Si vous l'avez réglé sur bored (avant de récupérer à nouveau), vous devriez voir l'une des nouvelles valeurs dans un rapport d'environ 50/50.

Une fois qu'un appareil a participé à une expérience de test A/B, les valeurs qu'il reçoit de cette expérience ne changeront pas et sont persistantes par 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 véritable test A/B lancé sur votre base d'utilisateurs, vous devez donner à la ligne de base un poids similaire à celui des autres variantes. Mais dans ce cas, vous attribuez des probabilités très asymétriques pour valider que l’expérience fonctionne. Si (dans le cas 1/201), vous recevez toujours la valeur par défaut, essayez de réinstaller le jeu sur votre appareil/simulateur.

Un autre effet de ceci est que le fait de redéfinir la propriété de l'utilisateur sur enjoys ne ramènera pas la valeur à la ligne de base, mais encore une fois, vous pouvez le faire en basculant vers enjoys et en réinstallant.

9. Félicitations !

Vous avez utilisé les tests A/B de configuration à distance pour expérimenter différentes valeurs de configuration à distance et déterminer comment chacune affecte les métriques Analytics.

Ce que nous avons couvert

  • Comment configurer les tests A/B à l'aide des valeurs instrumentées de Remote Config
  • Comment utiliser les propriétés utilisateur de Google Analytics dans le cadre des conditions d'admission aux expériences de test A/B

Prochaines étapes

Une fois l'expérience terminée, vous pouvez en sélectionner une dans la liste des expériences de votre projet pour décider ce que vous voulez en faire. Voulez-vous en choisir un comme « gagnant » ou mener d'autres expériences ?