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.
A/B Testing avec Remote Config vous permet de tester les modifications apportées à l'interface utilisateur, aux fonctionnalités ou aux campagnes axées sur l'engagement de votre application auprès d'une audience ciblée avant de les déployer auprès d'une audience plus large. Vous pouvez également utiliser les résultats des tests pour :
- Déterminez les variantes de valeurs de paramètres qui améliorent les métriques clés telles que les revenus et la fidélisation.
- Découvrez les sous-groupes d'utilisateurs qui préfèrent chaque variante.
- 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 des tests A/B : ils vous permettent de prendre du code instrumenté pour Remote Config et de lancer des tests qui contrôlent les valeurs que les clients reçoivent, en fonction des conditions Remote Config (y compris les propriétés utilisateur Google Analytics), des déploiements en pourcentage, 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 allez ensuite créer un test A/B qui utilise les propriétés utilisateur Google Analytics pour déterminer les clients inclus dans le test. Enfin, vous utiliserez ces données pour mieux comprendre votre audience.
Points abordés
- Configurer A/B Testing à 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 iOS et/ou Android
2. Activer le menu de débogage
Un menu de débogage est caché 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 depuis le prefab MainMenu.
- Dans l'éditeur Unity, sélectionnez l'onglet Project (Projet), puis sous Assets (Éléments), développez Hamster > Prefabs > Menus et cliquez sur MainMenu.
- Dans la hiérarchie du prefab, recherchez le sous-objet désactivé nommé DebugMenuButton et cliquez dessus pour l'ouvrir dans l'onglet Inspector.
- Dans l'onglet Inspecteur, cochez la case en haut à gauche, à côté du champ de texte contenant DebugMenuButton, pour l'activer.
- Enregistrez le prefab.
Si vous exécutez le jeu dans l'éditeur ou sur votre appareil, le menu devrait maintenant être accessible.
3. Activer le sous-menu Remote Config
- Dans l'onglet Project (Projet) de l'éditeur Unity, développez Assets (Éléments) > Hamster > Prefabs > Menus, puis double-cliquez sur l'objet DebugMenu pour l'ouvrir dans l'onglet Hierarchy (Hiérarchie) de l'éditeur.
- Dans l'onglet Hierarchy (Hiérarchie), développez la hiérarchie et cliquez sur le sous-objet sous DebugMenu > Panel (Menu de débogage > Panneau), intitulé Remote Config Actions (Actions de configuration à distance).
- Dans l'onglet Inspector (Inspecteur) d'Unity, cochez la case située à gauche du champ de texte contenant le nom de l'objet pour activer Remote Config Actions (Actions Remote Config).
Il comporte 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établir les 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 au format 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 de l'application. Vous ne la remplacerez que par le résultat du test A/B.
Pour réactiver la valeur par défaut dans l'application :
- Ouvrez la page Remote Config 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. - Cliquez sur l'icône X à côté de la condition pour la supprimer.
- À côté de la valeur par défaut restante, activez l'option Utiliser la valeur par défaut de l'application.
- Cliquez sur Enregistrer pour enregistrer vos modifications, puis sur Publier les modifications pour les publier.
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
(qui se trouve 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 sont utilisées pour enregistrer l'avis de l'utilisateur sur le sous-titre du jeu.
Implémentez SetUserBoredOfSubtitle
et SetUserEnjoysSubtitle
en recherchant leurs 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, lancez le jeu, appuyez sur le bouton Debug Menu (Menu de débogage) dans le menu principal, puis sur Set Bored of Subtitle (Définir l'ennui du sous-titre).
6. Créer une dimension personnalisée
Ensuite, vous allez configurer différentes variantes de sous-titres pour subtitle_override
afin de déterminer celle qui fonctionne le mieux. Toutefois, dans votre test A/B, vous ne proposerez ces variantes qu'aux utilisateurs dont les sentiments concernant le sous-titre actuel (enregistrés dans subtitle_sentiment
) incluent le mot "ennuyé".
Vous allez utiliser 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 :
- Ouvrez la console Firebase, développez le menu Analytics, puis sélectionnez Définitions personnalisées.
- Sur la page "Définitions personnalisées", cliquez sur Créer des dimensions personnalisées.
- Dans la fenêtre Nouvelle dimension personnalisée, définissez le nom de la dimension sur "Sentiment des sous-titres" et sélectionnez Utilisateur dans le menu déroulant Portée.
- Dans le champ Propriété utilisateur, sélectionnez
subtitle_sentiment.
.
7. Configurer le test A/B
Créez ensuite un test A/B pour définir différentes valeurs pour subtitle_override
à tester les unes par rapport aux autres afin d'optimiser la fidélisation des utilisateurs sur deux à trois jours.
- Tout d'abord, sélectionnez Modifier sur le paramètre
subtitle_override
sur la page Remote Config de la console Firebase :
- Dans la boîte de dialogue Modifier le paramètre qui s'affiche, cliquez sur Ajouter.
- Dans la liste qui s'affiche, sélectionnez Test.
- Saisissez un nom et une description pour votre test.
- Ensuite, choisissez les conditions de ciblage. Commencez par sélectionner votre application dans le menu déroulant.
- Cliquez ensuite sur Et pour ajouter une condition, puis sélectionnez Propriété utilisateur et choisissez
subtitle_sentiment
. Si elle n'apparaît pas, saisissez-la manuellement. - Comme vous ne souhaitez définir un sous-titre que pour ceux dont le sentiment actuel inclut "ennuyé", choisissez contient et saisissez
bored
. - Vous pouvez également choisir le pourcentage de l'audience correspondant aux critères ci-dessus à exposer au test. Sélectionnez 100 % pour éviter l'aléatoire que vous ne pouvez pas contrôler facilement.
- Sélectionnez ensuite un objectif que le test tentera de maximiser. Sélectionnez Rétention (2 à 3 jours).
- Ensuite, configurez les paramètres du test et créez différentes variantes de sous-titres . Ces variantes sont les différentes valeurs que les tests A/B présenteront aux utilisateurs dont le
subtitle_sentiment
contient "ennui". Les tests A/B détermineront la variante la plus efficace pour maximiser la fidélisation. - 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}}
- 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}}
- Définissez les ratios de variantes avec des nombres entiers comme suit :
- Référence : 1
- Variante A : 100
- Variante B : 100
Ces variantes indiquent que le test A/B diffuse la valeur par défaut une fois sur 201 aux utilisateurs qui en ont assez des sous-titres, mais qu'il diffusera l'une des deux nouvelles valeurs 200 fois sur 201 et remplacera l'écran de titre.
- Enregistrez et envoyez votre test en cliquant sur Démarrer le test, puis sur Démarrer dans le pop-up de confirmation.
8. Exécuter la méthode "Set User Property" (Définir la propriété utilisateur) et actualiser
Vous avez maintenant défini différentes 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 exécuté la méthode SetUserProperty
auparavant ou si vous l'avez définie sur enjoys
, vous devriez toujours voir les sous-titres par défaut lorsque vous ouvrez le jeu.
Si vous l'avez défini sur bored
(avant la nouvelle récupération), vous devriez voir l'une des nouvelles valeurs dans un rapport d'environ 50/50.
Une fois qu'un appareil a été inclus dans un test A/B, les valeurs qu'il reçoit de ce test ne changent 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 en réinstallant le jeu sur le même appareil/simulateur ou en l'installant sur un nouvel appareil/simulateur.
Dans un véritable test A/B lancé auprès de votre base d'utilisateurs, vous devez attribuer à la référence un poids similaire à celui des autres variantes. Toutefois, dans ce cas, vous attribuez des probabilités très biaisées pour valider le bon fonctionnement du test. Si (dans le cas de 1/201), vous recevez toujours la valeur par défaut, essayez de réinstaller le jeu sur votre appareil/simulateur.
Autre effet : si vous redéfinissez la propriété utilisateur sur enjoys
, la valeur ne reviendra pas à la valeur de référence. Toutefois, vous pouvez le faire en passant à enjoys
et en réinstallant l'application.
9. Félicitations !
Vous avez utilisé les tests A/B 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 A/B Testing à 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
É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 ce que vous souhaitez en faire. Souhaitez-vous en choisir une comme "gagnante" ou effectuer d'autres tests ?