Stape

Écrire des données dans Firestore à partir du serveur Google Tag Manager

Publié
26 avr. 2022
Egalement disponible

L'intégration de Firestore et sGTM offre de nombreuses possibilités au balisage côté serveur. La meilleure chose que vous puissiez faire avec cette combinaison est d'enrichir les données côté serveur.

Vous pouvez obtenir rapidement des données de Firestore en utilisant une nouvelle recherche Firestore. C'est une variable native et disponible pour tout le monde dans sGTM. Mais comment pouvez-vous introduire des données sur Firebase ? Stape a résolu ce problème en créant une balise Firestore Writer.

Cet article de blog va montrer comment écrire des données sur Firestore à partir du conteneur du serveur Google Tag Manager. Je montrerai également comment utiliser la balise Firestore Writer et la variable Firestore Lookup pour enrichir les données côté serveur. C’est parti!

Qu'est-ce que c’est FirestoreCopier le lien vers cette section

Firestore est une base de données NoSQL flexible et évolutive avec un stockage orienté aux documents. Contrairement aux bases de données SQL, il n'y a pas de tables ou de lignes dans Firestore. Au lieu de cela, vous stockez les données dans des documents qui sont organisés en collections pour faciliter la navigation et la gestion.

firestore

Firestore est la solution idéale pour ceux qui possèdent de vastes collections de petits documents. Il stocke les données dans des documents organisés en collections. Chaque document comprend des paires nom-valeur.

Firestore et serveur Google Tag ManagerCopier le lien vers cette section

Avec la dernière version de l'API GTM côté serveur, il est désormais possible d'intégrer Firestore et sGTM. Nous avons utilisé cette API pour créer la balise Firestore Writer. Permettez-moi de décrire rapidement les fonctions de l'API Firestore sGTM.

● Firestore.read - lit les données du document Firestore et renvoie une promesse qui se résout en un objet contenant deux clés : id et data. 

● Firestore.write - écrit des données dans un document ou une collection Firestore. Si vous spécifiez uniquement le chemin d'accès à la collection, le document sera automatiquement créé avec un nom aléatoire.

● Firestore.query - renvoie un tableau de documents Firestore qui correspondent aux conditions de requête spécifiées.

Firestore.runTransaction - permet la lecture et l'écriture à partir de Firestore de manière atomique.

Balise Firestore WriterCopier le lien vers cette section

firestore writer

Firebase Path - spécifiez un chemin d'accès à votre document ou collection Firestore. Ne doit pas commencer ou se terminer par un '/.' Si le chemin est vers une collection, un document sera créé avec un ID généré aléatoirement. Si le chemin est vers un document qui n'existe pas, il sera généré.

Cette balise autorise plusieurs types d'actions :

● Ajouter des données d'événement - envoyez toutes les données d'événement que vous avez dans sGTM au document Firestore. Si les données d'événement et les données personnalisées ont le même champ, la valeur des données personnalisées sera utilisée pour ce champ. En d'autres termes, vous pouvez remplacer les valeurs des données d'événement par des données personnalisées. 

● Fusionner les clés du document - Si cette case est cochée, la balise fusionnera les clés du document Fire Store avec les données de sGTM. Sinon, la balise remplacera l'ensemble du document.

● Remplacer l'ID de projet Firebase - L'ID de projet est extrait de la variable d'environnement GOOGLE_CLOUD_PROJECT tant que le paramètre d'autorisation access_firestore pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT. Si le conteneur de serveur s'exécute sur Google Cloud, GOOGLE_CLOUD_PROJECT sera déjà attribué à l'ID du projet Google Cloud. 

● Ajouter l'horodatage - lorsque cette option est activée, la balise ajoutera l'horodatage en millisecondes au document.

Données personnalisées - utilisez-les pour remplacer les données d'événement.

Qu’est-ce qu’il faut pour configurer la variable Firestore WriterCopier le lien vers cette section

Si vous utilisez Stape pour l'hébergement sGTM, vous aurez besoin de ces éléments pour configurer la balise Firestore Writer:

1. Compte Google Service connecté à StapeCopier le lien vers cette section

1. Créez ou connectez-vous à la console Web Google Cloud Platform.

 2. Sélectionnez IAM & Admin -> Comptes de service -> Cliquez sur Créer un compte de service. 

google service account

3. Ajouter un compte -> Cliquez sur Suivant -> Sélectionnez Rôles. Le rôle BigQuery Data Editor pour l'accès à BigQuery ou le rôle Cloud Datastore User pour Firestore. 

Si vous souhaitez utiliser le compte de service Google uniquement pour BigQuery, choisissez uniquement le rôle BigQuery Data Editor. Idem pour Firestore. 

Lorsque vous arrivez à la 3ème étape, cliquez simplement sur Terminé. 

firestore google service account

4. Créer une clé privée -> Sélectionnez JSON -> sélectionnez Créer -> JSON sera téléchargé sur votre ordinateur. 

google service account

5. Ouvrez votre compte stape.io -> ouvrez le conteneur sGTM -> ouvrez l'onglet Power-ups -> Téléchargez le fichier JSON que vous avez téléchargé depuis Google Cloud -> Cliquez sur Enregistrer.

stape account

2. Compte FirebaseCopier le lien vers cette section

1. Ouvrez Firebase  -> cliquez sur Créer un projet -> Sélectionnez le même projet que celui que vous avez utilisé pour créer un compte de service Google -> cliquez sur Continuer -> Cliquez sur Ajouter Firebase à la troisième étape. 

2. Cliquez sur Construire -> Base de données Firestore.

firebase account

3. Cliquez sur Créer une base de données -> sélectionnez Démarrer en mode production -> Cliquez sur Suivant. 

database

4. Sélectionnez l'emplacement Cloud Firestore. Il doit correspondre à l'emplacement de votre serveur sGTM. Pour vérifier l'emplacement du serveur sGTM, accédez à votre compte  stape.io -> ouvrez le conteneur sGTM avec Firebase. 

cloud firestore

5. Cliquez sur Démarrer une collection. Ici, vous devrez définir Firebase Path qui sera récemment utilisé dans Google Spreadsheet Tag. J'ai ajouté le chemin Firebase à stape-demo/spreadsheet-auth -> Cliquez sur Enregistrer.

firestore account

Comment configurer la balise Firestore WriterCopier le lien vers cette section

La possibilité d'écrire et de lire des données vers/depuis Firestore offre de nombreux scénarios d'enrichissement des données. Vous stockez des données dans Firesotre à l'aide de la balise Firestore Writer et extrayez les données nécessaires à l'aide de la variable Firestore Lookup pour les envoyer dans des balises sGTM.

Dans cet exemple, je voudrais envoyer des données utilisateur à l'API conversion de Facebook lorsque ces informations ne sont pas disponibles dans les données d'événement sGTM. Pour y parvenir, je vais stocker les données utilisateur et l'identifiant client Google Analytics (_gid) dans Firebase lorsqu'un utilisateur effectue un achat. À l'aide de la variable de recherche Firestore et de _gid (en tant qu'identification unique de l'utilisateur), je vais extraire les détails de l'utilisateur sur l'événement page_view et enrichir l'événement Facebook CAPI aperçu.

2. Envoyez les données au conteneur du serveur GTM. Les deux envois de données les plus populaires vers sGTM sont Google Analytics 4 et Data Tag/Data Client.

3. Téléchargez la balise Firestore Writer depuis GitHub -> Ouvrez les sections de modèles dans le conteneur du serveur Google Tag Manager -> Cliquez sur Nouveau. 

4. Cliquez sur trois points dans le coin supérieur droit -> Cliquez sur Importer -> Sélectionnez le modèle de balise Firestore Writer que vous avez récemment téléchargé depuis GitHub -> Cliquez sur Enregistrer. 

firestore writer

5. Créez une nouvelle balise Firestore Writer -> Ajouter un chemin à Firebase. J'utiliserai l'achat de chemin, cette configuration créera une nouvelle collection appelée achat Firestore et tous les nouveaux achats seront ajoutés en tant que documents Firestore avec des noms aléatoires. Je vais choisir l'action Ajouter des données d'événement, ce qui signifie que la balise écrira toutes les données d'événement dans Firestore. J'ai également ajouté des données personnalisées pour ajouter user_email et user_id au document Firestore.

Créez une nouvelle balise Firestore Writer

6. Testez votre balise et vérifiez quelles données ont été ajoutées à Firestore. Dans mon cas, chaque fois qu'un utilisateur achète sur le site, un nouveau document est ajouté à Firestore avec les données d'événement sGTM.

Testez votre balise

7. Maintenant, créez la variable Firestore Lookup dans sGTM. J'ai sélectionné Collection Path & Query -> Spécifier le chemin de la collection -> Configurez votre condition. Dans mon cas, chaque fois que user_id (dans Firestore) correspond exactement à la variable de recherche gid (dans sGTM), la variable de recherche extrait la valeur user_email dans le document Firestore correspondant.

Firestore Lookup

8. Testez la variable de recherche Firestore dans l'aperçu sGTM.

Testez la variable de recherche Firestore 

9. Maintenant, je peux envoyer des données sGTM enrichies avec l'e-mail de l'utilisateur même si l'e-mail de l'utilisateur n'est pas disponible dans sGTM.

Conclusion:Copier le lien vers cette section

Il existe un nombre illimité de possibilités d'enrichissement des données à l'aide de Firestore. Comme vous pouvez l’observer, il est relativement facile d'écrire des données sGTM sur Firestore à partir d'un conteneur Google Tag Manager. Au final cette option peut être utilisée pour l'enrichissement des données du serveur.

Si vous avez besoin d'aide pour configurer le suivi côté serveur, n'hésitez pas à nous contacter. Nous pouvons vous aider à intégrer vos données dans Firestore et à en tirer des informations au plus court délais. Merci d'avoir lu!

Vous avez besoin d'aide pour configurer le balisage côté serveur?

Il suffit de répondre à quelques questions simples. Cliquez sur Obtenir de l'aide, remplissez le formulaire, et nous vous enverrons un devis.

Obtenir de l'aide

Hébergez votre serveur GTM chez Stape