AdMob : Firebase 102 pour Android : ajuster le comportement d'une application sans la mettre à jour

1. Introduction

Supposons que vous deviez ajuster les valeurs de certains paramètres dans votre application après sa publication sur le Play Store. En règle générale, vous devez publier à nouveau 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 fonctionne si vous souhaitez apporter des modifications durables à votre application. Mais que se passe-t-il si vous souhaitez ajuster fréquemment la valeur de certains paramètres dans votre application ? Ou que se passe-t-il si vous voulez effectuer des tests pour trouver la configuration d'application optimale ?

Dans ce cas, les mises à jour d'applications ne fonctionneront pas correctement. Parce que la propagation complète de la mise à jour aux utilisateurs prend un certain temps. En outre, il est assez difficile d'effectuer des tests sur plusieurs versions de l'application.

De plus, comment pouvez-vous déterminer si le parcours utilisateur de l’application fonctionne comme prévu ? Vous pouvez vous fier aux commentaires des utilisateurs dans la Play Console. Toutefois, elles ne sont pas assez précises 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 sous Android 5.0 ou version ultérieure avec un câble USB pour connecter votre appareil, ou un Android Emulator exécutant un AVD(appareil virtuel Android) avec une image système compatible avec les API Play Store/Google

Comment évalueriez-vous votre niveau d'expérience avec AdMob ?

Débutant Intermédiaire Expert

Comment évalueriez-vous votre niveau d'expérience avec Firebase ?

<ph type="x-smartling-placeholder"></ph> Débutant Intermédiaire Expert
.

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 un dossier racine nommé admob-firebase-codelabs-android-master.

...ou cloner le dépôt GitHub depuis la ligne de commande.

$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-android

Le dépôt contient quatre dossiers, comme suit:

  • android_studio_folder.png101-base : code de démarrage que vous allez compiler dans cet atelier de programmation.
  • android_studio_folder.png101-complete_and_102-base : code final de cet atelier de programmation et pour l'atelier de programmation 102.
  • android_studio_folder.png102-complete : code final de l'atelier de programmation 102.

Importer l'application de démarrage

Lancez Android Studio, puis sélectionnez Import project (Importer le projet) sur l'écran d'accueil. Sélectionnez ensuite le répertoire 101-complete_and_102-base dans le code que vous avez téléchargé.

Le projet doit maintenant être ouvert dans Android Studio.

Ajouter le fichier de configuration Firebase au projet Android

  1. Dans l'écran de présentation du projet Awesome Drawing Quiz, cliquez sur l'icône Paramètres. 9bacb5ada7cbaaf6.png
  2. Dans l'onglet General (Général), sélectionnez l'application Android pour télécharger le fichier google-service.json.
  3. Déplacez le fichier de configuration dans le répertoire android_studio_folder.pngapp de votre projet. 797cde1881a38fdf.png

3. Ouvrir le projet Firebase depuis la console

Avant de passer à l'étape suivante, ouvrez le projet depuis la console Firebase que vous avez créé à l'étape Configurer un projet Firebase de l'atelier de programmation AdMob + Firebase 101.

e0a028059c9e00cb.png

4. Créer un entonnoir d'événements d'application

Vous avez peut-être ajouté quelques événements d'application pour suivre l'activité de l'utilisateur dans l'application. En lisant le rapport sur 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.

Cependant, que se passe-t-il si vous souhaitez consulter 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, l'entonnoir de conversion vous permet de visualiser et d'optimiser le taux d'achèvement d'une série d'événements d'application.

Créer un entonnoir de conversion

Pour créer un entonnoir de conversion, procédez comme suit :

  1. Accédez à la console Firebase et sélectionnez le projet Awesome Drawing Quiz que vous avez créé précédemment.
  2. Cliquez sur Entonnoirs de conversion.
  3. Cliquez sur NOUVEL ENTONNOIR DE CONVERSION.
  4. Saisissez un nom et une description pour l'entonnoir de conversion.
  5. Sélectionnez les deux premiers événements que vous souhaitez utiliser comme étapes de l'entonnoir de conversion.
  6. Cliquez sur AJOUTER UN AUTRE ÉVÉNEMENT et sélectionnez un événement pour chaque étape supplémentaire.
  7. Cliquez sur CRÉER.

En suivant les étapes ci-dessus, créez les entonnoirs de conversion suivants:

Nom de l'entonnoir n° 1:taux de réussite au niveau Événements: level_start, level_successd3bc78ef61a261d7.png

Nom de l'entonnoir de conversion n° 2:Taux de lecture complète des annonces avec récompense Événements: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

N° 3 Nom de l'entonnoir de conversion: Taux d'achèvement du jeu Événements: game_start, game_completedab25e8501746d5f.png

Afficher l'analyse de l'entonnoir

Une fois que vous avez créé des entonnoirs de conversion, vous pouvez y accéder dans le menu Entonnoirs de conversion de la console Firebase. Cliquez sur le nom de l'entonnoir dans la liste pour afficher l'analyse détaillée de chaque entonnoir de conversion.

620c0e84587c8ad4.png

Par exemple, cliquez sur le taux de réussite du niveau. Les détails de l'entonnoir de conversion s'affichent comme suit:

c889f9b6ece15847.png

Sur la capture d'écran ci-dessus, vous pouvez voir le pourcentage d'utilisateurs qui ont terminé un niveau (événement level_success déclenché) après avoir commencé un niveau (é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 correspondant au nombre d'événements s'affichent, comme suit:

d044fb7b07e6e0d9.png

D'après les métriques de la capture d'écran ci-dessus, il y a eu 116 tentatives (l'événement level_start a été déclenché) et 57 annulations (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 l'utilisateur(46,2%), vous pouvez dire que certaines personnes sont plus performantes que les autres.

5. Intégrer Remote Config à l'application

Étant donné que vous pouvez obtenir des insights sur votre application en fonction des événements de l'application et de l'entonnoir, vous souhaiterez peut-être optimiser votre application. Elle consiste généralement à ajuster la valeur du paramètre dans l'application. Pour modifier la valeur de ces paramètres, vous devez mettre à jour l'application afin que les modifications puissent être appliquées aux utilisateurs.

Remote Config dans Firebase vous permet d'ajuster ces valeurs sans mettre à jour l'application. Vous pouvez donc modifier le comportement de l'application sans 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 à indiquer après avoir regardé une annonce vidéo avec récompense) sans mise à jour de l'application à l'aide de Remote Config.

Ajouter Remote Config à la dépendance de 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 des fichiers Gradle

Pour vous assurer que toutes les dépendances sont disponibles pour votre application, synchronisez votre projet avec les fichiers Gradle. Sélectionnez Fichier > Menu "Sync Project with Gradle Files" (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

L'extraction des valeurs de Remote Config nécessite une connexion réseau. Dans le cas où 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 la valeur par défaut du 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érez 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 extraire 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
    }
}

Ensuite, modifiez 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 depuis la console

Vous allez maintenant 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 Remote Config -> AJOUTER VOTRE PREMIER PARAMÈTRE.

7f52617141c53726.png

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.

cbc771fd1685b29c.png

Cliquez sur le bouton Publier les modifications pour appliquer les modifications aux utilisateurs.

d6a6aa4a60e06ee9.png

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 faire passer le montant de la récompense de 1 à 2 pour que l'application révèle deux personnages supplémentaires après avoir visionné 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, définissez la valeur par défaut sur 2, puis cliquez sur le bouton Update (Mettre à jour).

9a9bd8a26a39bfe3.png

Cliquez sur le bouton Publier les modifications pour appliquer les modifications aux utilisateurs.

d6a6aa4a60e06ee9.png

Vérifier le changement de comportement de l'application

Pour confirmer le changement de comportement de l'application, exécutez à nouveau le projet. Une fois que vous aurez fini de regarder une annonce avec récompense, vous remarquerez que l'application affiche désormais deux lettres comme récompense, comme nous l'avons configuré dans la console Remote Config.

Avant de regarder une annonce avec récompense

A révélé deux lettres supplémentaires comme récompense

7. Créez le test pour optimiser le montant de la récompense

Vous pouvez désormais modifier le montant de la récompense sans avoir à publier une mise à jour de l'application. Cependant, comment déterminer le montant de la modification est bénéfique pour l'application ?

Avec Firebase A/B Testing, vous pouvez effectuer des tests pour optimiser l'expérience utilisateur globale de votre application sans avoir à mettre à jour une application ni à créer un outil distinct pour exécuter chaque test et en effectuer le suivi.

Concevoir le test

Avant de créer un test, définissez-en un objectif clair. Veillez à consulter la checklist suivante avant de créer un test.

  • Quoi: que souhaitez-vous optimiser ? (par exemple, la difficulté du jeu, le calendrier/la visibilité des annonces, etc.)
  • Pourquoi ? Quel est votre objectif commercial en exécutant le test ? (par exemple, pour maximiser les revenus publicitaires, augmenter la fidélisation, etc.)
  • Qui: qui peut participer à l'expérience ? (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 et maximiser l'engagement quotidien des utilisateurs avec Awesome Drawing Quiz.

Créer le test

Ouvrez le projet Awesome Drawing Quiz dans la console Firebase. Sélectionnez le menu A/B Testing, puis cliquez sur le bouton Créer un test.

Sélectionnez Remote Config pour créer un test Remote Config.

f38a85328ab54e7e.png

Nommez le test Amount of the Reward (Montant de la récompense), comme illustré dans la capture d'écran suivante.

15d552adb61c0b08.png

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

61b316741a63050f.png

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

694641b57d90ff65.png

Enfin, configurez le contrôle et le groupe de variantes afin d'identifier le groupe le plus performant. Sélectionnez "reward_amount" dans le groupe de contrôle et ne modifiez pas sa valeur. Nommez le groupe de variantes récompense inférieure, puis définissez la valeur de reward_amount sur "1".

10ed7f5b06858519.png

Avec cette configuration, les membres du groupe Moins de récompense recevront une lettre en tant que récompense, tandis que les membres du groupe de contrôle recevront deux lettres en guise de récompense. Vous pourrez ainsi analyser l'impact du montant de la récompense sur les utilisateurs.

Lorsque vous cliquez sur le bouton Examiner, une vue d'ensemble du test s'affiche, comme suit.

ae6477ce79f6265d.png

Effectuer le test

Cliquez sur le bouton Démarrer le test pour lancer le test. Notez que vous ne pouvez plus modifier la configuration du test une fois qu'il a commencé.

7131bf9b4fa74fa5.png

8. Gérer le test

Afficher la progression du test

Vous pouvez vérifier la progression du test dans le menu A/B Testing de la console Firebase, qui ressemble à la capture d'écran suivante. Notez que la fiche indique également le nombre d'utilisateurs qui ont participé au test au cours des 30 dernières minutes.

8a7009bdd8871d95.png

Lorsque vous cliquez sur le test dans la liste, les détails du test s'affichent. Tant que le test ne peut pas déclarer de variante optimale (c'est-à-dire la variante la plus performante), le message Il est trop tôt pour déclarer une variante optimale s'affiche.

a4e7ca3e3f4711cd.png

Une fois que le test s'exécute depuis un certain temps, il commence à afficher les données collectées jusqu'à présent dans la section Vue d'ensemble des améliorations. Vous pouvez comparer les performances de chaque variante afin d'identifier la plus performante. La capture d'écran suivante montre un exemple de section "Vue d'ensemble des améliorations".

e2d00fc27c053fd3.png

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

c3859d642f85cc52.png

Déployer la variante optimale auprès de tous les utilisateurs

Une fois que vous disposez d'une variante optimale ou gagnante, vous pouvez l'étendre à la totalité des utilisateurs. Une fois que le test A/B a trouvé une variante optimale, il vous encourage à déployer la variante dominante auprès de tous les utilisateurs.

86cb6a6c07516634.png

Toutefois, même si le test n'a pas clairement identifié de variante optimale, vous pouvez 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 73afe611adf58774.png, puis sur Déployer la variante.

374e1c72be1d0656.png

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

e176f6e6a72c754.png

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

d65d545620ce93f6.png

9. Terminé !

Vous avez terminé l'atelier de programmation AdMob + Firebase 102 sur Android. Vous trouverez le code final de cet atelier de programmation dans le dossier android_studio_folder.png102-complete.