Symptôme de l'erreur : La console affiche l'avertissement [react-ga] gaTrackingID is required in initialize(), aucunement aucune donnée n'est collectée par Google Analytics.
Solution : Vérifiez que l'identifiant de suivi est correctement transmis lors de l'initialisation. Selon les cas de test, la bonne méthode d'initialisation est :
ReactGA.initialize('GA-MEASUREMENT-ID'); // Remplacez par votre identifiant
Configuration avancée : Pour une configuration multi-trackeurs, transmettez un tableau de configuration :
ReactGA.initialize([
{ trackingId: 'GA-MEASUREMENT-ID-1', gaOptions: { name: 'principal' } },
{ trackingId: 'GA-MEASUREMENT-ID-2', gaOptions: { name: 'secondaire' } }
]);
Données non envoyées : technique d'activation du mode débogage
Symptôme de l'erreur : Aucune donnée n'est envoyée après appel des API de suivi, sans aucun message d'erreur.
Solution : Activez le mode débogage pour consulter les journaux détaillés. Ajoutez le paramètre debug: true lors de l'initialisation :
ReactGA.initialize('GA-MEASUREMENT-ID', { debug: true });
Une fois activé, la console affichera des informations de débogage comme [react-ga] called ga('arguments');, facilitant le suivi du processus d'envoi des données.
Anomalies de statistiques de pages : solution de suivi des changements de route
Scénario courant : Les statistiques de consultation de page ne sont pas correctement enregistrées lors des changements de route dans les applications monopage.
Solution : Utilisez un composant d'ordre supérieur pour encapsuler la logique de suivi des routes :
const tracerRoute = (ComponantEnveloppe, options = {}) => {
const suivrePage = (chemin) => {
ReactGA.set({ page: chemin });
ReactGA.pageview(chemin);
};
// Implémentation du composant...
};
Utilisez ce composant dans la définition des routes : <Route path="/contact" component={tracerRoute(PageContact)} />
Suivi d'événements non déclenché : validation du format des paramètres
Symptôme de l'erreur : Aucune donnée d'événement n'est enregistrée après appel de ReactGA.event().
Points de vérification :
- Assurez-vous que les paramètres catégorie(category) et action(action) ne sont pas vides
- Vérifiez que le format des paramètres respecte les exigences
// Format correct
ReactGA.event({
category: 'Utilisateur',
action: 'BoutonClique',
label: 'Soumission'
});
Échec de configuration multi-trackeurs : gestion des conflits de'space de noms
Symptôme de l'erreur : Après configuration de plusieurs trackeurs, les données ne sont envoyées qu'au trackeur par défaut.
Solution : Attribuez un nom unique à chaque trackeur et spécifiez-le explicitement lors des appels API :
// Initialisation multi-trackeurs
ReactGA.initialize([
{ trackingId: 'GA-MEASUREMENT-ID-1', gaOptions: { name: 'principal' } },
{ trackingId: 'GA-MEASUREMENT-ID-2', gaOptions: { name: 'secondaire' } }
]);
// Envoi au trackeur spécifié
ReactGA.ga('secondaire.send', 'pageview', '/page-speciale');
Anomalie de suivi userId : problème de timing d'authentification
Symptôme de l'erreur : L'identifiant utilisateur n'est pas correctement associé aux données d'analyse après connexion.
Meilleure pratique : Définissez l'userId une fois l'authentification utilisateur terminée :
// Après connexion réussie de l'utilisateur
ReactGA.set({ userId: utilisateur.identifiant });
// Les événements suivants associeront automatiquement cet userId
Pollution des données en environnement de développement : stratégie d'isolement
Scénario du problème : Les données de test de l'environnement de développement polluent les résultats d'analyse de production.
Solution : Configurez dynamiquement l'identifiant de suivi et le mode débogage selon l'environnement :
const estProduction = process.env.NODE_ENV === 'production';
ReactGA.initialize(estProduction ? 'GA-PROD-ID' : 'GA-DEV-ID', {
debug: !estProduction,
testMode: !estProduction // Ne pas envoyer de vraies données en mode test
});
Échec de suivi des liens sortants : règles d'utilisation des composants
Symptôme de l'erreur : Le suivi d'événements n'est pas déclenché lors du clic sur des liens externes.
Solution : Utilisez le composant intégré OutboundLink :
import { OutboundLink } from 'react-ga';
<OutboundLink
href="https://exemple.com"
eventLabel="RessourceExterne"
>
Accéder à la ressource externe
</OutboundLink>
Retard d'envoi des données : optimisation de la configuration de traitement par lots
Symptôme du problème : Un grand nombre d'événements sur une courte période provoque des retards ou pertes d'envoi de données.
Configuration d'optimisation : Ajustez les paramètres de traitement par lots pour réduire le nombre de requêtes :
ReactGA.initialize('GA-MEASUREMENT-ID', {
gaOptions: {
siteSpeedSampleRate: 100,
batchLimit: 25 // Envoyer lorsque 25 événements sont accumulés
}
});
Erreurs de types TypeScript : importation des définitions de types
Symptôme de l'erreur : Dans les projets TypeScript, apparaissent des erreurs comme Property 'ga' does not exist on type 'typeof ReactGA'.
Solution : Assurez-vous d'importer les définitions de types correctes :
import * as ReactGA from 'react-ga';
import { ReactGACore } from 'react-ga/types';
// Exemple d'assertion de type
const ga = ReactGA.ga as ReactGACore['ga'];
Checklist de dépannage React-GA
- Vérifiez les paramètres d'initialisation, assurez-vous que l'identifiant de suivi est correct
- Activez le mode débogage pour consulter les journaux d'envoi de données
- Vérifiez que les appels événement/pageview surviennent après l'initialisation
- Confirmez que testMode est désactivé en environnement de production
- Utilisez le composant OutboundLink pour suivre les liens externes