Rédigé par
Ira Holubovska
Avant d'effectuer un achat, les clients interagissent avec les marques par le biais de divers canaux, en ligne comme hors ligne. Il peut donc être difficile pour les spécialistes du marketing et de l'analyse de suivre ces interactions en un seul endroit. Les outils standards comme Google Analytics ou le suivi côté serveur de Matomo ne peuvent souvent pas suivre les événements hors ligne. Pour résoudre ce problème, on utilise généralement des plateformes de données client (CDP).
Une façon d'utiliser une CDP est d'acheter un outil prêt à l'emploi, ce qui peut s'avérer coûteux. Une autre option consiste à créer votre propre CDP. Dans cet article de blog, nous vous montrerons comment créer une version simple de CDP à l'aide de Google Tag Manager côté serveur et d'une base de données.
Cette configuration vous permet de regrouper toutes vos informations client en un seul endroit, facilitant leur compréhension et un ciblage plus efficace. Que vous débutiez dans le suivi ou que vous soyez un spécialiste chevronné, ce guide vous aidera à créer une CDP qui améliorera considérablement la gestion de vos données client.
Le conteneur Google Tag Manager côté serveur recevra des requêtes pour toutes les interactions des utilisateurs, qu'elles soient en ligne ou hors ligne. Vous pouvez utiliser des clients standards comme GA4 ou Data Client pour recevoir des événements en ligne depuis le GTM web. Pour récupérer les événements hors ligne, vous pouvez utiliser des webhooks. Plus loin dans cet article, je vous montrerai comment envoyer et déboguer les données de webhooks dans sGTM.
Quel que soit le type de données reçu par sGTM, il les stockera dans la base de données. Il existe plusieurs bases de données avec lesquelles sGTM peut être intégré, par exemple Firebase, Supabase (bien moins cher que Firestore) ou Data Store. Ici, j'utiliserai le Data Store de Stape car il s'agit d'une fonctionnalité intégrée à Stape, gratuite pour les clients payants de Stape (forfaits Pro ou supérieurs).
En plus de sGTM et du Store, nous utiliserons également un identifiant unique d'utilisateur, qui permettra de stocker les données d'un même utilisateur dans un seul document.
1. Source de données (CRM, SDK, CMS, application mobile, site web, etc.).
2. Conteneur GTM côté serveur.
3. Base de données (j'utiliserai Data Store dans ce guide. Vous pouvez également utiliser Firestore ou Supabase, pour laquelle Stape a créé la balise Supabase Writer).
4. Pour lire/écrire des données depuis la base de données, ces modèles sGTM peuvent être utilisés :
5. Identifiants uniques d'utilisateur. Dans ce guide, j'utiliserai un User ID unique ou l'identifiant d'utilisateur WordPress généré par le plugin WordPress de Stape.
Voici comment les données utilisateur circulent de la source de données (CRM) vers la CDP :

La méthode de réception des données dépend de la façon dont vous les envoyez à sGTM. Voici les trois manières d'obtenir les données :
C'est la partie la plus délicate et la plus cruciale. Pour concevoir une CDP performante, vous devez disposer de données précises sur les utilisateurs et leurs interactions avec votre marque. La CDP doit contenir des informations à jour ainsi que des données claires et non dupliquées. Vous avez besoin d'un User ID adéquat pour bâtir un tel système de profils d'utilisateurs.
Pour les utilisateurs identifiés, vous pouvez utiliser une adresse e-mail ou un identifiant interne exploitable à travers différents systèmes. Si un utilisateur n'est pas identifié, il peut s'agir d'un Stape User ID constitué d'un hachage des éléments suivants :
Si votre marque exploite plusieurs domaines, vous pouvez également activer l'option Cross-domain ID dans le power-up User ID. Elle génère un identifiant supplémentaire (X-Stape-Cross-Domain-Id) à partir des mêmes signaux mais sans le nom d'hôte, de sorte que le même utilisateur non identifié obtienne un seul identifiant sur tous vos domaines connectés au conteneur serveur. Cela permet d'éviter les profils en double dans votre CDP.
Si, pour des raisons de conformité à la confidentialité, vous souhaitez rendre votre User ID plus unique, vous pouvez ajouter une variable dépendante. Il peut s'agir d'un jour, d'un mois, d'une semaine ou d'une année. Tout dépend du degré d'unicité souhaité pour l'identifiant.
Nous utiliserons soit la variable reStore, soit la balise Stape Store Writer et la variable Stape Store Lookup pour fusionner et réconcilier les profils d'utilisateurs à partir des requêtes et de la base de données. Des copies de ces modèles sont également disponibles sur le GitHub de Stape.
La balise Writer et les variables Lookup sont assez explicites. Ces deux modèles vous permettent d'écrire et de lire des données dans le Data Store.
La variable reStore commencera par identifier si l'utilisateur existe dans la base de données. Dans un premier temps, la variable récupère tous les identifiants de l'utilisateur à partir de notre événement (e-mail, téléphone ou identifiant client). Ensuite, elle envoie une requête au Store pour sélectionner les clients qui possèdent l'un de ces identifiants. Si des informations sur le client sont présentes dans la base de données, elle renverra les données de ce client.

Lorsqu'une variable reçoit la réponse du Store, elle la fusionne avec une requête entrante. Par exemple, si aucun champ city n'existe, ce champ provenant du Store sera utilisé. Si les requêtes entrantes comportent un champ city mais que le Store ne l'a pas, ou qu'il est différent, les données de la requête pour ce champ seront alors écrites dans le store. Cette variable crée une nouvelle entité si un client est partiellement trouvé dans le store.

Une fois les données dans sGTM traitées et formatées au format sGTM, vous pouvez les utiliser pour les envoyer à n'importe quel fournisseur de votre choix, comme Meta, TikTok, Google Ads ou Analytics. Faites attention aux données utilisateur envoyées dans les requêtes.
Le débogage dans sGTM est difficile, mais les événements hors ligne peuvent être encore plus complexes. Nous verrons comment utiliser les éléments suivants :
Je vais présenter deux cas d'usage pour montrer comment Data Store peut être utilisé. Nous avons constaté qu'il s'agit des scénarios les plus populaires auprès des clients de Stape.
1. Configurez l'User ID. J'utiliserai le power-up Stape User ID qui aidera à fusionner les utilisateurs avec les clients.
a. Connectez-vous à votre compte Stape et activez le power-up. Pour ce faire, ouvrez le conteneur sGTM, cliquez sur l'onglet Power-ups, ouvrez l'User ID, activez le bouton à bascule et enregistrez.

b. Dans le conteneur Server GTM, créez une variable qui récupérera l'User ID à partir des en-têtes de requête sur le serveur.

2. Écrivez les données dans la base de données lors de l'événement purchase. Assurez-vous d'ajouter un User ID Stape aux données d'événement.
a. Ajoutez une balise Stape store writer à la galerie de modèles sGTM (téléchargez-la depuis GitHub et importez-la dans la section des modèles de balises sGTM) et créez une balise pour écrire les données d'événement lors d'un événement purchase. J'écris toutes les données d'événement et j'ajoute un User ID Stape à l'enregistrement du store. Nous en aurons besoin pour fusionner les utilisateurs lors d'un événement pageview.

b. Si la balise a fonctionné correctement, vous verrez dans votre base de données un enregistrement similaire à la capture d'écran ci-dessous.

3. Enrichissez les données de l'événement pageview avec les données stockées dans le Data Store.
a. Pour fusionner les utilisateurs issus de l'événement page view et celui que nous stockons dans la base de données, nous utiliserons à nouveau le Stape User ID et la variable Stape Store Lookup qui permet de récupérer des données depuis le Store. Ajoutez la variable Stape Store Lookup à la galerie de modèles de variables de sGTM. Pour télécharger le modèle depuis GitHub, accédez à la section des modèles de sGTM. Cliquez sur New dans la section des variables, puis sur Import.

b. Créez une variable Stape Store Lookup pour les paramètres que vous souhaitez restaurer : ajoutez document path et path name.

c. Ajoutez une variable Lookup à la balise pageview.

4. Testez la configuration. Vous devriez voir les données utilisateur enrichies dans la balise déclenchée dans le conteneur sGTM.

Dans ce cas d'utilisation, je souhaite envoyer des données d'événement hors ligne à un réseau publicitaire. Lors de l'envoi de données de conversion à la plateforme de l'annonceur, l'élément essentiel consiste à envoyer un click ID. Le click ID est un identifiant ajouté à l'URL ou aux cookies lorsque l'utilisateur clique sur le lien publicitaire. Grâce au click ID, le réseau publicitaire peut facilement attribuer la conversion à la campagne publicitaire.
Les identifiants de clic sont disponibles pour tous les événements web, mais si vous souhaitez utiliser les données de conversion du CRM ou du CMS pour les envoyer au réseau publicitaire, dans la plupart des cas, les identifiants de clic ne sont pas disponibles.
Pour configurer cette option, j'utiliserai la variable de restauration Stape pour écrire des données dans le Data Store lors de l'affichage de page et restaurer les données lors des événements d'achat. En plus de cela, j'aurai besoin d'une transformation dans le conteneur sGTM pour enrichir l'événement envoyé à Facebook. Un autre élément critique est la mise en correspondance des utilisateurs lors des événements d'affichage de page avec les utilisateurs des webhooks d'achat hors ligne. Pour ce faire, vous devez utiliser un identifiant utilisateur qui restera le même lors des événements d'affichage de page web et des achats hors ligne.
Avec les CMS standards, c'est facile à réaliser car ils disposent généralement de ce type d'identifiant dans les cookies. Vous devrez demander aux développeurs d'ajouter ces paramètres pour les sites web personnalisés. Ma configuration est effectuée sur un site WordPress. Le plugin WordPress de Stape envoie un identifiant utilisateur unique lors des événements web et l'ajoute au webhook. Grâce à cet identifiant utilisateur, je peux faire correspondre les utilisateurs entre un affichage de page et les webhooks d'achat dans la base de données.
1. Recevoir le webhook d'achat depuis la source de données hors ligne dans sGTM.
a. Envoyez un webhook depuis le CRM. J'utiliserai l'application WordPress de Stape pour cela. Accédez à l'onglet Webhooks et ajoutez l'URL du conteneur Server GTM. Il s'agit du domaine que vous utilisez pour votre conteneur GTM côté serveur. Nous vous recommandons de configurer un domaine personnalisé au sein du domaine de votre site web, car cela permettra de définir des cookies first-party. N'oubliez pas de cocher les cases.

b. Ajoutez le Data client aux modèles de clients sGTM et configurez-le pour récupérer les webhooks que vous envoyez depuis le CRM. Pour ce faire, créez un modèle Data Client et ajoutez un Webhook path.

c. Configurez le power-up Preview Header config sur Stape pour déboguer les webhooks entrants dans sGTM. Accédez à la prévisualisation de sGTM, cliquez sur les trois points dans le coin supérieur droit et cliquez sur Send requests manually. Copiez l'en-tête HTTP X-Gtm-Server-Preview et collez-le dans le power-up Preview Header config.


d. Ouvrez le débogueur sGTM et vérifiez qu'il a bien reçu les webhooks. Une fois le webhook déclenché, vous devriez voir la requête entrante dans sGTM et constater que le client de données a pris en charge cette requête.

2. Écrivez les paramètres fbc, fbp et client ID de l'événement pageviews dans la base de données.
Dans cette étape, je vais vous montrer comment écrire les paramètres fbc et fbp dans la base de données à l'aide de la variable reStore. Pour ce faire, nous utiliserons une balise Facebook pageview pour déclencher les événements pageview et une transformation qui écrira les données dans le store à l'aide de la variable reStore.
a. Ajoutez une variable reStore aux variables sGTM à l'aide de ce lien. Vous devrez la télécharger depuis GitHub, créer un nouveau modèle de variable dans sGTM et cliquer sur Importer.
b. Configurez la variable reStore. Elle doit utiliser un identifiant utilisateur WordPress et un identifiant, puis écrire fbp, fbc et l'identifiant utilisateur WordPress dans le store.

c. Créez une transformation qui enrichira les données d'événement sur les événements Facebook pageview à l'aide de la variable reStore et ajoutez cette transformation à votre balise FB pageview.

d. Testez la configuration. Si tout est correctement configuré, vous devriez voir les données enregistrées dans le Data Store.

e. Configurez un événement d'achat Facebook qui se déclenchera chaque fois qu'un webhook sera reçu. Pour enrichir cet événement avec les données issues du Data Store, nous devrons utiliser une transformation et la même variable de restauration que celle utilisée pour la transformation sur un événement pageview FB. Cela permettra d'extraire le paramètre requis sur un événement d'achat. Mais pour envoyer les données sous un format que Facebook reconnaîtra, nous devrons utiliser une variable d'extraction d'objet qui extrait l'objet requis à partir de la variable de restauration.



f. Testez votre configuration. Si tout fonctionne correctement, vous devriez voir que les paramètres fbc et fbp ont bien été envoyés à Facebook ou lors d'un événement d'achat hors ligne.


À l'aide de Data Store, vous pouvez créer une base de données clients ou une CDP. Cela vous offre un moyen simple de collecter et de stocker toutes les informations obtenues auprès de vos clients, ce qui peut vous aider à concevoir de meilleurs formulaires d'analyse ou à optimiser les résultats de vos campagnes payantes. L'enrichissement de vos données clients vous aide à mieux comprendre leur comportement et leurs préférences, vous permettant ainsi de perfectionner vos stratégies marketing.
Vous souhaitez essayer le suivi côté serveur ?
Essayer gratuitement
Commentaires