PrestaShop Google Tag Manager

Documentation PrestaShop Google Tag Manager
Documentation complète pour le module PrestaShop d'intégration avancée avec Google Tag Manager (cc_ps_googletrack) avec prise en charge d'Enhanced Ecommerce, Enhanced Conversions et configuration complète des événements.

Table des matières
  1. Introduction
  2. Installation et exigences du système
  3. Activation du module
  4. Configuration de base du GTM
  5. Configuration des événements
  6. Couche de données étendue
  7. Conversions améliorées (données utilisateur)
  8. Mode débogage
  9. Connexion aux événements
  10. Votre propre code de suivi
  11. Système de traduction
  12. Événements – détails
  13. Calendrier des événements
  14. Test Tag Assistant
  15. Résolution de problèmes
  16. FAQ

1. Introduction
CC Google Tag Manager est un module PrestaShop avancé qui assure une intégration complète avec Google Tag Manager. Le module suit automatiquement tous les événements clés Enhanced Ecommerce conformément aux dernières normes.

Fonctions clés du module :
  • Intégration complète avec Google Tag Manager (GTM)
  • Suivi automatique de 18 événements différents
  • Enhanced Ecommerce conforme aux normes Google
  • Conversions améliorées avec données utilisateur hachées
  • Couche de données étendue (dataLayer) avec informations supplémentaires
  • Configuration de l'activation/désactivation des différents événements
  • Mode débogage avec connexion à la console du navigateur
  • Enregistrement des événements dans la base de données avec consultation
  • Votre propre code JavaScript exécuté sur toutes les pages
  • Système complet de traduction (polonais, anglais, possibilité d'ajouter d'autres langues)
  • Compatibilité avec PrestaShop 1.7.x, 8.x et 9.x
  • Prise en charge du mode consentement Google 2.0

2. l'installation et les exigences du système
Exigences du système
  • PrestaShop 1.7.0.0 ou plus récent (testé jusqu'à la version 9.0)
  • PHP 7.4 ou supérieur
  • Accès au panneau d'administration PrestaShop
  • Compte Google Tag Manager (gratuit)
  • En option : Google Analytics 4 (gratuit)
Processus d'installation
  1. Télécharger le fichier ZIP du module depuis le site officiel cocos.codes
  2. Se connecter au panneau d'administration de PrestaShop
  3. Aller à : Modules → Gestionnaire de modules
  4. Cliquez sur „ Télécharger le module ” dans le coin supérieur droit.
  5. Sélectionnez le fichier ZIP téléchargé et cliquez sur „ Télécharger ce module ”.”
  6. Une fois l'installation terminée, cliquez sur "Configurer"
  7. Le module est prêt à être configuré.
Info
Après l'installation, le module enregistre automatiquement tous les hooks PrestaShop nécessaires et crée une table dans la base de données pour enregistrer les événements (si la fonction est activée). L'installation ne nécessite aucune étape technique supplémentaire.

3. Activation du module
Le module ne nécessite pas d'activation séparée de la licence – il fonctionne immédiatement après l'installation. Cependant, pour commencer le suivi, nous devons configurer les paramètres de base.

Premiers pas après l'installation :
  1. Accédez à Modules → Gestionnaire de modules
  2. Recherchez le module „ CC Google Tag Manager ”.”
  3. Cliquez sur „ Configurer ”.”
  4. Nous serons redirigés vers la page des paramètres du module.
Conseil
Avant de commencer la configuration, il est utile de préparer l'ID du conteneur GTM (format : GTM-XXXXXX). Vous pouvez le trouver dans le panneau Google Tag Manager après avoir créé un nouveau conteneur pour votre site web.

4. Configuration de base de GTM
La configuration de Google Tag Manager est la première étape pour lancer le suivi dans votre boutique.

Création d'un conteneur GTM :
  1. Aller à tagmanager.google.com
  2. Connectez-vous avec votre compte Google
  3. Cliquez sur „ Créer un compte ”.”
  4. Indiquez le nom du compte (par exemple, le nom de l'entreprise)
  5. Indiquez le nom du conteneur (par exemple, le nom du magasin).
  6. Sélectionnez „ Web ” comme type de conteneur.
  7. Acceptez les conditions d'utilisation
  8. Copiez l'ID du conteneur (GTM-XXXXXX)
Configuration dans le module :
  1. Dans la configuration du module, recherchez la section „ Configuration de base ”.”
  2. Cochez la case „ Activer Google Tag Manager ”.”
  3. Collez l'identifiant GTM Container ID copié (par exemple GTM-ABC1234)
  4. Cliquez sur „ Enregistrer ” en bas de la page.
Éléments de la configuration de base :
OptionDescriptionValeur
Activer GTMActive le suivi par GTMOUI / NON
Identifiant du conteneur GTMID du conteneur GTMGTM-XXXXXX
Que se passe-t-il après l'enregistrement ?
  • Le code GTM (gtag.js) est automatiquement ajouté à toutes les pages de la boutique.
  • Le script GTM est placé dans la section
  • Le fallback Noscript est ajouté immédiatement après <body>
  • DataLayer commence à collecter des données sur les événements
  • Tous les événements sont automatiquement envoyés à GTM.
Succès
Une fois correctement configuré, le code GTM sera visible dans le code source de la page. Vous pouvez le vérifier en cliquant avec le bouton droit de la souris → „ Afficher le code source de la page ” et en recherchant GTM-XXXXXX. Vous y trouverez à la fois le script principal et le dataLayer.

5. Configuration des événements
Le module prend en charge 18 événements différents. Chaque événement peut être activé ou désactivé indépendamment en fonction des besoins de l'entreprise.

Liste des événements disponibles :
ÉvénementDescriptionQuand est-il appelé ?
page_viewAffichage de la pageSur chaque page du magasin
view_itemAffichage du produitSur la page du produit
voir_la_liste_des_articlesAffichage de la liste des produitsCatégories, résultats de recherche, page d'accueil
select_itemCliquez sur le produitCliquez sur un produit dans la liste.
add_to_cartAjouter au panierAprès avoir ajouté le produit au panier
supprimer du panierSupprimer du panierAprès avoir supprimé le produit du panier
view_cartAffichage du panierSur la page du panier
begin_checkoutDébut du contratPremière étape de la réalisation de la commande
add_shipping_infoAjouter des informations sur la livraisonChoix du mode de livraison
add_payment_infoAjouter des informations sur le paiementChoix du mode de paiement
achatAchatPage de confirmation de commande
searchRechercheUtilisation du moteur de recherche du magasin
select_promotionCliquez sur la promotionCliquez sur la bannière promotionnelle
connexionConnexionConnexion client
s'inscrireInscriptionInscription d'un nouveau client
ajouter à la liste de souhaitsAjouter à la liste de souhaitsAjouter un produit à la liste de souhaits
partagerPartagerCliquez sur le bouton « Partager sur les réseaux sociaux ».
Activation/désactivation des événements :
  1. Dans la configuration du module, accédez à la section „ Configuration des événements ”.”
  2. Trouvez la liste des 18 événements
  3. Cochez les cases correspondant aux événements que vous souhaitez suivre.
  4. Décochez les cases correspondant aux événements que vous souhaitez désactiver.
  5. Utilisez les boutons „ Sélectionner tout ” ou „ Désélectionner tout ” pour une configuration rapide.
  6. Cliquez sur „ Enregistrer ”.”
Transfert de la configuration vers JavaScript :
// Konfiguracja eventów przekazywana do JS jako: window.ccpsEventConfig = { 'page_view': true, 'view_item': true, 'add_to_cart': true, 'purchase': false, // ... itd. };

// Sprawdzanie czy event jest włączony: function isEventEnabled(eventName) { if (typeof config.eventConfig[eventName] !== 'undefined') { return config.eventConfig[eventName]; } return true; // Domyślnie włączone }
Note
Les événements désactivés ne sont pas envoyés au dataLayer, ce qui permet d'économiser des ressources et d'éviter d'encombrer les données dans Google Analytics. Si un événement est désactivé, le message „ Événement désactivé : nom_de_l'événement ” s'affiche en mode débogage au lieu d'envoyer des données.

6. Couche de données étendue
La fonction Enhanced Data ajoute des informations supplémentaires à chaque événement, enrichissant ainsi les analyses dans Google Analytics.

Que contient la couche de données étendue ?
  • Données du site – type de page, URL, titre, langue, devise
  • Données utilisateur – statut du client (visiteur/invité/client), identifiant utilisateur
  • Données sur les produits – catégories complètes (jusqu'à 5 niveaux), marques, attributs
  • Données relatives aux commandes – modes de livraison, modes de paiement, bons d'achat
Configuration de la couche de données étendue :
  1. Dans la configuration du module, recherchez la section „ Options de données avancées ”.”
  2. Cochez la case „ Couche de données étendue ”.”
  3. Cochez la case „ Données du site ” pour ajouter des informations sur le site.
  4. Sauvegarder vos paramètres
Exemple de couche de données étendue :
dataLayer.push({ 'event': 'page_view', 'page_type': 'product', 'page_url': 'https://example.com/produkt', 'page_title': 'Nom du produit - Boutique', 'language': 'pl', 'currency': 'PLN', 'customer_status': 'customer', 'user_id': 123 });
Types de pages reconnues par le module :
Type de siteValeur page_typeQuand
Page d'accueilaccueilIndexController
Page produitproduitContrôleur de produit
CatégoriecatégorieCategoryController
PanierchariotCartController
Exécution de la commandecaisseContrôleur de commande
Confirmation d'achatachatContrôleur de confirmation de commande
RecherchesearchSearchController
Page de contenucontenuCmsController
AutresautreTous les autres
Catégories de produits – hiérarchie :
  • item_category – catégorie principale (avec normalisation – première lettre majuscule)
  • item_category2 – sous-catégorie niveau 2
  • item_category3 – sous-catégorie niveau 3
  • item_category4 – sous-catégorie niveau 4
  • item_category5 – sous-catégorie niveau 5
Conseil
La couche de données étendue est particulièrement utile pour créer des segments avancés dans Google Analytics. Nous pouvons, par exemple, analyser la conversion séparément pour différents types de pages, langues ou statuts de clients. L'activation de cette fonction est fortement recommandée.

7. Conversions améliorées (données utilisateur)
Enhanced Conversions est une fonctionnalité de Google Ads qui améliore la précision de la mesure des conversions en transmettant les données hachées des utilisateurs.

Que sont les conversions améliorées ?
  • Données personnelles hachées (SHA-256) des utilisateurs
  • E-mail, téléphone, prénom, nom, ville, code postal, pays
  • Transmis à Google sous forme sécurisée
  • Ils permettent de mieux attribuer les conversions aux campagnes publicitaires.
  • Nécessitent le consentement de l'utilisateur (RGPD/GDPR)
Configuration des conversions améliorées :
  1. Dans la configuration du module, recherchez la section „ Options de données avancées ”.”
  2. Cochez la case „ Données utilisateur (conversions améliorées) ”.”
  3. Assurez-vous d'avoir obtenu le consentement des utilisateurs pour le traitement des données (RGPD).
  4. Sauvegarder vos paramètres
Avertissement
Le transfert des données utilisateur nécessite le consentement RGPD ! Assurons-nous que notre boutique dispose d'une politique de confidentialité et de cookies à jour et que les utilisateurs donnent leur consentement éclairé au traitement des données. Nous recommandons l'intégration d'un module de gestion des consentements cookies tel que CC PrestaShop Cookies.
Quelles données sont hachées et transmises :
DonnéesSourceFormat
Courriel$customer->emailhash(’sha256′, strtolower(trim($email)))
TéléphonePremière adresse du clienthash(’ sha256 », chiffres uniquement)
NomPremière adresse du clienthash(’sha256′, strtolower(trim()))
NomPremière adresse du clienthash(’sha256′, strtolower(trim()))
VillePremière adresse du clienthash(’sha256′, strtolower(trim()))
Code postalPremière adresse du clienthash(’ sha256 », trim())
PaysPremière adresse du clientCode pays (sans hachage)
Exemple de données dans dataLayer :
dataLayer.push({ 'event': 'purchase', 'user_id': 123, 'customer_status': 'customer', 'user_data': { 'email_hash': 'b4c9a289323b21a01c3e807...', 'phone_hash': '8d23cf6c86e834a7aa6edd9...', 'address': { 'first_name': 'a5bfc9e07964f8dddeb95fc...', 'last_name': '5e884898da28047151d0e56...', 'city': '1c383cd30b7c298ab50293a...', 'postal_code': '4e07408562bedb8b60ce05c...', 'country': 'PL' } } });
Statuts des clients :
  • visiteur – utilisateur non connecté sans compte
  • invité – connecté en tant qu'invité (guest checkout)
  • client – utilisateur connecté avec un compte complet
Info
Toutes les données personnelles sont hachées à l'aide de l'algorithme SHA-256 avant d'être envoyées à Google, ce qui signifie que Google ne reçoit pas les données sous une forme lisible. Le hachage est unidirectionnel : il est impossible de reconstituer les données d'origine à partir du hachage. Cela répond aux exigences du RGPD en matière de minimisation des données.

8. Mode débogage
Le mode débogage permet de suivre en détail tous les événements dans la console du navigateur, ce qui est très utile lors des tests et du dépannage.

Activation du mode débogage :
  1. Dans la configuration du module, recherchez la section „ Options de données avancées ”.”
  2. Cochez la case „ Mode débogage ”.”
  3. Sauvegarder vos paramètres
  4. Ouvrir la boutique dans un nouvel onglet du navigateur
  5. Ouvrez la console de développement (F12 → onglet Console)
  6. Actualiser la page
Ce qu'affiche le mode débogage :
  • Initialisation du module : [CC Google Track] CcpsGoogleTrack v2.0 – initialisation
  • Chaque événement envoyé : [CC Google Track] Événement : add_to_cart
  • Données de l'événement (objet e-commerce)
  • Événements désactivés : [CC Google Track] Événement désactivé : partager
  • Opérations AJAX (téléchargement des données produit, liste de souhaits, etc.)
  • Erreurs d'analyse et de gestion des événements
  • Événements PrestaShop (updatedCart, updatedProduct)
  • Fin de l'initialisation
Exemple de journaux dans la console :
[CC Google Track] CcpsGoogleTrack v2.0 - initialisation [CC Google Track] Événement : page_view {page_type : " product ", ...} [CC Google Track] Gestionnaire enregistré : add_to_cart [CC Google Track] Gestionnaire enregistré : remove_from_cart [CC Google Track] Gestionnaire enregistré : select_item [CC Google Track] Événement PrestaShop : updatedCart {reason: {...}} [CC Google Track] Événement : add_to_cart {currency: " PLN ", value: 99.99, items: [...]} [CC Google Track] CcpsGoogleTrack v2.0 - initialisation terminée
Différents messages de débogage :
CommuniquéImportance de la
Événement désactivé : nom_de_l'événementL'événement est désactivé dans la configuration.
Téléchargement des données produit via AJAX pour XLe module récupère les données produit depuis le serveur.
Les données produit ont été reçues depuis PHP pour X.Les données du produit ont été téléchargées avec succès.
Erreur AJAX XUne erreur s'est produite lors du téléchargement des données.
Erreur d'analyse JSONLa réponse AJAX n'est pas un JSON valide.
Handler enregistré : nomLe service événementiel a été lancé.
Conseil
Le mode débogage doit être activé UNIQUEMENT pendant les tests. Dans un environnement de production, il doit être désactivé afin de ne pas encombrer la console des visiteurs et de ne pas ralentir le site. Nous recommandons d'activer le mode débogage dans un environnement de test/de préproduction avant la mise en production.

9. Enregistrement des événements
La fonction d'enregistrement des événements enregistre tous les événements dans la base de données PrestaShop, ce qui permet de les consulter et de les analyser ultérieurement.

Activation de la journalisation des événements :
  1. Dans la configuration du module, recherchez la section „ Options de données avancées ”.”
  2. Cochez la case „ Enregistrement des événements ”.”
  3. Sauvegarder vos paramètres
  4. Le module créera automatiquement un tableau. ps_ccpsgoogletrack_logs dans la base de données
Structure du tableau des journaux :
ColonneTypeDescription
id_logINT AUTO_INCREMENTClé principale
event_nameVARCHAR(100)Nom de l'événement (par exemple, add_to_cart)
data_layerTEXTEDataLayer complet au format JSON
date_addDATETIMEDate et heure d'ajout
Consultation des journaux :
  1. Dans la configuration du module, accédez à l'onglet „ Journaux ”.”
  2. Vous verrez un tableau avec les 100 derniers journaux.
  3. Colonnes : Date, Événement, Couche de données (JSON)
  4. Possibilité d'effacer tous les journaux à l'aide du bouton „ Effacer les journaux ”.”
Exemple d'entrée dans le journal :
Événement : add_to_cart Date : 2025-12-10 14:30:45 Couche de données : { " event " : " add_to_cart ", " ecommerce " : { " currency " : "PLN", "value": 99.99, "items": [ { "item_id": "123", "item_name": "Produit test", "price": 99.99, "quantity": 1 } ] }, "page_type": "product", "customer_status": "visitor" }
Quand les événements sont-ils enregistrés ?
  • Événements depuis le panneau d'administration (hook displayHeader) – connexion PHP
  • Événements envoyés par JavaScript – connexion via AJAX
  • Tous les événements sauf ceux désactivés dans la configuration
  • La connexion fonctionne indépendamment du mode de débogage.
Nettoyage des journaux :
  1. Dans l'onglet „ Journaux ”, cliquez sur le bouton „ Effacer les journaux ”.”
  2. Confirmez l'opération dans la boîte de dialogue.
  3. Tous les journaux seront supprimés de la base de données.
  4. Un message de confirmation apparaîtra.
Avertissement
La connexion aux événements peut générer une grande quantité de données dans la base, en particulier dans les magasins à fort trafic. Nous recommandons de nettoyer régulièrement les journaux (par exemple, tous les mois) ou d'activer la connexion uniquement pendant les tests. Dans un environnement de production, il n'est généralement pas nécessaire de se connecter en permanence.

10. Code de suivi personnalisé
La fonction de code personnalisé permet d'ajouter du JavaScript personnalisé qui sera exécuté sur toutes les pages de la boutique.

Utilisation de votre propre code :
  • Événements GTM supplémentaires non pris en charge par le module
  • Suivi personnalisé des interactions des utilisateurs
  • Intégration avec d'autres outils analytiques
  • Modifications de dataLayer selon vos besoins
  • Scripts de remarketing Facebook Pixel, TikTok Pixel, etc.
Configuration de votre propre code :
  1. Dans la configuration du module, recherchez la section „ Code de suivi personnalisé ”.”
  2. Cochez la case „ Activer votre propre code ”.”
  3. Dans le grand champ de texte, entrez votre code JavaScript.
  4. N'utilisez pas de balises – sont ajoutés automatiquement
  5. Sauvegarder vos paramètres
Exemple de code personnalisé :
// Événement personnalisé vers dataLayer dataLayer.push({ 'event': 'custom_scroll', 'scroll_depth': '50%' });

// Suivi des clics sur des éléments spécifiques document.querySelectorAll('.special-button').forEach(function(btn) { btn.addEventListener('click', function() { dataLayer.push({ 'event': 'special_button_click', 'button_text': this.textContent }); }); }); // Facebook Pixel !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', 'YOUR_PIXEL_ID'); fbq('track', 'PageView');
Variables disponibles dans votre propre code :
  • window.dataLayer – couche de données principale GTM
  • window.ccpsGTMDebug – si le mode débogage est activé
  • window.ccpsEventConfig – configuration des événements
  • window.ccpsUserLogged – si l'utilisateur est connecté
  • window.ccpsAjaxUrl – URL vers le contrôleur AJAX du module
  • window.ccpsTranslations – tableau de traduction
  • prestashop – objet PrestaShop (si disponible)
Exemple d'utilisation des variables du module :
// Vérifiez si l'utilisateur est connecté if (window.ccpsUserLogged) { dataLayer.push({ 'event': 'logged_user_pageview' }); } // Utilisez la configuration des événements if (window.ccpsEventConfig && window.ccpsEventConfig['custom_event']) {
// Envoyer uniquement si l'événement est activé dataLayer.push({ 'event': 'custom_event' }); } // Journal de débogage si le mode débogage est activé if (window.ccpsGTMDebug) { console.log('[Mon code] Initialisation terminée'); }
Note
Votre propre code est ajouté à la fin de la section HEAD, après le code GTM et après tous les scripts du module. Cela signifie que toutes les variables et fonctions du module sont déjà disponibles. Le code est exécuté sur chaque page de la boutique, il faut donc faire attention à la performance.

11. Système de traduction
Le module dispose d'un système de traduction complet prenant en charge plusieurs langues.

Éléments traduits :
ÉlémentExemple PLExemple EN
Noms des événementsAjouter au panier (add_to_cart)Ajouter au panier (add_to_cart)
Messages de débogageÉvénement désactivé :Événement désactivé :
Messages d'erreurErreur lors du téléchargement des données produitErreur lors de la récupération des données produit
StatutsActifActif
BoutonsEnregistrerEnregistrer
Mécanisme de transfert des traductions vers JavaScript :
// W PHP (ccpsgoogletrack.php): $translations = [ 'eventDisabled' => $this->l('Event wyłączony:'), 'event' => $this->l('Event:'), 'sendingEvent' => $this->l('Wysyłanie'), // ... itd. ]; $output .= '<script>window.ccpsTranslations = ' . json_encode($translations, JSON_UNESCAPED_UNICODE) . ';</script>';

// W JavaScript (ccpsgoogletrack.js):
function t(key, defaultText) {
if (typeof window.ccpsTranslations !== 'undefined'
&& window.ccpsTranslations[key]) {
return window.ccpsTranslations[key];
}
return defaultText || key;
}

// Użycie: debugLog(t('eventDisabled', 'Event wyłączony:') + ' ' + event);
Ajouter une nouvelle langue :
  1. Copier le fichier translations/fr.php
  2. Changez le nom en code de langue, par exemple. traductions/de.php (allemand)
  3. Ouvrez le fichier dans un éditeur de texte.
  4. Traduisez toutes les valeurs à droite (après le signe =)
  5. NE changez PAS les clés (à gauche)
  6. Enregistrez le fichier avec l'encodage UTF-8.
  7. Vider le cache PrestaShop
Exemple de fichier de traduction :
<?php global $_MODULE; $_MODULE = array(); $_MODULE['ccpsgoogletrack_eventdisabled'] = 'Événement désactivé :'; $_MODULE['ccpsgoogletrack_event'] = 'Événement :'; $_MODULE['ccpsgoogletrack_sendingevent'] = 'Envoi en cours'; // ... plus de traductions
Liste de toutes les clés de traduction :
  • eventDisabled – „ Événement désactivé : ”
  • événement – „ Événement : ”
  • sendingEvent – „ Envoi ”
  • receivedData – „ Données produit reçues de PHP pour ”
  • gettingProductData – „ Téléchargement des données produit via AJAX pour ”
  • ajaxError – „ Erreur AJAX ”
  • parsingError – „ Erreur d'analyse JSON : ”
  • dataError – „ Erreur lors du téléchargement des données du produit ”
  • handlerRegistered – „ Gestionnaire enregistré ”
  • initialization – „ CcpsGoogleTrack v2.0 – initialisation ”
  • initComplete – „ CcpsGoogleTrack v2.0 – initialisation terminée ”
  • prestashopEvent – „ Événement PrestaShop ”
Conseil
Si la boutique est multilingue, le système de traduction sélectionnera automatiquement la langue appropriée en fonction de la langue actuelle de PrestaShop. Tous les messages de débogage, les noms d'événements dans la configuration et les messages système s'afficheront dans la langue de l'utilisateur.

12. Événements – détails
Description détaillée de la mise en œuvre de chacun des 18 événements pris en charge par le module.

page_view – Affichage de la page
  • Quand : Sur chaque page du magasin
  • Hook : displayHeader (en-tête d'affichage)
  • Données : type_de_page, url_de_page, titre_de_page, langue, devise, statut_client
  • Remarques : Le premier événement envoyé sur chaque page contient toutes les données contextuelles.
view_item – Affichage du produit
  • Quand : Sur la page du produit
  • Hook : afficherlesinformationscomplémentairessurlesproduits
  • Données : devise, valeur, articles[] (article_id, article_name, prix, article_brand, article_category, quantité=1)
  • Source : $product = prestashop.page.product ou AJAX
view_item_list – Affichage de la liste des produits
  • Quand : Catégories, page d'accueil, résultats de recherche
  • Hook : displayFooter (pour la catégorie)
  • Données : currency, item_list_id, item_list_name, items[] (tous les produits avec index)
  • Remarques : Utilise prestashop.page.page_name pour identifier le type de liste
select_item – Clic sur le produit
  • Quand : Cliquez sur le lien du produit dans la liste.
  • Mécanisme : Écouteur de clic JavaScript sur .product-miniature a
  • Données : devise, item_list_id, item_list_name, items[] (produit cliqué)
  • Source : attribut data-product-gtm ou AJAX
add_to_cart – Ajouter au panier
  • Quand : Après avoir ajouté le produit au panier
  • Mécanisme : Interception de l'événement PrestaShop ' updateCart ’
  • Données : devise, valeur, articles[] (produit ajouté avec quantité)
  • Source : prestashop.page.product ou AJAX GetProductData
  • Remarques : Détecte la quantité provenant de différentes sources (#quantity_wanted, event.reason.qty, event.resp.quantity)
remove_from_cart – Supprimer du panier
  • Quand : Après avoir supprimé le produit du panier
  • Mécanisme : Cliquez sur l'écouteur sur .supprimer-du-panier
  • Données : devise, valeur, articles[] (produit supprimé)
  • Source : Attributs data-id-product, data-price, data-name
view_cart – Affichage du panier
  • Quand : Sur la page du panier
  • Hook : affichagePanier d'achat
  • Données : currency, value, items[] (tous les produits dans le panier)
  • Source : $cart->getProducts()
begin_checkout – Début de la commande
  • Quand : Première étape de la réalisation de la commande
  • Mécanisme : JavaScript sur la page de paiement
  • Données : devise, valeur, articles[], coupon (le cas échéant)
  • Source : window.prestashop.cart
add_shipping_info – Choix de la livraison
  • Quand : Après avoir sélectionné le mode de livraison
  • Hook : actionCarrierProcess
  • Données : devise, valeur, articles[], niveau d'expédition (nom du transporteur)
  • Mécanisme : Également JavaScript listener pour la modification de l'entrée .delivery-option
add_payment_info – Sélection du mode de paiement
  • Quand : Après avoir sélectionné le mode de paiement
  • Mécanisme : Écouteur JavaScript sur .option de paiement input
  • Données : currency, value, items[], payment_type (nom du module de paiement)
purchase – Achat
  • Quand : Page de confirmation de commande
  • Hook : Affichage de la confirmation de commande
  • Données : devise, identifiant de transaction, valeur, taxe, frais d'expédition, coupon, articles[]
  • Source : $order = nouvelle commande ($id_commande)
  • Remarques : L'événement le plus important pour la conversion
search – Recherche
  • Quand : Utilisation du moteur de recherche
  • Hook : actionSearch
  • Données : search_term (terme recherché)
  • Fallback : JavaScript vérifie les paramètres URL (s=, search_query=)
login – Connexion
  • Quand : Après la connexion de l'utilisateur
  • Hook : actionAuthentication
  • Mécanisme : JavaScript détecte également la modification de ccpsUserLogged dans sessionStorage.
  • Données : méthode : ’ email ’
sign_up – Inscription
  • Quand : Après l'enregistrement d'un nouveau client
  • Hook : actionCustomerAccountAdd
  • Mécanisme : Cookie ccps_just_registered transféré vers sessionStorage
  • Données : méthode : ’ email ’
add_to_wishlist – Liste de souhaits
  • Quand : Ajouter un produit à la liste de souhaits
  • Mécanisme : Interception de fetch et XMLHttpRequest vers blockwishlist
  • Données : devise, valeur, articles[] (produit ajouté)
  • Source : AJAX GetProductData
  • Remarques : Fonctionne avec le module blockwishlist
share – Partager
  • Quand : Cliquez sur le bouton « Partager sur les réseaux sociaux ».
  • Mécanisme : Cliquez sur l'écouteur sur .partage social a
  • Données : méthode (facebook/twitter/pinterest/linkedin/email), type_de_contenu, identifiant_d'élément, éléments[]
  • Source : prestashop.page.product ou AJAX
select_promotion – Clic sur la promotion
  • Quand : Automatiquement si le produit bénéficie d'une remise
  • Hook : displayProductAdditionalInfo (avec view_item)
  • Données : devise, valeur, articles[], id_promotion, nom_promotion
  • Remarques : Utilise specific_prices pour les données promotionnelles
Succès
Tous les événements sont conformes aux spécifications officielles de Google Analytics 4 Enhanced Ecommerce. La structure des données items[] contient tous les champs obligatoires et recommandés (item_id, item_name, price, quantity, item_brand, item_category). Le module normalise automatiquement les noms des catégories (première lettre majuscule) et prend en charge jusqu'à 5 niveaux de hiérarchie des catégories.

13. Calendrier des événements
Vous trouverez ci-dessous un calendrier indiquant quand et sur quelles pages les différents événements sont publiés.

Événements sur différents types de sites :
PageÉvénements automatiquesÉvénements interactifs
Page d'accueilpage_view, view_item_listselect_item
Catégoriepage_view, view_item_listselect_item
Recherchepage_view, recherche, view_item_listselect_item
Produitpage_view, view_item, select_promotion (si remise)add_to_cart, add_to_wishlist, share
Panierpage_view, view_cartremove_from_cart, begin_checkout
Passer à la caissepage_view, begin_checkoutadd_shipping_info, add_payment_info
Confirmationpage_view, achat
Connexionpage_view, connexion
Inscriptionpage_view, sign_up
Parcours client (customer journey) avec événements :
  1. Page d'accueil → page_view, view_item_list
  2. Cliquez sur le produit → select_item
  3. Page produit → page_view, view_item, (select_promotion)
  4. Ajouter au panier → ajouter au panier
  5. Page du panier → page_view, view_cart
  6. Début du contrat → commencer le paiement
  7. Choix de la livraison → ajouter_informations_expédition
  8. Choix du mode de paiement → ajouter_informations_de_paiement
  9. Confirmation → page_view, achat
Info
Chaque événement automatique est envoyé lors du chargement de la page (Hook PHP), tandis que les événements interactifs sont envoyés en réponse aux actions de l'utilisateur (JavaScript). Le module détecte intelligemment les doublons et n'envoie pas deux fois le même événement pour la même action.

14. Test Tag Assistant
Google Tag Assistant est l'outil officiel de Google pour tester et déboguer l'implémentation de Google Tag Manager.

Test avec Tag Assistant :
  1. Installez l'extension Tag Assistant Legacy par Google pour Chrome
  2. Ou utilisez le nouvel outil Assistant Google Tag dans Chrome DevTools
  3. Accéder à la page boutique
  4. Cliquez sur l'icône Tag Assistant dans la barre d'outils.
  5. Cliquez sur „ Enable ” pour démarrer l'enregistrement.
  6. Actualiser la page
  7. Effectuez des actions tests (ajouter au panier, passer à la caisse, etc.)
  8. Consultez le rapport Tag Assistant
Que vérifier dans Tag Assistant :
  • Balise GTM trouvée – le marqueur vert indique une installation correcte
  • DataLayer – vérifiez qu'il contient les données correctes des événements
  • Tags supprimés – liste des balises qui ont été activées
  • Variables – variables envoyées au GTM
  • Erreurs – les marqueurs rouges indiquent des problèmes
Configuration des balises dans GTM (exemple GA4) :
  1. Connectez-vous à Google Tag Manager
  2. Accédez à l'onglet „ Balises ”.”
  3. Cliquez sur „ Nouveau ”.”
  4. Sélectionnez le type de balise : „ Google Analytics : événement GA4 ”
  5. Entrez l'ID de mesure (G-XXXXXXXXXX de GA4)
  6. Nom de l'événement : {{Événement}} (variable intégrée)
  7. Déclencheur : „ Custom Event ” avec les noms des événements (add_to_cart, purchase, etc.)
  8. Ou un déclencheur universel pour tous les événements avec dataLayer
  9. Enregistrer et publier le conteneur
Mode aperçu GTM (Preview Mode) :
  1. Dans GTM, cliquez sur „ Aperçu ” dans le coin supérieur droit.
  2. Entrez l'URL de la boutique
  3. Cliquez sur „ Connect ”.”
  4. Une nouvelle fenêtre s'ouvrira avec le débogueur GTM.
  5. Effectuez des actions dans la boutique
  6. Le débogueur affiche tous les événements dataLayer en temps réel.
  7. Vérifiez quelles balises ont été activées pour chaque événement.
Lien vers Tag Assistant :
Conseil
L'outil officiel de test de Google se trouve à l'adresse suivante : tagassistant.google.com

Nous pouvons y tester si tout fonctionne correctement, si GTM est installé et si les événements sont correctement envoyés à Google Analytics.

15 Dépannage
GTM ne se charge pas sur la page
  1. Vérifiez si GTM est activé dans les paramètres du module.
  2. Vérifiez l'exactitude de l'identifiant GTM Container ID (format : GTM-XXXXXX)
  3. Vider le cache PrestaShop (Paramètres avancés → Performances → Vider le cache)
  4. Vérifiez si la source de la page contient gtm.js et noscript iframe.
  5. Désactivez les autres modules susceptibles de modifier l'en-tête.
  6. Vérifiez qu'il n'y a pas d'erreurs JavaScript dans la console.
Les événements ne sont pas envoyés
  1. Activez le mode débogage et vérifiez la console du navigateur.
  2. Vérifiez si les événements sont activés dans la configuration du module.
  3. Vérifiez si dataLayer est défini (console.log(window.dataLayer))
  4. Vérifiez qu'il n'y a pas de conflits avec d'autres modules GTM.
  5. Assurez-vous que le module JavaScript est chargé (ccpsgoogletrack.js)
  6. Vérifiez si hookDisplayHeader est exécuté par le thème.
add_to_cart ne fonctionne pas
  1. Activez le mode débogage et observez les journaux dans la console.
  2. Vérifiez si l'événement ' updateCart ’ de PrestaShop est appelé.
  3. Vérifiez si prestashop.on() est disponible.
  4. Vérifiez si les produits ont des données attribuées (id_product, prix, nom)
  5. Assurez-vous que le contrôleur AJAX fonctionne (/module/ccpsgoogletrack/ajax)
  6. Vérifiez qu'il n'y a pas d'erreurs AJAX dans l'onglet Réseau.
purchase n'enregistre pas les conversions
  1. Vérifiez si l'achat d'événement est activé.
  2. Vérifiez que vous êtes bien sur la page order-confirmation.
  3. Assurez-vous que hookDisplayOrderConfirmation est exécuté.
  4. Vérifiez que la commande est correctement chargée ($order)
  5. Activez la connexion des événements et vérifiez si l'achat est enregistré.
  6. Dans GTM, vérifiez que vous avez configuré la balise GA4 pour l'événement « purchase ».
Les traductions ne fonctionnent pas
  1. Vérifiez si le fichier translations/XX.php existe pour votre langue.
  2. Vérifiez le format du fichier (encodage UTF-8, syntaxe PHP correcte)
  3. Vider le cache PrestaShop
  4. Vérifiez si window.ccpsTranslations est défini dans le code source de la page.
  5. Assurez-vous que la fonction t() est disponible dans JavaScript.
La connexion aux événements ne fonctionne pas
  1. Vérifier si la fonction est activée dans les paramètres
  2. Vérifiez si la table ps_ccpsgoogletrack_logs existe dans la base de données.
  3. Vérifier les droits d'écriture de la base de données
  4. Assurez-vous que le contrôleur AJAX accepte les requêtes (action=LogEvent).
  5. Activez WP_DEBUG et vérifiez les journaux d'erreurs.
  6. Vérifiez que vous n'avez pas dépassé la taille maximale autorisée pour les tableaux.
Le code personnalisé ne s'exécute pas
  1. Vérifier si la fonction est activée dans les paramètres
  2. Vérifiez que le code JavaScript est correct (vérifiez la console).
  3. Assurez-vous de ne pas utiliser les balises dans le code.
  4. Vérifiez si le code se trouve dans le code source de la page (section HEAD).
  5. Testez le code morceau par morceau pour trouver l'erreur.
Erreur
Si les problèmes persistent, activez le mode débogage dans les paramètres du module et la journalisation des événements. Recueillez toutes les informations de la console du navigateur, de l'onglet Réseau et des journaux d'événements. Contactez l'assistance COCOS via cocos.codes/support en joignant les informations recueillies.

16. LA FAQ
Le module est-il compatible avec PrestaShop 9.0 ?
Oui, le module a été testé et est entièrement compatible avec PrestaShop 1.7.x, 8.x et la dernière version 9.0.

Puis-je utiliser le module sans compte Google Analytics ?
Oui, le module transmet les données à Google Tag Manager. GTM peut transmettre les données à de nombreux systèmes différents, pas seulement à Google Analytics. Nous pouvons envoyer des données à Facebook Pixel, TikTok Pixel, nos propres systèmes d'analyse, etc.

Le module ralentit-il la boutique ?
Non, le module est optimisé pour la performance. Le code GTM se charge de manière asynchrone et tous les scripts sont minifiés. L'impact sur la performance est minime (< 0,1 s de temps de chargement).

Puis-je désactiver certains événements ?
Oui, dans la configuration du module, nous pouvons activer ou désactiver chacun des 18 événements séparément. Les événements désactivés ne sont pas envoyés à dataLayer.

Comment fonctionne la détection add_to_cart ?
Le module intercepte l'événement ' updateCart ’ de PrestaShop et surveille les clics sur les boutons « Ajouter au panier ». Il détecte automatiquement la quantité provenant de différentes sources et récupère les données du produit via AJAX si nécessaire.

Le module prend-il en charge le multilinguisme ?
Oui, le module dispose de traductions complètes en polonais et en anglais. Nous pouvons facilement ajouter nos propres langues en copiant et en traduisant les fichiers du répertoire translations/.

Qu'est-ce que les conversions améliorées ?
Enhanced Conversions est une fonctionnalité de Google Ads qui améliore la précision de la mesure des conversions en transmettant les données hachées des utilisateurs (e-mail, téléphone, adresse). Elle nécessite le consentement RGPD.

Le module est-il conforme au RGPD ?
Le module lui-même est conforme au RGPD : il hache toutes les données personnelles à l'aide de l'algorithme SHA-256. Cependant, pour être pleinement conforme, nous devons disposer d'une politique de confidentialité à jour et du consentement des utilisateurs pour les cookies. Nous recommandons l'intégration avec le module de gestion des cookies.

Comment vérifier si le module fonctionne correctement ?
Activez le mode débogage dans les paramètres, ouvrez la console du navigateur (F12) et observez les journaux. Vous pouvez également utiliser Google Tag Assistant ou le mode aperçu GTM pour voir tous les événements en temps réel.

Puis-je ajouter mes propres événements ?
Oui, vous pouvez utiliser la fonction „ Code de suivi personnalisé ” dans les paramètres pour ajouter n'importe quel JavaScript qui enverra ses propres événements à dataLayer.

Combien de temps les journaux d'événements sont-ils conservés ?
Les journaux sont conservés dans la base de données jusqu'à ce qu'ils soient supprimés manuellement. Nous vous recommandons de nettoyer régulièrement les journaux (par exemple, tous les mois) afin de ne pas saturer la base de données.

Le module fonctionne-t-il avec le module cookies/RGPD ?
Oui, le module est compatible avec la plupart des modules de gestion des consentements aux cookies. Nous pouvons l'intégrer à Google Consent Mode 2.0 via notre propre code de suivi.

Que se passe-t-il lors de la désinstallation ?
Le module supprime tous ses paramètres de la base de données (options, tableau des journaux). Il ne supprime toutefois pas les fichiers du module – ceux-ci doivent être supprimés manuellement du répertoire modules/ccpsgoogletrack/.

Puis-je exporter les journaux d'événements ?
Actuellement, le module ne dispose pas d'une fonction d'exportation des journaux. Cependant, nous pouvons interroger directement la base de données (table ps_ccpsgoogletrack_logs) ou ajouter notre propre fonction d'exportation.

À quelle fréquence les traductions sont-elles mises à jour ?
Les traductions sont mises à jour à chaque nouvelle version du module. Si une traduction pour une langue donnée manque, nous pouvons l'ajouter nous-mêmes ou la signaler à COCOS.

Laissez votre commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Produits récemment consultés

PrestaShop Google Tag Manager (GTM, GA4, ADS)

(0)
$49,00 hors TVA

[GRATUIT] PrestaShop PayNow

(0)
$0,00 hors TVA

Services de développement PrestaShop et WordPress

(2)
$27,00 hors TVA

Connexion

Panier d'achat

Fermer

Votre panier est vide.

Commencer les achats

Encadré