Poursuite de la discussion sur Intégration de Google Tag Manager avec Google Analytics :
Envoi d’événements personnalisés vers Google Tag Manager et Analytics
Ce guide explique comment configurer votre site Discourse pour envoyer des événements personnalisés vers Google Tag Manager (GTM) et Google Analytics, vous permettant de suivre des interactions utilisateur spécifiques.
Niveau d’utilisateur requis : Administrateur
Prérequis
Avant d’implémenter des événements personnalisés, assurez-vous d’avoir :
- Configuré Google Tag Manager sur votre site Discourse en suivant le guide Configurer Google Tag Manager pour Analytics
- Ajouté votre ID de conteneur GTM au paramètre
gtm container idde votre site - Mis à jour le paramètre
content security policy script srcde votre site pour autoriser les scripts Google
Ajout d’événements personnalisés
Créer un composant de thème
- Naviguez vers Admin > Personnaliser > Composants
- Cliquez sur « Nouveau » et sélectionnez « Créer un nouveau composant »
- Donnez un nom à votre composant
- Sélectionnez l’onglet JS et ajoutez votre code. Par exemple, le code ci-dessous intercepte les déclencheurs
appEventet pousse les événements suivants vers ladataLayer:
post:likedpost:createdtopic:created
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
window.dataLayer = window.dataLayer || [];
// Suivre les "j'aime" sur les publications
api.onAppEvent("page:like-toggled", (post, likeAction) => {
let topic = post.topic;
if (post && topic && likeAction && likeAction.acted) {
window.dataLayer.push({
'event': 'postLiked',
'postId': post.id
});
}
});
// Suivre les nouvelles publications
api.onAppEvent("post:created", post => {
if (post) {
window.dataLayer.push({
'event': 'postCreated',
'postId': post.id
});
}
});
// Suivre les nouveaux sujets
api.onAppEvent("topic:created", (post, composerModel) => {
if (post) {
window.dataLayer.push({
'event': 'topicCreated',
'topicCategory': composerModel.get("category.name"),
'topicId': post.topic_id
});
}
});
});
- Enregistrez le composant
- Ajoutez le composant à tous les thèmes actifs sur votre site
Événements disponibles
Tous les événements de déclenchement disponibles sont listés ici : Référence des déclencheurs AppEvents
Configuration de GTM
Créer un déclencheur
- Accédez à https://tagmanager.google.com/
- Sélectionnez « Déclencheurs » dans le menu latéral
- Cliquez sur « Nouveau »
- Nommez votre déclencheur
- Sélectionnez « Événement personnalisé » comme type de déclencheur
- Entrez le nom de l’événement (par exemple,
postCreated) - Configurez le déclencheur pour qu’il se déclenche sur « Tous les événements personnalisés »
Créer une variable de couche de données (Data Layer Variable)
- Sélectionnez « Variables » dans le menu latéral de GTM
- Cliquez sur « Nouveau » dans la section Variables définies par l’utilisateur
- Nommez votre variable
- Sélectionnez « Variable de couche de données » comme Type de variable
- Entrez le nom de la variable de couche de données (par exemple,
postCreated) - Définissez la Version de la couche de données sur « Version 2 »
Créer une balise Google pour le suivi des événements
Depuis 2024, l’approche recommandée consiste à utiliser le nouveau modèle « Balise Google » au lieu de l’ancien type de balise « Google Analytics : Événement GA4 ». La Balise Google offre une meilleure intégration avec GA4 et inclut une prise en charge intégrée du Consent Mode v2.
- Sélectionnez « Balises » dans le menu latéral de GTM
- Cliquez sur « Nouvelle »
- Nommez votre balise (par exemple, « GT - Post Created »)
- Sous Configuration de la balise :
- Sélectionnez « Balise Google »
- Sélectionnez votre Configuration GA4 (ou créez-en une nouvelle s’il s’agit de votre première balise)
- Pour « Nom de l’événement », entrez un nom descriptif en suivant les conventions de nommage GA4 (par exemple,
post_created) - Sous « Paramètres de configuration », cliquez sur « Ajouter une ligne » pour inclure vos variables de couche de données :
- Paramètre de configuration : (par exemple,
postId) - Valeur : Votre variable de couche de données (par exemple,
{{postCreated}})
- Paramètre de configuration : (par exemple,
- Sous « Déclenchement » :
- Sélectionnez votre déclencheur d’événement personnalisé créé précédemment
Si vous utilisez actuellement des balises « Google Analytics : Événement GA4 », elles continueront de fonctionner, mais les nouvelles implémentations devraient utiliser le modèle « Balise Google » pour une meilleure compatibilité future et de meilleures fonctionnalités.
Exigences de nommage des événements
GA a des exigences spécifiques pour les noms d’événements :
- Utiliser le
snake_case(lettres minuscules avec des tirets bas) - Longueur maximale de 40 caractères
- Ne peut contenir que des caractères alphanumériques et des tirets bas
Test de votre balise Google
- Cliquez sur le bouton « Prévisualiser » dans GTM
- Naviguez vers votre site Discourse
- Effectuez l’action que vous souhaitez suivre (par exemple, créer une publication)
- En mode Prévisualisation de GTM :
- Vérifiez que votre événement personnalisé apparaît dans le panneau de gauche
- Vérifiez que votre balise Google s’est déclenchée correctement
- Confirmez que tous les paramètres sont transmis comme prévu
- Dans Google Analytics :
- Naviguez vers Configurer > Événements
- Votre événement personnalisé devrait apparaître dans la liste après avoir été déclenché
- Remarque : il peut s’écouler jusqu’à 24 heures avant que les nouveaux événements n’apparaissent dans les rapports GA4
Vous pouvez utiliser DebugView de GA4 pour voir les données d’événements en temps réel pendant les tests.
Dépannage
Si vous ne voyez pas d’événements dans GTM :
- Vérifiez que votre ID de conteneur GTM est correctement défini dans Discourse
- Assurez-vous que votre composant de thème est ajouté à tous les thèmes actifs
- Ajoutez des instructions
console.logpour vérifier que les événements se déclenchent :
api.onAppEvent("post:created", post => {
console.log("post:created event triggered");
if (post) {
window.dataLayer.push({
'event': 'postCreated',
'postId': post.id
});
}
});
- Utilisez l’extension Chrome Simple Data Layer Viewer pour surveiller la couche de données
- Si vous voyez des erreurs de politique de sécurité du contenu (CSP), veuillez vous référer aux prérequis mentionnés ci-dessus, et consultez Mitigate XSS Attacks with Content Security Policy pour des étapes supplémentaires.
Si vous avez le paramètre de site
ga universal tracking codeconfiguré, videz-le car GTM gérera le script de suivi.