Modèles des tendances pour les applications de jeux

Apprenez à utiliser BigQuery ML pour entraîner, évaluer et obtenir des prédictions à partir de différents types de modèles de tendances. Les modèles de tendances peuvent vous aider à déterminer la probabilité que des utilisateurs spécifiques reviennent dans votre application. Vous pouvez ainsi utiliser ces informations dans vos décisions marketing.

Présentation

Si vous êtes développeur de jeux mobiles, la fidélisation des utilisateurs représente probablement l'un de vos défis. Selon l'analyse de l'industrie des jeux mobiles en 2019, le taux de fidélisation des utilisateurs après le premier jour n'est que de 25 % pour la plupart des jeux mobiles. Pour conserver un pourcentage d'utilisateurs plus élevé au-delà de cette période, vous pouvez prendre des mesures pour motiver et encourager les utilisateurs qui sont les plus susceptibles de revenir. Toutefois, pour cibler ces utilisateurs, vous devez déterminer la propension d'un utilisateur spécifique à revenir après les 24 premières heures. Si vous développez d'autres types d'applications en ligne accordant la priorité à la réduction de la perte d'audience, cette approche devrait également vous convenir.

Pour mettre en œuvre l'approche décrite dans cet article, utilisez ce notebook.

Cet article présente une approche de haut niveau des modèles de tendances, y compris :

  • Préparer les données de jeu vidéo afin de pouvoir les utiliser pour entraîner un modèle de machine learning (ML)
  • Choisir le type de modèle de tendances à utiliser
  • Entraîner et évaluer le modèle
  • Obtenir des prédictions à partir du modèle
  • Exporter des données de prédiction à utiliser dans les campagnes marketing

Cible

Cette solution est destinée aux développeurs d'applications en ligne, en particulier les développeurs de jeux mobiles. Il suppose que vous disposez des connaissances de base suivantes :

  • Concepts du machine learning
  • SQL standard

Exemple d'ensemble de données

La solution utilise l'ensemble de données public firebase-public-project.analytics_153293282.events_20181003. Cet ensemble de données contient des données Google Analytics 4 (GA4) provenant d'une application de jeu mobile réelle appelée "Flood It!". Cet ensemble de données contient 5,7 millions d'événements provenant de plus de 15 000 utilisateurs.

GA4 utilise un modèle de mesure basé sur les événements. Chaque ligne de cet ensemble de données correspond à un événement unique, qui contient des champs imbriqués pour les paramètres d'événements. Pour en savoir plus sur la structure des données, consultez la page Schéma de BigQuery Export.

Exporter des données Google Analytics vers BigQuery

Si, à la place des exemples de données, vous souhaitez utiliser vos propres données à partir d'une propriété GA4, vous pouvez suivre les instructions de la section (GA4) Configurer BigQuery Export pour exporter vos données.

Traiter les données

Vous devez traiter les données d'événement pour les adapter à la forme et au format à utiliser comme données d'entraînement. Le traitement des données permet d'atteindre les objectifs suivants :

  • Filtre les utilisateurs peu susceptibles de revenir à l'application
  • Crée des fonctionnalités pour les données démographiques sur les utilisateurs
  • Crée des fonctionnalités pour les données sur le comportement des utilisateurs

La combinaison des données démographiques et des données comportementales permet de créer un modèle plus prédictif.

Une fois traitées, chaque ligne des données d'entraînement représente les données d'un utilisateur unique, identifié par la colonne user_pseudo_id.

Attribuer des libellés aux utilisateurs

Pour traiter les données, commencez par ajouter un libellé aux enregistrements afin d'identifier les utilisateurs qui semblent peu susceptibles de revenir à l'application. Dans cette solution, vous ajoutez un libellé aux enregistrements pour les classer par catégorie, puis en fonction de leur interaction avec l'application.

Tout d'abord, filtrez les utilisateurs qui ont utilisé l'application pendant moins de 10 minutes lors de leur première visite. Vous marquez ces utilisateurs comme étant rejetés.

Vous devez ensuite marquer les utilisateurs restants comme étant perdus s'il n'y a pas de données d'événement pour ces utilisateurs dans les 24 heures suivant leur première interaction avec l'application ou comme étant revenus s'il y a au moins un enregistrement d'événement dans les 24 heures suivant leur première interaction avec l'application. Le modèle utilise ces libellés pendant l'entraînement pour apprendre à identifier la probabilité qu'un utilisateur entre dans une catégorie ou une autre. Vous pouvez ensuite prédire la probabilité de retour de certains utilisateurs à l'aide du modèle entraîné.

Si votre cas d'utilisation est différent, vous pouvez utiliser différents critères pour identifier les clients rejetés ou perdus. Si vous voulez prédire autre chose que la perte d'audience, vous pouvez prendre en compte par exemple :

  • Si un utilisateur est susceptible de dépenser de l'argent dans une devise en jeu
  • La probabilité que l'utilisateur termine n niveaux de jeu
  • La probabilité que l'utilisateur joue pendant une durée n

Traiter les caractéristiques démographiques

L'étape suivante du traitement des données consiste à ajouter des caractéristiques aux données démographiques sur les utilisateurs. Cette solution utilise les champs suivants comme caractéristiques démographiques :

  • geo.country
  • device.operating_system
  • device.language

Toutefois, vous pouvez choisir des champs différents si ceux-ci conviennent mieux à votre cas d'utilisation.

Un utilisateur peut avoir plusieurs valeurs uniques dans ces champs. Par exemple, si un utilisateur a utilisé l'application depuis deux appareils différents. Pour simplifier, cette solution utilise les valeurs du premier événement d'interaction de l'utilisateur.

Traiter les caractéristiques de comportement

La dernière étape du traitement des données consiste à ajouter des caractéristiques au comportement des utilisateurs.

Pour extraire les données sur le comportement des utilisateurs, la solution analyse les activités de chaque utilisateur dans les premières 24 heures qui suivent son interaction avec l'application. En plus des événements collectés automatiquement par Analytics, vous pouvez explorer les événements recommandés pour les jeux afin de comprendre le comportement des utilisateurs. Pour prédire la perte d'utilisateurs dans ce cas, la solution comptabilise le nombre de fois où les événements suivants sont collectés pour chaque utilisateur dans les 24 heures qui suivent sa première interaction avec l'application :

  • user_engagement
  • level_start_quickplay
  • level_end_quickplay
  • level_complete_quickplay
  • level_reset_quickplay
  • post_score
  • spend_virtual_currency
  • ad_reward
  • challenge_a_friend
  • completed_5_levels
  • use_extra_steps

Vous pouvez utiliser divers ensembles d'événements si votre cas d'utilisation est différent de celui décrit ici. Pour afficher la liste des événements disponibles, exécutez la requête suivante :

SELECT
    event_name,
    COUNT(event_name) as event_count
FROM
    firebase-public-project.analytics_153293282.events_*
GROUP BY 1
ORDER BY
   event_count DESC

Choisir un modèle

Une fois les données d'entraînement préparées, vous êtes prêt à créer un modèle de ML. Un certain nombre d'algorithmes de classification sont disponibles pour le modèle. Le tableau suivant répertorie les types de modèles, ainsi que leurs avantages et leurs inconvénients :

Modèle Type de modèle Avantages Inconvénients
Régression logistique LOGISTIC_REG Plus rapide à entraîner que les autres types de modèles. Il est possible qu'il n'offre pas les performances les plus élevées.
XGBoost BOOSTED_TREE_CLASSIFIER
  • Performances supérieures à un modèle LOGISTIC_REG.
  • Permet de vérifier l'importance des caractéristiques.
Plus lent à entraîner qu'un modèle LOGISTIC_REG.
Réseaux de neurones profonds DNN_CLASSIFIER Performances supérieures à un modèle LOGISTIC_REG. Plus lent à entraîner qu'un modèle LOGISTIC_REG.
AutoML Tables AUTOML_CLASSIFIER Performances supérieures à un modèle LOGISTIC_REG.
  • Peut prendre plus de temps pour être entraîné que d'autres types de modèles.
  • Explicabilité limitée du modèle.

Cette solution utilise par défaut un modèle de régression logistique, car c'est le plus rapide à entraîner. Mais, dans le notebook, vous pouvez choisir d'utiliser l'un des autres types de modèles si vous préférez.

Entraîner le modèle

Entraînez le modèle de classification à l'aide de BigQuery ML. Le modèle entraîné génère un score de propension qui indique la probabilité de perdre un utilisateur. Une probabilité de 100 % de perte d'utilisateurs est indiquée par churned = 1, et une probabilité de retour de 100 % est indiquée par churned = 0, dont la plupart des résultats dépassent cette limite.

Lorsque vous utilisez l'instruction CREATE MODEL, BigQuery ML divise automatiquement les données d'entraînement en un ensemble d'entraînement et un ensemble de test. Cela vous permet d'évaluer le modèle une fois l'entraînement terminé et de vérifier son exactitude.

La requête ci-dessous affiche l'instruction CREATE OR REPLACE MODEL permettant d'entraîner le modèle :

CREATE OR REPLACE MODEL bqmlga4.churn_logreg

TRANSFORM(
  EXTRACT(MONTH from user_first_engagement) as month,
  EXTRACT(DAYOFYEAR from user_first_engagement) as julianday,
  EXTRACT(DAYOFWEEK from user_first_engagement) as dayofweek,
  EXTRACT(HOUR from user_first_engagement) as hour,
  * EXCEPT(user_first_engagement, user_pseudo_id)
)

OPTIONS(
  MODEL_TYPE="LOGISTIC_REG",
  INPUT_LABEL_COLS=["churned"]
) AS

SELECT
 *
FROM
  Bqmlga4.train

Cette requête extrait les valeurs month, julianday et dayofweek à partir des colonnes datetime et timestamp, comme exemple de prétraitement de caractéristiques supplémentaires que vous pouvez effectuer avant l'entraînement. La fonction TRANSFORM() de votre requête CREATE MODEL permet au modèle de conserver les valeurs extraites. Ainsi, lorsque vous utiliserez ce modèle pour faire des prédictions par la suite, ces valeurs ne devront pas à nouveau être extraites.

Affichez le notebook pour obtenir des exemples d'entraînement des modèles XGBoost, un réseau de neurones profond, et des modèles AutoML Tables.

Évaluer le modèle

Une fois l'entraînement du modèle terminé, évaluez-le pour connaître ses performances.

Cette solution utilise l'instruction ML.EVALUATE pour générer les métriques precision, recall, accuracy et f1_score du modèle. L'entraînement de plusieurs modèles, puis la comparaison de leurs métriques d'évaluation peut vous aider à choisir le modèle qui fonctionne de manière optimale avec vos données.

Cette solution utilise également une matrice de confusion pour vérifier dans quelle mesure le modèle a bien prédit les libellés par rapport aux libellés réels. La matrice de confusion est créée à l'aide du seuil par défaut de 0,5, que vous pouvez ajuster pour optimiser le rappel, la précision ou une combinaison des deux. Vous pouvez utiliser le paramètre facultatif THRESHOLD pour modifier le seuil par défaut.

Obtenir des prédictions

Une fois le modèle entraîné et évalué, vous pouvez l'utiliser pour obtenir des prédictions.

La solution utilise l'instruction ML.PREDICT pour demander des prédictions à partir du modèle.

Pour les modèles de tendances, le résultat de prédiction correspond à la probabilité qu'un comportement se produise. Plus la probabilité prédite est proche de 1, plus il y a de chances que l'utilisateur revienne. Plus la probabilité prédite est proche de 0, moins il y a de chances que l'utilisateur revienne.

Exporter des prédictions

Une fois que vous obtenez des prédictions à partir du modèle, vous pouvez les utiliser dans le cadre de l'activation marketing. Les méthodes les plus courantes consistent à exporter les données à utiliser dans Analytics ou Firebase.

Utiliser les prédictions dans Google Analytics

Vous pouvez utiliser les données de prédiction pour les campagnes marketing dans Analytics. Vous pouvez réimporter les prédictions du modèle dans Analytics en tant qu'attribut utilisateur à l'aide de la fonctionnalité d'importation de données de Google Analytics 4. En fonction des valeurs de prédiction, vous pouvez créer et modifier des audiences, et aussi effectuer un ciblage par type d'audience. Par exemple, vous pouvez définir une audience basée sur les utilisateurs dont les probabilités de prédiction sont comprises entre 0,4 et 0,7, qui sont ceux qui peuvent ne pas revenir d'eux-mêmes, mais qui peuvent être encouragés à le faire.

Utiliser les prédictions dans Firebase

Pour les applications Firebase, vous pouvez utiliser la fonctionnalité d'importation de segments pour importer des données de prédiction. Ces données vous permettent d'adapter l'expérience utilisateur en ciblant les utilisateurs identifiés via des services Firebase, tels que Remote Config, Cloud Messaging et la Messagerie dans l'application. Cela vous permet entre autres d'envoyer des notifications aux utilisateurs, de configurer l'application pour les utilisateurs et de suivre le parcours de l'utilisateur sur différents appareils.

Évaluation continue du modèle

À mesure que les données de vos utilisateurs sont générées, vous pouvez évaluer régulièrement votre modèle à l'aide de données actualisées et l'entraîner à nouveau si vous constatez que sa qualité diminue.

Ce processus visant à garantir qu'un modèle de machine learning de production fonctionne toujours bien avec de nouvelles données s'appelle l'évaluation continue. C'est un élément essentiel de tout workflow de ML. L'évaluation continue peut vous aider à détecter un décalage dans un modèle, un phénomène qui se produit lorsque les données utilisées pour entraîner votre modèle ne reflètent plus les données que vous utilisez pour demander des prédictions.

Pour en savoir plus sur l'évaluation continue de modèles, consultez la page Évaluation continue de modèles à l'aide de BigQuery ML, de procédures stockées et de Cloud Scheduler.

Étape suivante