# Installer Google Tag Manager sur une boutique PrestaShop

> Google Tag Manager sur PrestaShop, c’est un conteneur posé une fois dans le thème, puis toutes les balises (GA4, Ads, Meta) gérées depuis l’interface GTM sans nouvelle mise en production. Le prérequis que j’installe en même temps, c’est un dataLayer alimenté par PrestaShop, sans quoi GTM n’a rien à lire.

- Source canonique : [https://allaux.fr/services/tracking/google-tag-manager-prestashop](https://allaux.fr/services/tracking/google-tag-manager-prestashop)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Réponse directe

> Créez le conteneur dans Google Tag Manager, puis posez le premier extrait via le hook displayHeader et le second via displayAfterBodyOpeningTag, plutôt que de copier le code dans themes//templates/. Faites ensuite pousser par PrestaShop les variables produit, panier et commande dans le dataLayer, sans quoi le conteneur n’a rien à lire. Contrôlez le tout en mode Aperçu jusqu’à order-confirmation.

## Les situations que je traite

- Vous ajoutez un outil marketing après l’autre et devez retoucher le thème à chaque fois
- GTM est posé mais aucune balise ne se déclenche correctement
- Vous ne savez pas où poser proprement les deux extraits de code du conteneur
- Le dataLayer PrestaShop est vide ou incomplet sur le panier et la commande
- Plusieurs personnes interviennent sur le site et le code de tracking est dupliqué à plusieurs endroits

## Comment j’installe GTM sur PrestaShop

1. **Création du conteneur GTM** — Je crée le conteneur dans l’interface Google Tag Manager, ce qui génère deux extraits de code : un pour le head, un pour juste après l’ouverture du body.
2. **Pose dans le thème PrestaShop** — Je place le premier extrait dans le fichier head.tpl du thème, juste avant la fermeture de , et le second dans le hook displayAfterBodyOpeningTag plutôt qu’en dur dans un fichier copié sur chaque page.
3. **Construction du dataLayer** — Je fais pousser à PrestaShop les variables produit, panier et commande (items, value, currency, transaction_id) au bon moment sur la fiche produit, le panier et la page order-confirmation, pour que GTM ait des données à lire.
4. **Ajout des balises depuis l’interface GTM** — Une fois le dataLayer en place, j’ajoute GA4 et les autres balises marketing directement dans GTM, sans repasser par le code du thème.
5. **Test en mode aperçu** — Je vérifie, page par page, quelles balises se déclenchent et avec quelles variables du dataLayer, avant de publier le conteneur en production.

## Pourquoi passer par GTM plutôt que poser chaque balise à la main

Sans gestionnaire de balises, chaque nouvel outil marketing, un pixel Meta, une balise Google Ads, demande de modifier le thème PrestaShop et de vider le cache. Avec GTM, un seul conteneur est posé une fois, et toutes les balises suivantes se gèrent depuis l’interface, sans nouvelle mise en production.

Le conteneur seul ne suffit pas : GTM lit un dataLayer, une couche de données JavaScript qui doit être alimentée par PrestaShop avec les informations produit, panier et commande au bon moment. Sans dataLayer structuré, les balises ecommerce posées dans GTM n’ont rien à lire, même si le conteneur est correctement installé.

Je préfère poser les deux extraits de code via les fichiers de thème et les hooks natifs de PrestaShop plutôt qu’en dur dans plusieurs templates copiés, pour garder un seul point de maintenance.

## Un conteneur, deux emplacements

> Le premier extrait de code GTM va dans la balise head : c’est lui qui charge le conteneur et fait fonctionner l’ensemble. Le second, placé juste après l’ouverture de body, est une balise noscript contenant une iframe : elle ne s’exécute que si JavaScript est désactivé dans le navigateur, et ne remonte alors qu’une vue de page, sans dataLayer ni évènement ecommerce. Sa portée est donc très limitée, mais Google la fournit avec le conteneur et je la pose quand même.

## Pages liées

- **Google Analytics 4 sur PrestaShop** — La première balise à ajouter une fois le conteneur GTM posé. ([/services/tracking/google-analytics-4-prestashop](/services/tracking/google-analytics-4-prestashop))
- **Doublons statistiques : les causes** — Ce qui se passe quand un conteneur GTM est posé deux fois sur la même page. ([/services/tracking/doublons-statistiques-causes](/services/tracking/doublons-statistiques-causes))
- **Vérifier l’installation d’une balise sans outil payant** — Les outils gratuits pour contrôler qu’une balise se déclenche réellement. ([/services/tracking/verifier-installation-balise-sans-outil-payant](/services/tracking/verifier-installation-balise-sans-outil-payant))
- **PrestaShop, mon terrain principal** — Les autres sujets PrestaShop que je traite au quotidien. ([/prestashop](/prestashop))

## FAQ

### Le conteneur GTM remplace-t-il Google Analytics 4 ?

Non, GTM est un gestionnaire de balises. GA4 reste l’outil de mesure : il se configure comme une balise à l’intérieur du conteneur GTM une fois celui-ci posé.

### Puis-je poser GTM et gtag.js en même temps ?

Non : GA4 se retrouve alors chargé deux fois et chaque évènement part en double. Je choisis l’une ou l’autre méthode, jamais les deux sur le même site.

### Faut-il un module PrestaShop pour poser GTM ?

Un module peut simplifier la pose des deux extraits de code, mais je passe le plus souvent par les fichiers de thème directement, pour garder la main sur l’emplacement exact et éviter les conflits avec d’autres modules de tracking.

### Comment vérifier que le dataLayer PrestaShop est bien alimenté ?

Le mode aperçu de Google Tag Manager affiche, à chaque page, le contenu du dataLayer au moment du déclenchement d’une balise, ce qui permet de voir immédiatement si une variable comme value ou transaction_id est vide.

### Dois-je recueillir le consentement avant que GTM ne déclenche des balises ?

GTM lui-même ne collecte rien : ce sont les balises qu’il déclenche (GA4, Ads, Meta) qui sont concernées. GA4, en configuration standard, ne remplit pas les critères d’exemption de consentement de la CNIL et nécessite donc en principe le consentement préalable du visiteur.
