1. Introduction
Supposons que vous deviez ajuster les valeurs de certains paramètres de votre application après l'avoir publiée sur le Play Store. En règle générale, vous devez republier une nouvelle version de votre application et les utilisateurs doivent également la mettre à jour sur leur téléphone.
En général, la mise à jour de l'application fonctionne si vous souhaitez apporter une modification durable à votre application. Toutefois, que se passe-t-il si vous souhaitez ajuster fréquemment la valeur de certains paramètres de votre application ? Ou que se passe-t-il si vous souhaitez effectuer des tests pour trouver la configuration optimale de votre application ?
Dans ce cas, la mise à jour de l'application ne fonctionnera pas correctement. En effet, il faut un certain temps pour que la mise à jour soit entièrement propagée aux utilisateurs. Il est également difficile d'exécuter les tests sur plusieurs versions de l'application.
Comment déterminer si le parcours utilisateur de l'application fonctionne comme prévu ? Vous pouvez vous appuyer sur les commentaires des utilisateurs dans la Play Console. Toutefois, il n'est peut-être pas assez précis pour prendre une décision claire.
Points abordés
- Créer un entonnoir dans Google Analytics pour Firebase
- Utiliser Firebase Remote Config
- Exécuter Firebase A/B Testing
Prérequis
- Unity 2018.4.4f1 ou version ultérieure
- Xcode 10 ou version ultérieure (pour compiler la cible pour iOS)
- Un compte Google
- Un appareil de test équipé d'Android 5.0 ou version ultérieure avec un câble USB pour connecter votre appareil, ou un émulateur Android exécutant AVD(Android Virtual Device) avec une image système compatible avec le Play Store/les API Google
- Un appareil iOS ou un simulateur exécutant iOS 8.0 ou version ultérieure
Comment évalueriez-vous votre niveau d'expérience avec AdMob ?
Comment évalueriez-vous votre niveau d'expérience avec Firebase ?
2. Configurer l'environnement de développement
Télécharger le code
Cliquez sur le bouton suivant pour télécharger l'ensemble du code de cet atelier de programmation :
Décompressez le fichier ZIP téléchargé. Cette action décompresse le dossier racine, nommé admob-firebase-codelabs-unity-master.
Vous pouvez également cloner le dépôt GitHub à partir de la ligne de commande.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity
Le dépôt contient quatre dossiers :
101-base : code de démarrage que vous allez compiler dans cet atelier de programmation.
101-complete_and_102-base : code final de cet atelier de programmation et code de démarrage de l'atelier de programmation 102.
102-complete : code final de l'atelier de programmation 102.
Préparer les fichiers requis
Le Awesome Drawing Quiz utilise plusieurs codes Open Source, qui sont nécessaires pour compiler et exécuter le projet.
Ouvrez le terminal et accédez au répertoire racine du dépôt. Exécutez ensuite ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles sur Windows) à partir du terminal pour copier les fichiers requis dans le projet.
Importer l'application de départ
Lancez Unity, puis sélectionnez Open (Ouvrir) sur l'écran d'accueil. Sélectionnez ensuite le répertoire 101-complete_and_102-base à partir du code que vous avez téléchargé.
Le projet devrait maintenant être ouvert dans Unity.
Ajouter le plug-in Google Mobile Ads Unity
Pour diffuser des annonces AdMob dans l'application Unity, vous devez ajouter le plug-in Google Mobile Ads Unity au projet.
- Téléchargez le package Google Mobile Ads Unity Plugin 3.18.1. (Notez que cet atelier de programmation n'est peut-être pas compatible avec l'autre version du plug-in.)
- Dans le projet Unity Awesome Drawing Quiz. Dans le projet, accédez à Assets > Import Package > Custom Package (Éléments > Importer un package > Package personnalisé).
- Importez GoogleMobileAds.unitypackage dans le projet que vous avez téléchargé.
Vous devez également définir l'ID d'application AdMob. Dans l'éditeur Unity, sélectionnez Assets > Google Mobile Ads > Settings (Ressources > Google Mobile Ads > Paramètres) dans le menu.

Cochez la case Activé sous la section Google AdMob pour activer AdMob. Saisissez ensuite l'ID d'application AdMob comme suit :
- Android :
ca-app-pub-3940256099942544~3048611032 - iOS :
ca-app-pub-3940256099942544~2753522596

Ajouter des fichiers de configuration Firebase au projet Unity
- Sur l'écran de présentation du projet Awesome Drawing Quiz, cliquez sur l'icône Paramètres
. - Dans l'onglet Général, sélectionnez chaque application Android et iOS pour télécharger les fichiers google-service.json (pour Android) et GoogleService-Info.plist (pour iOS).
- Déplacez les deux fichiers de configuration dans le dossier
Assets du projet Unity.

Ajouter le SDK Firebase Analytics
- Téléchargez le SDK Unity Firebase 5.5.0 et décompressez-le à l'emplacement de votre choix. (Ignorez cette étape si vous avez déjà téléchargé le SDK.)
- Ouvrez le projet Unity Awesome Drawing Quiz, puis accédez à Assets > Import Package > Custom Package.
- Dans le SDK décompressé, importez le SDK Firebase Analytics (
dotnet4/FirebaseAnalytics.unitypackage). - Dans la fenêtre "Import Unity package" (Importer un package Unity), cliquez sur Import (Importer).
3. Ouvrir le projet Firebase depuis la console
Avant de passer à l'étape suivante, ouvrez le projet de la console Firebase que vous avez créé à l'étape Configurer le projet Firebase de l'atelier de programmation AdMob+Firebase 101.

4. Créer un entonnoir d'événements d'application
Vous avez peut-être ajouté quelques événements d'application pour suivre l'activité des utilisateurs dans l'application. En lisant le rapport de chaque événement d'application, vous pouvez obtenir les détails associés à l'événement, comme le nombre total, le nombre moyen par utilisateur, les données démographiques, etc.
Toutefois, que faire si vous souhaitez connaître le taux d'achèvement d'une série d'événements, au lieu de vous concentrer sur un événement spécifique ? Dans Google Analytics pour Firebase, vous pouvez utiliser l'entonnoir pour visualiser et optimiser le taux d'achèvement d'une série d'événements d'application.
Créer un entonnoir
Pour créer un entonnoir de conversion, procédez comme suit :
- Accédez à la console Firebase, puis sélectionnez le projet Awesome Drawing Quiz que vous avez créé précédemment.
- Cliquez sur Funnels (Entonnoirs).
- Cliquez sur NOUVEL ENTONNOIR DE CONVERSION.
- Saisissez un nom et une description pour l'entonnoir de conversion.
- Sélectionnez les deux premiers événements que vous souhaitez utiliser comme étapes de l'entonnoir de conversion.
- Cliquez sur AJOUTER UN AUTRE ÉVÉNEMENT et sélectionnez un événement pour chaque étape supplémentaire.
- Cliquez sur CRÉER.
En suivant les étapes ci-dessus, créez les entonnoirs suivants :
Nom de l'entonnoir n° 1 : taux de réussite du niveau Événements : level_start, level_success
Nom de l'entonnoir n° 2 : taux d'achèvement des annonces avec récompense Événements : ad_reward_prompt, ad_reward_impression, ad_reward
#3 Nom de l'entonnoir : taux d'achèvement du jeu Événements : game_start, game_complete
Afficher l'analyse de l'entonnoir
Une fois que vous avez créé des entonnoirs, vous pouvez y accéder dans le menu Entonnoirs de la console Firebase. Cliquez sur le nom de l'entonnoir dans la liste pour afficher l'analyse détaillée de chaque entonnoir.

Par exemple, cliquez sur Taux de réussite par niveau. Les détails de l'entonnoir s'affichent comme suit :

Dans la capture d'écran ci-dessus, vous pouvez voir le pourcentage d'utilisateurs qui ont terminé un niveau (événement level_success) après l'avoir commencé (événement level_start). Vous pouvez voir ici que 46, 2 % des utilisateurs ont terminé le niveau.
Une fois que vous avez cliqué sur Nombre d'événements, les métriques basées sur le nombre d'événements s'affichent comme suit :

D'après les métriques de la capture d'écran ci-dessus, il y a eu 116 tentatives (déclenchement de l'événement level_start) et 57 réussites (déclenchement de l'événement level_success) au cours de la période.
Étant donné que le taux d'achèvement basé sur les événements(49,1 %) est légèrement supérieur à celui basé sur les utilisateurs(46,2 %), vous pouvez en déduire que certaines personnes sont plus performantes que d'autres.
5. Intégrer Remote Config à l'application
Comme vous pouvez obtenir des insights sur votre application en fonction des événements d'application et de l'entonnoir, vous pouvez l'optimiser. Cela inclut généralement un ajustement précis de la valeur du paramètre dans l'application. Pour modifier la valeur de ces paramètres, vous devrez mettre à jour l'application afin que les modifications puissent être appliquées aux utilisateurs.
En utilisant Remote Config dans Firebase, vous pouvez ajuster ces valeurs sans mise à jour de l'application. Cela signifie que vous pouvez modifier le comportement de l'application sans avoir à déranger vos utilisateurs en les forçant à télécharger la mise à jour.
Dans cet atelier de programmation, vous allez apprendre à ajuster le montant de la récompense (nombre de lettres à dévoiler après avoir regardé une annonce vidéo avec récompense) sans mettre à jour l'application, en utilisant Remote Config.
Ajouter le SDK Firebase Remote Config
- Téléchargez le SDK Unity Firebase 5.5.0 et décompressez-le à l'emplacement de votre choix.
- Ouvrez le projet Unity Awesome Drawing Quiz, puis accédez à Assets > Import Package > Custom Package.
- Dans le SDK décompressé, importez le SDK Remote Config (
dotnet4/FirebaseRemoteConfig.unitypackage). - Dans la fenêtre "Import Unity package" (Importer un package Unity), cliquez sur Import (Importer).
Importer Firebase.RemoteConfig
Modifiez Main.cs pour pouvoir utiliser le type de Firebase.RemoteConfig sans avoir à utiliser le nom complet.
Scenes/Main.cs
...
using AwesomeDrawingQuiz.Game;
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Scene {
...
}
Initialiser et extraire les valeurs Remote Config
Modifiez la méthode InitAndFetchRemoteConfig() dans Main.cs pour initialiser l'instance Remote Config comme suit. Notez que GameSettings.KEY_REWARD_AMOUNT contient le nom du paramètre dans Remote Config. (Vous déclarerez ce champ bientôt dans cet atelier de programmation.)
Scenes/Main.cs
private Task InitAndFetchRemoteConfig() {
// TODO: Initialize and Fetch values from the Remote Config (102)
Dictionary<string, object> defaults = new Dictionary<string, object>();
defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
FirebaseRemoteConfig.SetDefaults(defaults);
if (Debug.isDebugBuild) {
ConfigSettings config = new ConfigSettings();
config.IsDeveloperMode = true;
FirebaseRemoteConfig.Settings = config;
return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
} else {
return FirebaseRemoteConfig.FetchAsync();
}
}
Vous verrez que l'instance FirebaseRemoteConfig est configurée pour extraire les dernières valeurs du serveur en mode débogage afin de faciliter le processus de développement. (IsDeveloperMode = true et FetchAsync(System.TimeSpan.Zero))
Activer les valeurs Remote Config extraites
Lorsque vous avez extrait les valeurs Remote Config, vous devez les activer pour les rendre disponibles dans l'application. Modifiez la méthode ActivateRemoteConfigValues() comme suit.
Scenes/Main.cs
private void ActivateRemoteConfigValues() {
// TODO: Activate fetched Remote Config values (102)
FirebaseRemoteConfig.ActivateFetched();
}
Modifier la méthode Start()
Pour que l'application récupère et active la valeur Remote Config au lancement de l'application, modifiez la méthode Start() dans le fichier Main.cs comme suit.
Scenes/Main.cs
void Start () {
...
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
...
}).ContinueWith(task => {
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig();
}).ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
// Enable 'Start a game' button
UnityMainThreadDispatcher.Instance()
.Enqueue(() => buttonStartGame.interactable = true);
});
#else
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig().ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
});
#endif
}
Récupérer le montant de la récompense à partir de Remote Config
Modifiez la classe GameSettings pour récupérer le montant de la récompense à partir de Remote Config.
Game/GameSettings.cs
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Game {
public class GameSettings {
...
// TODO: Apply reward amount from the Remote Config (102)
public const string KEY_REWARD_AMOUNT = "reward_amount";
public static GameSettings Instance {
get {
return instance;
}
}
...
public int RewardAmount {
get {
// TODO: Apply reward amount from the Remote Config (102)
return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
}
private set { }
}
}
}
Créer un paramètre Remote Config à partir de la console
Ensuite, vous allez créer un paramètre Remote Config pour le montant de la récompense afin de pouvoir ajuster sa valeur à la volée.
Pour créer un paramètre, accédez à la console Firebase, puis sélectionnez le projet Awesome Drawing Quiz que vous avez créé précédemment. Cliquez sur le bouton Remote Config > AJOUTER VOTRE PREMIER PARAMÈTRE.

Nommez le paramètre reward_amount et définissez sa valeur par défaut sur 1. Cliquez ensuite sur le bouton Ajouter un paramètre.

Cliquez sur le bouton Publier les modifications pour que les utilisateurs puissent les voir.

6. Modifier le comportement de l'application avec Remote Config
Le montant de la récompense dans Awesome Drawing Quiz peut désormais être configuré dans la console Firebase sans avoir à mettre à jour le code de l'application.
Dans cette section, vous allez modifier le montant de la récompense de 1 à 2 pour que l'application révèle deux caractères supplémentaires comme indice après avoir regardé une annonce avec récompense.
Modifier la valeur par défaut du paramètre reward_amount
Accédez à la console Firebase, puis sélectionnez le projet Awesome Drawing Quiz que vous avez créé précédemment. Cliquez sur Remote Config, puis sur reward_amount dans la liste. Ensuite, remplacez la valeur par défaut par 2, puis cliquez sur le bouton Mettre à jour.

Cliquez sur le bouton Publier les modifications pour que les utilisateurs puissent les voir.

Vérifier le changement de comportement de l'application
Pour confirmer la modification du comportement de l'application, exécutez à nouveau le projet. Une fois que vous avez regardé une annonce avec récompense, vous remarquerez que l'application révèle désormais deux lettres en guise de récompense, comme nous l'avons configuré dans la console Remote Config.
Avant de regarder une annonce avec récompense | Deux lettres supplémentaires ont été révélées en récompense |
7. Créer le test pour optimiser le montant de la récompense
Vous pouvez désormais modifier le montant de la récompense sans avoir à publier de mise à jour de l'application. Cependant, comment déterminer la quantité de modification qui est bonne pour l'application ?
Avec Firebase A/B Testing, vous pouvez effectuer des tests pour optimiser l'expérience utilisateur globale de l'application sans avoir à la mettre à jour ni à créer un outil distinct pour exécuter et suivre les performances de chaque test.
Concevoir le test
Avant de créer un test, vous devez définir clairement son objectif. Avant de créer un test, veillez à suivre la checklist ci-dessous.
- Quoi : que souhaitez-vous optimiser ? (par exemple, la difficulté du jeu, le timing/la visibilité des annonces, etc.)
- Pourquoi : quel est votre objectif commercial pour effectuer le test ? (par exemple, pour maximiser les revenus publicitaires, augmenter la fidélisation, etc.)
- Qui : qui est susceptible de participer au test ? (par exemple, "Tous les utilisateurs", "Audience d'utilisateurs spécifiques", etc.)
Dans cet atelier de programmation, vous allez créer un test pour optimiser la valeur de la récompense afin de maximiser l'engagement quotidien des utilisateurs du Awesome Drawing Quiz.
Créer le test
Ouvrez le projet Awesome Drawing Quiz depuis la console Firebase. Sélectionnez le menu Test A/B, puis cliquez sur le bouton Créer un test.
Sélectionnez Remote Config pour créer un test Remote Config.

Nommez l'expérience "Montant de la récompense", comme illustré dans la capture d'écran suivante.

Configurez les options de ciblage. Dans cet atelier de programmation, vous allez cibler 100 % des utilisateurs de Awesome Drawing Quiz.

L'objectif principal du test étant de trouver une valeur optimale qui maximise l'engagement quotidien des utilisateurs, sélectionnez Engagement quotidien des utilisateurs comme métrique principale à suivre.

Enfin, configurez un groupe de contrôle et un groupe de variante pour déterminer lequel est le plus performant. Sélectionnez reward_amount dans le groupe de contrôle et ne modifiez pas sa valeur. Pour le groupe de variantes, nommez-le "Moins de récompenses", puis définissez la valeur de reward_amount sur 1.

Avec cette configuration, les personnes du groupe Récompense plus faible recevront une lettre en guise de récompense, tandis que celles du groupe de contrôle recevront deux lettres. Vous pourrez ainsi voir l'impact du montant de la récompense sur les utilisateurs.
Une fois que vous aurez cliqué sur le bouton Examiner, vous verrez un aperçu du test comme suit.

Exécuter le test
Cliquez sur le bouton Démarrer le test pour l'exécuter. Notez que vous ne pouvez pas modifier la configuration du test une fois qu'il a commencé.

8. Gérer le test
Afficher la progression du test
Vous pouvez suivre la progression du test dans le menu A/B Testing de la console Firebase, qui ressemble à la capture d'écran suivante. Notez que vous pouvez également consulter le nombre d'utilisateurs qui participent au test au cours des 30 dernières minutes dans la fiche.

Une fois que vous avez cliqué sur le test dans la liste, vous pouvez en afficher les détails. Tant que le test ne peut pas désigner de variante gagnante (c'est-à-dire la variante la plus performante), le message Il est trop tôt pour désigner une variante gagnante s'affiche.

Une fois le test en cours d'exécution depuis un certain temps, les données collectées jusqu'à présent s'affichent dans la section Présentation des améliorations. Vous pouvez comparer les performances de chaque variante pour déterminer celle qui fonctionne le mieux. La capture d'écran suivante montre un exemple de la section "Vue d'ensemble des améliorations".

Dans le tableau situé sous la section Vue d'ensemble des améliorations, vous pouvez consulter les détails des métriques d'objectif du test, ainsi que les métriques supplémentaires suivies dans le test. La capture d'écran suivante montre un exemple de la section "Détails des métriques".

Déployer le leader auprès de tous les utilisateurs
Une fois que le test a été exécuté suffisamment longtemps pour que vous disposiez d'une variante gagnante, vous pouvez le déployer auprès de 100 % des utilisateurs. Une fois que le test A/B a identifié une variante clairement gagnante, il vous encourage à la déployer auprès de tous les utilisateurs.

Toutefois, même si le test n'a pas permis de déterminer clairement un gagnant, vous pouvez tout de même choisir de déployer une variante auprès de tous les utilisateurs.
Sur l'écran des détails du test, cliquez sur le menu contextuel
, puis sur Déployer la variante.

Choisissez une variante à déployer auprès de tous les utilisateurs, puis cliquez sur le bouton Vérifier dans Remote Config pour examiner les modifications avant de les appliquer dans Remote Config.

Après avoir vérifié que le brouillon ne présente aucun problème, cliquez sur le bouton Publier les modifications pour que les modifications soient visibles par tous les utilisateurs.

9. Terminé !
Vous avez terminé l'atelier de programmation AdMob+Firebase 102 Unity. Vous trouverez le code final de cet atelier de programmation dans le dossier
102-complete.

