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, les mises à jour d'applications ne fonctionneraient 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.
Si vous rencontrez des problèmes (bugs de code, erreurs grammaticales, formulation peu claire, etc.) au cours de cet atelier de programmation, veuillez les signaler via le lien Signaler une erreur situé dans l'angle inférieur gauche de l'atelier de programmation.
Points abordés
- Créer un entonnoir dans Google Analytics pour Firebase
- Utiliser Firebase Remote Config
- Exécuter Firebase A/B Testing
Prérequis
- Android Studio, version 4.1 ou ultérieure
- 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
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-android-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-android
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.
Importer l'application de départ
Lancez Android Studio, puis sélectionnez Import project (Importer un projet) 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 Android Studio.
Ajouter le fichier de configuration Firebase au projet Android
- 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 l'application Android pour télécharger le fichier google-service.json.
- Déplacez le fichier de configuration dans le répertoire
app de votre projet. 
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.
Ajoutez la dépendance Remote Config à l'application.
Commençons par ajouter Firebase Remote Config à la dépendance de l'application.
app/build.gradle
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
// TODO: Add Firebase Remote Config dependency (102)
implementation 'com.google.firebase:firebase-config-ktx'
...
}
...
Synchroniser votre projet avec les fichiers Gradle
Pour vous assurer que toutes les dépendances sont disponibles pour votre application, synchronisez votre projet avec les fichiers Gradle. Sélectionnez le menu File > Sync Project with Gradle Files (Fichier > Synchroniser le projet avec les fichiers Gradle) pour synchroniser votre projet avec les fichiers Gradle.
Définir une valeur par défaut pour le paramètre Remote Config
La récupération des valeurs à partir de Remote Config nécessite une connexion réseau. Si le réseau n'est pas disponible, vous devez définir une valeur par défaut pour chaque paramètre Remote Config.
Créez le fichier remote_config_defaults.xml dans le dossier res/xml. Définissez ensuite une valeur par défaut pour le montant de la récompense (reward_amount)) comme suit.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
Notez que reward_amount est le nom du paramètre dans Remote Config.
Récupérer le montant de la récompense à partir de Remote Config
Modifiez AwesomeDrawingQuiz.kt pour que la classe GameSettings contienne une référence à l'instance RemoteConfig.
Notez que l'instance RemoteConfig est configurée pour récupérer les dernières valeurs du serveur en mode débogage afin de faciliter le processus de développement. (Définissez l'intervalle de récupération minimal sur zéro seconde en appelant fetch(0L).)
AwesomeDrawingQuiz.kt
class AwesomeDrawingQuiz : Application() {
...
// COMPLETE: Provide FirebaseRemoteConfig instance (102)
private fun provideGameSettings() = GameSettings(provideRemoteConfig())
// COMPLETE: Add a function that provides a FirebaseRemoteConfig instance (102)
private fun provideRemoteConfig(): FirebaseRemoteConfig {
val rc = Firebase.remoteConfig.apply {
setDefaultsAsync(R.xml.remote_config_defaults)
}
val fetchTask = if (BuildConfig.DEBUG) rc.fetch(0L) else rc.fetch()
fetchTask.addOnCompleteListener {
if (it.isSuccessful) {
Log.d("AwesomeDrawingQuiz", "Remote config value fetched")
rc.activate()
}
}
return rc
}
}
Modifiez ensuite la classe GameSettings pour récupérer le montant de la récompense à partir de Remote Config.
GameSettings.kt
// TODO: Add FirebaseRemoteConfig as a class member
class GameSettings(private val rc: FirebaseRemoteConfig) {
...
// TODO: Apply reward amount from the Remote Config (102)
val rewardAmount: Int
get() = rc.getLong(KEY_REWARD_AMOUNT).toInt()
companion object {
...
// TODO: Add a key for 'reward_amount' Remote Config parameter (102)
private const val KEY_REWARD_AMOUNT = "reward_amount"
}
}
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 allez donc voir comment le montant de la récompense affecte 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 Aperçu 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 pour Android. Vous trouverez le code final de cet atelier de programmation dans le dossier
102-complete.

