Votre app est en ligne, vos campagnes tournent, les utilisateurs installent, cliquent, achètent… mais vos dashboards d’analytics, eux, restent désespérément vides ? Ou pire : ils affichent des données incohérentes, impossibles à interpréter ? Bienvenue dans le monde souvent chaotique du tracking mobile mal configuré.
En 2025, le tracking mobile est plus critique que jamais. Il est au cœur de toutes les décisions produit, marketing et business. Pourtant, il reste l’un des aspects les plus négligés et les plus sous-estimés du développement mobile. Non pas parce qu’il est inutile — bien au contraire — mais parce qu’il est techniquement sensible, soumis à des évolutions constantes (RGPD, iOS updates, SDKs en version bêta…) et dépend de la coordination entre plusieurs équipes (dev, produit, marketing, légal…).
Un seul oubli, un mauvais déclenchement ou une propriété mal renseignée peuvent fausser l’intégralité de votre analyse. Et quand vous basez vos décisions sur des données biaisées, ce sont vos funnels, vos tests, vos campagnes et parfois même la roadmap de votre app qui prennent un virage erroné.
Dans cet article, on va détailler les 5 erreurs les plus fréquentes en tracking mobile, celles que je rencontre le plus souvent en audit ou en mission, et surtout : comment les corriger rapidement et durablement. Ce guide s’adresse aussi bien aux développeurs qu’aux product owners, growth marketers ou fondateurs de start-ups.
Que vous utilisiez Firebase, Mixpanel, Amplitude, Adjust ou AppsFlyer, ces erreurs vous concernent. Prêt à remettre votre tracking sur les rails ? C’est parti 👇
C’est sans doute l’erreur la plus fréquente et la plus insidieuse en tracking mobile : un événement qui semble bien configuré dans le code… mais qui est en réalité déclenché au mauvais moment. Ce problème peut entraîner des données incohérentes, des funnels cassés, des taux de conversion faussés — et une perte de confiance dans les chiffres affichés.
Imaginons que vous trackiez un événement sign_up_completed
juste après que l’utilisateur ait cliqué sur le bouton “S’inscrire”. Si l’événement est déclenché immédiatement, avant d’avoir obtenu une confirmation serveur que le compte a bien été créé, vous risquez de compter des inscriptions qui n’existent pas.
➡️ Résultat : votre taux de conversion “inscription” explose… alors que de nombreux utilisateurs reçoivent une erreur réseau ou un message “email déjà utilisé”.
À l’inverse, certains événements sont déclenchés après un délai ou une navigation. Par exemple, purchase_successful
est loggué seulement quand l’utilisateur arrive sur une page de remerciement. Sauf que certains utilisateurs ferment l’app avant cette page. Résultat : vous ne captez pas une partie des achats, vos revenus sont sous-estimés, vos campagnes semblent moins rentables qu’elles ne le sont réellement.
Le moment idéal pour logguer un événement, c’est juste après confirmation que l’action a bien été effectuée, et avant que l’utilisateur ne puisse quitter le flux.
Pour un achat, logguez purchase_successful
dans le callback de réponse de l’API de paiement, pas au clic sur “Payer”.
Pour une inscription, attendez la confirmation que le compte est bien enregistré côté serveur, pas simplement le remplissage du formulaire.
Pour un écran vu (screen_view
), attendez que l’écran soit bien monté (componentDidMount
, useEffect
, etc.), pas juste après un clic ou une intention de navigation.
Vérifiez les taux de conversion entre vos étapes : un chiffre trop haut ou trop bas est souvent le signe d’un mauvais moment de déclenchement.
Testez le flux vous-même en conditions réelles, en simulant des erreurs réseau ou des déconnexions.
Utilisez un outil comme Firebase DebugView ou Mixpanel Live View pour visualiser le timing exact des événements.
Comparez le moment UX réel (ex : apparition d’un message de confirmation) avec celui du tracking.
En bref, un événement mal positionné peut fausser toute votre compréhension utilisateur. Le corriger, c’est retrouver des chiffres fiables, des taux de conversion cohérents, et une base solide pour toutes vos analyses et optimisations.
Un tracking bien intégré techniquement, mais mal nommé, est quasiment inutilisable côté produit, marketing ou data. Le nommage des événements est souvent considéré comme un “détail” lors de l’implémentation… jusqu’au jour où vous ouvrez votre dashboard et tombez sur une liste indigeste et illisible d’événements, où chaque nom semble avoir été généré au hasard.
Événements dupliqués : par exemple SignUp
, sign_up
, Sign_Up_Complete
, signup-completed
qui trackent tous la même action. Résultat : vos métriques sont dispersées, impossibles à consolider.
Noms trop techniques ou internes : ex : BTN_A1_CLICK
, ModalRef123
, PageV3_EventX
. Ces noms sont peut-être clairs pour le développeur… mais incompréhensibles pour un marketer ou un PM.
Noms en français, avec majuscules ou accents : ex : AjoutPanier
, Ajout_au_panier
, Ajouter un article au panier
. Les accents et espaces compliquent le filtrage, la segmentation, les dashboards, voire provoquent des erreurs dans certaines interfaces.
Événements sans logique de hiérarchie : quand chaque nom suit son propre style, impossible de regrouper ou filtrer efficacement (ex : addProduct
, screen_home
, ctaClick
, confirmPaymentSuccessPage_1
).
Pour que vos événements soient lisibles, filtrables, et durables, vous devez mettre en place une convention de nommage simple, cohérente et partagée entre toutes les parties prenantes.
Format : snake_case
(ex : product_added_to_cart
)
Toujours en anglais (même si l’app est en français)
Verbe d’action au passé (ex : sign_up_completed
)
Pas de majuscules, d’espaces, d’accents ou de caractères spéciaux
Tous les événements documentés dans un plan de taggage
Un bon tracking plan (ou plan de taggage) contient :
Le nom exact de chaque événement
Une description claire
Les paramètres associés (ex : produit_id, prix, catégorie…)
Le moment précis du déclenchement
L’objectif métier (ex : suivi conversion, UX, campagne, etc.)
🛠 Tu peux le faire sur :
Google Sheets / Excel
Notion
Airtable
Ou un outil pro comme June.so ou TrackingPlan
Ce document doit être versionné et partagé entre devs, produit, marketing, data.
Ouvre ton dashboard Firebase, Mixpanel ou GA4 et regarde la liste brute des événements.
Si tu as du mal à comprendre à quoi correspondent certains noms, c’est déjà un mauvais signe.
Essaie de créer un funnel : si tu passes 10 minutes à deviner quel événement correspond à quelle action, ton nommage est à revoir.
Tu ne devrais jamais avoir besoin d’un développeur pour interpréter un événement dans un dashboard.
L’identification des utilisateurs est au cœur de la précision des données d’une app mobile. Quand un utilisateur n'est pas correctement ou uniformément identifié, plusieurs problèmes surgissent, comme la duplication des données, la perte de cohérence entre les sessions ou des erreurs dans les cohortes et les segments. En effet, pour analyser des parcours utilisateurs cohérents, il faut une identification unique.
Multiple identifiants : un utilisateur peut être enregistré sous plusieurs identifiants, comme un device_id
, un user_id
, ou même un email
. Par exemple, un utilisateur connecté avec son compte Google peut être tracé sous son device_id
avant de se connecter et sous un user_id
après. Cela crée une confusion dans les données.
Données fragmentées : lorsqu'un utilisateur se connecte depuis plusieurs appareils ou change de téléphone, il peut être comptabilisé comme un nouvel utilisateur à chaque fois. Les analyses de rétention, par exemple, seront alors faussées.
Problème d’identification en temps réel : parfois, l’identification de l’utilisateur peut être perdue ou mal propagée pendant la session, ce qui donne des sessions incomplètes ou dupliquées. Par exemple, une session commencée sur un téléphone puis poursuivie sur un autre appareil sera mal liée à un même utilisateur si l’identifiant n’est pas correctement transmis.
Une bonne gestion de l'identification doit reposer sur un identifiant unique et persistant, que ce soit le user_id
ou un identifiant dérivé tel qu'un hash d'email. Cet identifiant doit être préservé au fil des sessions, partagé entre les appareils, et stocké avec soin dans vos outils d’analytics.
Utiliser un user_id
unique : ce sera votre identifiant de base. Idéalement, cet user_id
doit être unique par utilisateur (pas par session, mais pour toute la durée de vie de l'utilisateur).
Associer cet user_id
à un device_id
ou session_id
pour suivre les interactions avec précision, même en cas de changement d'appareil.
Garder une cohérence entre les outils : si vous utilisez Firebase pour l’identification et GA4 pour l’analyse, assurez-vous que l’identifiant utilisateur est bien transmis d’un outil à l’autre.
Ne pas hésiter à envoyer un user_id
personnalisé depuis le serveur si l’utilisateur se connecte, ou utiliser un identifiant de type uuid
si vous n’avez pas d'authentification.
Mettre en place un mécanisme de synchronisation entre les identifiants lorsque l'utilisateur change d'appareil.
Vérifiez la cohérence des sessions dans vos outils d’analytics. Si vous constatez plusieurs sessions pour un même utilisateur qui change d’appareil, c’est que l’identifiant utilisateur n’est pas correctement relié entre les appareils.
Analysez la rétention et la conversion : un taux de rétention anormalement bas ou une incohérence dans les segments d’utilisateurs sont des indices que l’identification est défaillante.
Utilisez les outils de débogage (par exemple, Firebase DebugView ou Mixpanel Live View) pour suivre les événements en temps réel et voir si un utilisateur change d’identifiant en cours de route.
Depuis l'entrée en vigueur du RGPD en Europe et la montée en puissance des préoccupations autour de la vie privée (cf. App Tracking Transparency d’iOS, Privacy Sandbox Android), une erreur très fréquente est de déclencher du tracking avant que l’utilisateur n’ait donné son consentement. C’est non seulement illégal, mais cela peut biaisser vos données (par des refus de cookies non pris en compte) et vous exposer à des sanctions.
Tracking déclenché dès le lancement de l’app, sans avoir affiché de bannière de consentement ou obtenu l’accord explicite. Cela viole directement le RGPD et peut entraîner des signalements ou audits.
Consentement ignoré : l’utilisateur a cliqué sur “Refuser”, mais les SDK Firebase, Mixpanel ou Adjust continuent d’envoyer des données.
Absence de preuve ou de journalisation : vous ne pouvez pas démontrer que l’utilisateur a bien consenti (ou refusé), ce qui est requis par la CNIL.
Implémentation hétérogène : certaines plateformes sont bloquées en cas de refus, d’autres non. Résultat : des données partielles, des taux d’opt-in biaisés, des conversions non traçables.
Pour être conforme, vous devez :
Afficher une bannière de consentement dès le premier lancement de l’app
Ne déclencher aucun SDK (ni Firebase, ni Adjust, ni autre) tant que l’utilisateur n’a pas cliqué sur “Accepter”
Documenter le choix de l’utilisateur (stocké localement ou côté serveur)
Permettre à l’utilisateur de modifier ou retirer son consentement à tout moment
Segmenter vos déclenchements en fonction des choix (ex. : ad_storage
, analytics_storage
, etc.)
OneTrust SDK mobile : très complet, compatible iOS et Android, personnalisation poussée.
Didomi SDK : simple à intégrer, bon support multilingue.
Self-hosted CMP : si vous préférez une solution sur-mesure, avec des contrôles plus fins.
💡 Tu peux aussi déclarer un consent_mode
dans Firebase ou GTM, pour indiquer si le tracking est autorisé ou non.
Vérifiez dans les outils analytics si des événements sont reçus avant tout clic sur le bandeau de consentement.
Faites le test en navigation privée : installez l’app, refusez le consentement, et ouvrez un proxy comme Charles Proxy ou Proxyman. Si des requêtes partent quand même vers Google, Meta ou autres, vous n’êtes pas conforme.
Consultez les rapports “debug” dans Firebase ou GA4 : certains affichent l’état du consentement.
Sur iOS, l’ATT (App Tracking Transparency) impose d’obtenir une autorisation explicite pour accéder à l’IDFA. ➤ Si vous utilisez Adjust ou AppsFlyer, vous devez afficher le prompt AppTrackingTransparency.requestPermission()
avant tout tracking publicitaire.
Sur Android, la Privacy Sandbox va imposer des limitations similaires à partir de 2025. Il est donc temps d’anticiper.
Dans le monde du tracking mobile, plus n’est pas toujours mieux. Beaucoup de développeurs ou de marketers pensent qu’il faut absolument “tout tracker”, “au cas où”. D’autres, au contraire, se contentent de quelques événements vagues et passent à autre chose. Dans les deux cas, vous vous retrouvez avec des données inexploitables, soit par surcharge, soit par manque de profondeur.
Performance dégradée : chaque événement envoyé déclenche un appel réseau. Une app qui envoie 10 événements par écran devient lente, gourmande en batterie et en data.
Données bruitées : vos dashboards sont pollués par des centaines d’événements secondaires (button_clicked
, modal_opened
, scroll_25
, etc.) qui noient les insights vraiment utiles.
Stockage explosif : certains outils comme Mixpanel ou Amplitude ont des limites mensuelles d’événements gratuits (ex. 10M/mois). Un tracking trop bavard peut vous coûter cher… pour rien.
Difficulté d’analyse : quand vous avez 200 événements différents, il devient difficile de créer des funnels cohérents, de filtrer, ou même d’expliquer les résultats à un stakeholder non technique.
KPIs absents : impossible de calculer un taux de conversion si vous ne suivez ni le point d’entrée ni le point de sortie du parcours.
Aucune visibilité sur les erreurs ou blocages : si vous ne suivez que les actions réussies (signup_completed
, purchase_successful
), vous ignorez complètement les abandons, les échecs, les erreurs API.
Pas de segmentation possible : si vous n’ajoutez pas de paramètres à vos événements (device_type
, version_app
, ab_test_variant
), vous ne pouvez pas savoir d’où vient un problème ou une amélioration.
Un bon tracking repose sur une règle d’or : suivre les événements qui permettent de répondre à une question métier concrète.
❌ “Je veux tout savoir sur chaque clic.”
✅ “Je veux connaître le taux d’inscription par canal d’acquisition.”
➡️ Événements nécessaires : app_opened
, sign_up_started
, sign_up_completed
, avec utm_source
en paramètre.
Lister vos KPIs : activation, rétention, conversion, revenus, churn…
Associer chaque KPI à un ou plusieurs événements clés
Ne tracker que ce qui est utile pour prendre une décision
Documenter chaque événement : nom, déclencheur, paramètres, usage
💡 C’est aussi là que tu peux proposer une prestation : créer ou corriger un plan de tracking minimaliste mais puissant, basé sur les vrais besoins du produit.
Faites un audit de vos dashboards : combien d’événements sont réellement utilisés ?
Demandez à chaque équipe : “Quels événements sont critiques pour vos décisions ?” — s’ils n’en trouvent pas, il y a un souci.
Vérifiez vos volumes d’événements mensuels : s’ils explosent sans que vos dashboards s’améliorent, vous avez un tracking trop bavard.
En bref : trop d’événements = surcharge inutile. Trop peu = aveuglement stratégique.
Un bon tracking, c’est ciblé, stratégique et actionnable.
Vous avez un doute sur la qualité de votre tracking actuel ? Avant même de passer par un expert ou de tout réécrire, prenez 10 minutes pour passer cette checklist d’auto-audit. C’est une méthode simple, rapide, mais redoutablement efficace pour identifier les gros points de blocage dans votre implémentation.
Si vous ne savez pas combien d’événements vous trackez ou à quoi ils correspondent exactement, c’est que vous n’avez pas de plan de taggage structuré.
Des noms comme
AjoutPanier
,productAdded
,btnCtaClicked
cohabitent dans votre dashboard ? Il est temps de standardiser.
Un
purchase_completed
sans le montant ou le canal d’acquisition est bien moins utile qu’il pourrait l’être.
Vérifiez vos callbacks, vos écrans de confirmation, et assurez-vous de ne rien envoyer “par défaut”.
Vous ne devriez jamais déployer un nouveau tracking sans avoir suivi l’envoi d’événements en temps réel sur un appareil test.
Si le tracking démarre dès l’ouverture de l’app, sans opt-in, vous êtes potentiellement hors-la-loi (et vos données sont biaisées).
user_id
, device_id
) ?Si vous avez des trous dans les funnels ou une rétention bizarre, il se peut que vos utilisateurs soient mal identifiés ou fragmentés.
Si 70 % de vos événements ne sont utilisés dans aucun rapport, c’est du bruit. Supprimez ou regroupez-les.
Vous envoyez des données vers Mixpanel mais n’avez pas de dashboard automatisé ? Vos données sont probablement sous-exploitées.
Un bon tracking ne sert pas à “voir”, mais à agir : itérer, corriger, prioriser. Si vous regardez les chiffres sans jamais prendre de décision avec, c’est que quelque chose cloche.
0 à 4 "non" : votre tracking mérite un audit complet d’urgence
5 à 7 "non" : des ajustements ciblés sont nécessaires
8 à 10 "oui" : bravo, votre tracking est propre et exploitable !
💡 Astuce : propose un Google Sheet interactif ou un mini outil d’auto-évaluation pour faire cette checklist de façon ludique (et capter des leads).