GTM server-side et adBlocker

Article publié en avril 2022 par Nicolas Chollet
L’un des intérêts souvent évoqué concernant GTM server-side est le fait que cela permet de “contourner” les adblockers. Cet article vise à faire le point sur ce sujet, et en particulier les gains à attendre.

1. Fonctionnement des adblockers

Le terme “adblockers” est très générique, mais en réalité leur fonctionnement peut être très différent.
  • Les plus “tolérants” (Adblock, Adblock plus...) ne font qu’empêcher l’affichage des publicités (et encore, pas toutes les publicités). Dans leur configuration par défaut, ils vont donc :
    • Bloquer l’affichage des publicités
    • Souvent, bloquer l’envoi des scripts de tracking publicitaire (facebook pixel, google ads, floodlight, etc...)
    • Mais ils ne vont pas bloquer les outils de mesure (Google Tag Manager, Google Analytics...)
  • D’autres vont également bloquer les scripts de tracking (type Google analytics). C’est le cas aussi des outils cités plus haut,lorsque l’utilisateur choisit de cocher l’option “Do not track”
  • D’autres enfin vont tout bloquer, y compris Google Tag Manager.
💡
💡 Nous allons voir que Google Tag Manager Server-Side permet de contourner certains de ces blocages, mais que l’efficacité dépend de l’implémentation qui en est faite.

2. Quelles options pour GTM sever-side ?

Avec GTM server-side, on a la possibilité d’héberger également le container côté client sur son nom de domaine. On peut également renommer le nom du fichier. Voici les différentes options :
sql
<!-- Google Tag Manager --> <script data-cookieconsent="ignore"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5RZNLZQ'); </script> <!-- End Google Tag Manager -->
  • Hébergement des js en first party : le fichier gtm.js est alors chargé depuis notre propre serveur
sql
<!-- Google Tag Manager --> <script data-cookieconsent="ignore"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://tracking.unnest.co/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5RZNLZQ'); </script> <!-- End Google Tag Manager -->
  • Hébergement des js en first party, avec URL alternative : dans ce dernier cas, on va modifier le nom du fichier (gtm.js → mon-tracker-perso.js)
sql
<!-- Google Tag Manager --> <script data-cookieconsent="ignore"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://tracking.unnest.co/mon-tracker-perso.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5RZNLZQ'); </script> <!-- End Google Tag Manager -->

3. Quels impacts sur les adblockers

Cette étude a été réalisée par Addingwell en avril 2021.
Image without caption

Annexe

Voici l’étude complète. Pour bien comprende la logique :
  • gtm.js —> Est-ce que Google tag manager est bloqué ou non
  • gtag.js —> Est-ce que le tag de traking gtag (qui peut être indéféremment de l’analytics ou du tracking Google Ads) est bloqué
  • /collect → Est-ce que les hits “google analytics” sont bloqués ou non ?
Image without caption