Rétention d'un jeu : mesurer le J1, le J7 et le J30
Par Mike Dalton ·
La rétention d'un jeu est la part des nouveaux joueurs qui jouent de nouveau un nombre donné de jours après leur premier jour. Les trois mesures standard sont la rétention D1, D7 et D30 (aussi appelées J1, J7 et J30) : la part des nouveaux joueurs qui jouent de nouveau 1, 7 et 30 jours après leur premier jour. Ce guide explique comment ces chiffres sont calculés, les détails qui les changent, une requête SQL qui les calcule et ce qui constitue un bon résultat.
Que sont la rétention D1, D7 et D30 ?
La rétention se mesure par cohorte. Une cohorte est le groupe de joueurs dont le premier jour de jeu était le même jour, et ce premier jour est le jour 0.
- La rétention D1 est la part d'une cohorte qui a joué le jour 1, le lendemain de son premier jour.
- La rétention D7 est la part qui a joué le jour 7.
- La rétention D30 est la part qui a joué le jour 30.
Par exemple, si 200 joueurs jouent pour la première fois un lundi et que 80 d'entre eux jouent de nouveau le mardi, la rétention D1 de la cohorte du lundi est de 80 / 200 = 40 %. Si 24 de ces mêmes 200 joueurs jouent le lundi suivant, la rétention D7 est de 12 %.
Rétention classique et rétention glissante
Il existe deux définitions courantes, et elles donnent des chiffres différents pour les mêmes joueurs :
- La rétention classique (aussi appelée rétention à N jours ou stricte) ne compte un joueur que s'il a joué exactement le jour N. Un joueur qui ne joue pas le jour 7 mais joue le jour 8 ne compte pas pour D7.
- La rétention glissante (en anglais, rolling ou unbounded) compte un joueur s'il a joué le jour N ou n'importe quel jour suivant. Elle est toujours au moins aussi élevée que la rétention classique, et elle peut augmenter avec le temps.
Les outils n'utilisent pas tous la même. GameAnalytics et Unity Analytics indiquent la rétention classique. Le réglage par défaut de Mixpanel est « On or After », c'est-à-dire la rétention glissante, et Amplitude propose les deux. Avant de comparer vos chiffres à un benchmark ou à un autre outil, vérifiez quelle définition chacun utilise. Game Stats AI indique la rétention classique.
Les détails qui changent le chiffre
Deux équipes peuvent calculer la rétention D1 à partir des mêmes données et obtenir des résultats différents. Voici les raisons habituelles :
- Ce qui compte comme actif. N'importe quelle session, un match terminé ou n'importe quel événement. Une définition plus stricte donne une rétention plus basse.
- Les limites de chaque jour. Des jours calendaires en UTC, des jours calendaires dans un fuseau horaire local, ou des fenêtres de 24 heures qui commencent à la première session du joueur. GameAnalytics et Unity utilisent des jours calendaires en UTC ; Amplitude et Mixpanel utilisent des fenêtres de 24 heures par défaut. Un joueur qui joue pour la première fois à 23 h 00 et rejoue à 9 h 00 le lendemain matin est revenu le jour 1 en jours calendaires, mais le jour 0 en fenêtres de 24 heures.
- Les jours pas encore terminés. La rétention D7 d'une cohorte n'est pas connue avant la fin de son jour 7. Affichez-la vide, et non à 0 %, sinon les cohortes récentes font baisser la moyenne.
- Heure de jeu ou heure d'import. Utilisez l'heure à laquelle le joueur a réellement joué, pas l'heure à laquelle votre serveur a reçu les données. Sinon, les données envoyées en retard ou importées après coup tombent sur le mauvais jour.
- Les petites cohortes. Dans une cohorte de 10 joueurs, un seul joueur fait varier la rétention D1 de 10 points. Faites la moyenne des cohortes en la pondérant par leur taille, ce qui revient à additionner les joueurs revenus et les nouveaux joueurs de toutes les cohortes avant de diviser. La section sur la taille d'échantillon du guide sur l'équilibrage montre de combien un pourcentage peut varier par hasard pour une taille d'échantillon donnée.
Calculer la rétention en SQL
Si vos sessions sont déjà dans une base de données, cette requête PostgreSQL calcule la rétention classique D1, D7 et D30 de chaque cohorte. Elle attend une table sessions avec une colonne player_id et une colonne started_at de type timestamptz :
WITH active_days AS (
SELECT DISTINCT player_id, (started_at AT TIME ZONE 'UTC')::date AS active_on
FROM sessions
),
first_days AS (
SELECT player_id, MIN(active_on) AS first_day
FROM active_days
GROUP BY player_id
),
today AS (
SELECT (now() AT TIME ZONE 'UTC')::date AS day
)
SELECT
first_day,
COUNT(*) FILTER (WHERE active_on = first_day) AS new_players,
CASE WHEN first_day + 1 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 1) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d1_percent,
CASE WHEN first_day + 7 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 7) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d7_percent,
CASE WHEN first_day + 30 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 30) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d30_percent
FROM first_days
JOIN active_days USING (player_id)
CROSS JOIN today
GROUP BY first_day, today.day
ORDER BY first_day DESC;
La requête réduit les sessions à une ligne par joueur et par jour, trouve le premier jour de chaque joueur et compte combien de joueurs de chaque cohorte ont été actifs les jours 1, 7 et 30. Une valeur de rétention reste à NULL tant que ce jour n'est pas terminé. Les jours sont des jours calendaires en UTC ; pour utiliser un fuseau horaire local, remplacez les deux valeurs 'UTC' par le nom d'un fuseau, par exemple 'Europe/Paris'.
Qu'est-ce qu'une bonne rétention D1, D7 et D30 ?
Le plus grand benchmark public est le GameAnalytics 2026 Mobile and PC Gaming Benchmarks, qui couvre plus de 16 000 jeux mobiles et 3 582 jeux PC en 2025. GameAnalytics utilise la rétention classique.
| Jeux mobiles | D1 | D7 | D30 |
|---|---|---|---|
| Médiane | environ 22 % | un peu moins de 4 % | 0,7 % à 0,8 % |
| 25 % supérieurs | un peu plus de 30 % | 6 % à 7 % | 1,6 % à 1,8 % |
| 10 % supérieurs | environ 40 % | 11 % à 12 % | non publié |
| Jeux PC | D1 | D7 | D30 |
|---|---|---|---|
| Médiane | environ 7 % | 1,1 % à 1,3 % | 0,2 % à 0,25 % |
| 25 % supérieurs | 12 % à 13 % | 2,7 % à 3,2 % | 0,7 % à 0,9 % |
| 10 % supérieurs | 21 % à 23 % | 5,8 % à 6,9 % | environ 2 % |
Vous verrez aussi la règle 40/20/10 : 40 % en D1, 20 % en D7 et 10 % en D30. GameAnalytics la décrit comme une référence utile mais pas universelle. Comparée aux tableaux ci-dessus, c'est un objectif pour les jeux mobiles performants, pas une moyenne.
Les benchmarks mélangent de nombreux genres : utilisez-les pour vérifier que vos chiffres sont dans une plage raisonnable. La comparaison la plus utile est celle de votre jeu avec lui-même : chaque nouvelle cohorte par rapport aux précédentes, et chaque version par rapport à la précédente.
Mesurer la rétention dans Game Stats AI
Pour montrer à quoi cela ressemble, nous avons créé un jeu compétitif d'exemple. Pendant huit semaines, entre 10 et 16 nouveaux joueurs sont arrivés chaque jour, et chaque match a été envoyé à l'endpoint des matchs. Les joueurs ont été générés pour suivre une courbe de rétention typique : les chiffres montrent comment lire le rapport, ce n'est pas un benchmark.
Vous n'avez pas besoin d'un événement de rétention distinct. Un rapport de rétention compte un joueur comme actif chaque jour où il joue un match, envoie un événement, débloque un succès ou enregistre un événement de progression, en utilisant l'heure présente dans vos données. Pour en créer un, allez dans Rapports, cliquez sur Nouveau rapport et choisissez Rapport de rétention.
Le rapport affiche les joueurs actifs quotidiens, hebdomadaires et mensuels sur la période choisie, avec la rétention D1, D7 et D30 moyenne de toutes les cohortes, pondérée par leur taille. Il affiche aussi les moyennes des joueurs actifs quotidiens, hebdomadaires et mensuels et de la fidélité, expliquée dans Ratio DAU/MAU d'un jeu :


En dessous se trouve le tableau des cohortes, avec une ligne par premier jour, de la plus récente à la plus ancienne. Les cellules plus foncées indiquent une rétention plus élevée, et une cellule reste vide jusqu'à la fin de son jour, si bien que les cohortes les plus récentes n'affichent que le D1 :


Les jours sont des jours calendaires en UTC, et le rapport couvre les cohortes des 90 derniers jours, sauf si vous choisissez une autre période. Les mêmes chiffres sont disponibles via l'endpoint du rapport de rétention, et vous pouvez interroger Claude à leur sujet via MCP, par exemple « Quelle était notre rétention D7 pour les joueurs qui ont commencé la semaine dernière ? »
Trouver où les nouveaux joueurs s'arrêtent
Une rétention D1 faible indique en général un problème dans la première session : le tutoriel, les premiers niveaux ou le premier match. Pour trouver l'étape exacte où les nouveaux joueurs s'arrêtent, mesurez les taux de réussite de vos premiers niveaux, comme expliqué dans comment trouver les niveaux où les joueurs bloquent.
Questions fréquentes
Qu'est-ce que la rétention D1 ?
La rétention D1 est la part des nouveaux joueurs qui jouent de nouveau le lendemain de leur premier jour. Si 100 joueurs commencent un lundi et que 35 jouent le mardi, la rétention D1 est de 35 %.
Le jour 0 compte-t-il comme le jour 1 ?
Non. Le jour 0 est le premier jour du joueur, où tous les joueurs de la cohorte sont actifs par définition. Le jour 1 est le jour suivant.
Quelle est la différence entre rétention et attrition ?
La rétention mesure la part des joueurs qui reviennent. L'attrition (churn) mesure la part de ceux qui arrêtent de jouer. Avec la rétention classique, 100 % moins la rétention D30 n'est pas égal à l'attrition, car un joueur qui n'a pas joué le jour 30 peut encore jouer le jour 31.
Qu'est-ce qu'une bonne rétention D1 pour un jeu mobile ?
Dans les benchmarks de GameAnalytics pour 2025, le jeu mobile médian avait environ 22 % de rétention D1, les 25 % supérieurs un peu plus de 30 % et les 10 % supérieurs environ 40 %.