Analytics

Créer un système de notification Slack pour les modifications de Google Tag Manager

Jusqu’à récemment, j’avais une fonctionnalité sur GTM Tools qui interrogeait le ou les conteneurs Google Tag Manager de l’utilisateur pour une version récemment publiée. Si une était trouvée, une notification était envoyée à une application Slack, qui la transférait vers un espace de travail et un canal au choix de l’utilisateur.

C’était bien, sauf pour le fait que l’interrogation des API GTM et Slack pour des dizaines et des dizaines de conteneurs est un porc total de ressources, et la seule façon dont je peux maintenir GTM Tools est qu’il n’a pas de fuites d’API comme ça.

J’ai donc déprécié la fonctionnalité. Me sentant mal à propos de la décision (et parce que j’ai reçu de nombreux commentaires selon lesquels les utilisateurs utilisaient réellement la fonctionnalité), je voulais partager un guide étape par étape sur la façon dont n’importe qui peut configurer un simple système de notification Slack pour les modifications dans un Google Tag Conteneur du gestionnaire.

Système de notification Slack pour les changements de GTM

Il s’agit d’une application Node.js exécutée sur Google Cloud Functions. Les fonctions Google Cloud sont des fonctions autonomes sans serveur sur Google Cloud Platform (GCP) qui peuvent être déclenchées avec différents stimuli, tels qu’une requête HTTP ou un message Pub/Sub. Pour nos besoins, c’est la technologie parfaite parce que ce que nous essayons de faire est une opération très simple qui doit être exécutée périodiquement avec un coût nul ou faible.

Table des matières

Table des matières

[+show] [–hide]

Comment ça fonctionne

Une fois qu’il est opérationnel, voici comment la solution fonctionne :

  1. Toutes les N minutes (vous pouvez choisir l’intervalle), un Tâche planifiée courir sur Planificateur de nuage enverra un message Pub/Sub.
  2. Ce message Pub/Sub déclenche la Fonction cloudqui héberge un serveur simple et sans serveur Node.js application.
  3. L’application télécharge un objet d’état à partir de Stockage en lignequi contient les informations les plus récentes (depuis le déclenchement précédent) sur chaque conteneur Google Tag Manager que vous avez spécifié dans la configuration de l’application*.
  4. Ensuite, l’application interroge le API Google Gestionnaire de balises pour récupérer des détails sur publié version de chaque conteneur.
  5. Si l’application détecte un changement dans le ID de version de la version publiée (par rapport à celle stockée dans l’objet d’état), il envoie un message à l’aide d’un Webhook entrant Slack.
  6. Ce webhook publie le message sur le canal approprié dans l’espace de travail Slack que vous avez choisi pour l’intégration.

Processus GTM Slack

Une fois que tout est terminé, l’application stocke le nouvel état mis à jour dans Google Cloud Storage et termine l’exécution.

Ce dont vous aurez besoin

Pour que tout fonctionne, vous aurez besoin d’un compte Google Cloud Platform. En plus de cela, vous aurez besoin de :

  • Accès à un espace de travail Slack, avec des autorisations pour ajouter un bot à un canal.
  • Une carte de crédit (cette solution sera très probablement gratuite, mais vous devrez quand même ajouter vos informations de facturation).
  • Un compte de facturation Google Cloud.
  • Autorisations pour ajouter un nouvel utilisateur READ au(x) conteneur(s) Google Tag Manager que vous souhaitez observer.

Étape 1 : Créer un nouveau projet Google Cloud Platform

La première chose à faire est de créer un nouveau projet dans GCP.

Vous pouvez le faire en suivant ce lien.

Donnez un nom à votre projet et assurez-vous de sélectionner un compte de facturation valide pour celui-ci.

Créer un nouveau projet GCP

La console se bloquera pendant un certain temps pendant la création de votre nouveau projet. Une fois le projet créé, vous pouvez le visiter via le sélecteur de projet.

Étape 2 : Configurer le projet GCP

Activer les API

La prochaine chose que vous devrez faire est d’activer les API dont l’application aura besoin. Vous devrez également créer un baquet dans Google Cloud Storage, mais nous y reviendrons après l’activation des API.

Tout en vous assurant que votre nouveau projet est sélectionné dans la console, tapez Cloud Functions API dans la barre de recherche et cliquez sur le résultat.

API Cloud Functions

Dans l’écran qui s’ouvre, cliquez sur Permettre.

Activer l'API

Faites de même pour Tag Manager API.

Créer un bucket Cloud Storage

Une fois que vous avez activé ces deux API, il est temps de créer une nouvelle baquet dans Google Cloud Storage. C’est ici que nous stockerons les Etat du conteneur GTM. Suivez ce lien pour accéder au navigateur de stockage.

Cliquez sur le grand bleu Créer un compartiment lien au milieu de l’écran.

Donnez au compartiment un nom global et unique. Je l’ai simplement nommé de la même manière que mon projet : simo-demo-gtm-slack.

Comme Type de lieuchoisir Région, et sélectionnez-en un qui est également disponible pour Cloud Functions. Par exemple, j’ai choisi europe-west1 comme région pour le compartiment Google Cloud Storage, et j’utiliserai éventuellement le même emplacement pour la fonction Cloud.

Emplacement CGV

Garder le classe de stockage par défaut (Standard).

Donjon contrôle d’accès par défaut (Grain fin).

Ne touchez pas le Réglages avancés.

Cliquez sur le bleu Créer bouton lorsque vous êtes prêt.

Prêt pour le bucket Cloud Storage

Assurez-vous de vous souvenir de votre nom du compartiment (simo-demo-gtm-slack dans mon exemple) – vous en aurez besoin lors de la configuration de la fonction Cloud.

Étape 3 : Créer une nouvelle application Slack

Créer l’application

Vous devez créer un nouveau Application Slack. Cette application se chargera de transférer les messages envoyés par la fonction Cloud vers votre espace de travail et votre canal Slack.

Pour créer une nouvelle application, visitez https://api.slack.com/ et cliquez sur le gros vert Commencer à construire bouton au milieu de l’écran.

Donnez à l’application un Nom (cela apparaîtra comme le nom du bot dans Slack). Choisir la espace de travail vous souhaitez ajouter ce bot.

Créer une application Slack

Lorsque vous avez terminé, cliquez sur Créer une application.

Créer un webhook entrant

Dans le tableau de bord qui s’ouvre, choisissez le Webhooks entrants Fonctionnalité.

Webhooks entrants

Dans l’écran de configuration qui s’ouvre, cliquez sur la bascule pour activer les webhooks.

Activer les webhooks

Ensuite, faites défiler l’écran de configuration et cliquez sur le bouton pour Ajouter un nouveau Webhook à l’espace de travail.

Ajouter un webhook à l'espace de travail

Vous devez maintenant choisir sur quel canal publier les messages, alors sélectionnez-en un dans la liste. Une fois terminé, cliquez sur Permettre.

Autoriser le bot à accéder au canal Slack

Vous devriez voir votre nouveau bot entrer en tant que nouvel utilisateur dans le canal.

Nouvelle intégration dans Slack

Dans la liste des webhooks de votre application, il devrait maintenant y avoir une nouvelle URL. Gardez cet onglet ouvert pendant un certain temps, car vous aurez bientôt besoin de l’URL.

URL de votre webhook

Étape 4 : Configurer la fonction Cloud

Presque fini!

Maintenant, téléchargez cette archive :

https://github.com/sahava/gtm-slack-integration/raw/master/function.zip

Décompressez l’archive dans un dossier sur votre ordinateur.

Modifier le fichier config.json

Renommez le config.sample.json pour config.json et ouvrez le fichier pour le modifier avec un éditeur de texte (ou tout ce que vous utilisez pour éditer les fichiers JSON normalement).

Archive décompressée

C’est ce que la valeur par défaut config.json ressemble à:

{   "gcs": {     "bucketName": "gcs-bucket-name",     "fileName": "filename.json"   },   "slackOutput": [{     "slackWebhookUrl": "https://hooks.slack.com/services/YYYY/XXXX/ZZZZ",     "gtmContainers": ["12345_23456", "12345_34567"]   }],   "verboseLogging": true }

Changer la bucketName valeur à ce que vous avez défini lors de la création du compartiment.

Met le fileName à ce que vous voulez stocker l’état GTM. À toutes fins utiles, cela fait très peu de différence. Vous pouvez simplement garder le nom comme filename.json si vous le souhaitez.

Ensemble slackWebhookUrl à l’URL du webhook entrant que vous avez créé au chapitre précédent.

Maintenant, remplissez le gtmContainers tableau avec toutes les combinaisons d’ID de compte Google Tag Manager et d’ID de conteneur dont vous souhaitez analyser les modifications. La syntaxe est accountID_containerIDdonc par défaut config.jsonil y a deux conteneurs :

  1. identifiant de compte 12345ID du conteneur 23456
  2. identifiant de compte 12345ID du conteneur 34567

Vous pouvez trouver l’ID de compte et l’ID de conteneur dans l’URL lors de la visite du conteneur. L’ID de compte est la première chaîne numérique que vous voyez et l’ID de conteneur est la seconde. Par exemple, voici l’un des conteneurs que je souhaite surveiller :

ID de conteneur d'ID de compte GTM

Et en voici une autre :

ID de conteneur d'un autre ID de compte

Ainsi, le tableau ressemblerait à ceci :

"gtmContainers": ["23019854_8060344", "4702258931_12269166"]

N’oubliez pas que vous avez besoin de suffisamment de droits d’accès sur ces conteneurs pour y ajouter un nouvel utilisateur !

Vous pouvez garder le verboseLogging réglage comme true. Ma finale config.json ressemble maintenant à ceci :

{   "gcs": {     "bucketName": "simo-demo-gtm-slack",     "fileName": "filename.json"   },   "slackOutput": [{     "slackWebhookUrl": "https://hooks.slack.com/services/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",     "gtmContainers": ["23019854_8060344", "4702258931_12269166"]   }],   "verboseLogging": true }

Sauver le fichier une fois terminé.

Ensuite, créez un nouveau ZIP *: FRANÇAIS archive contenant les fichiers suivants du dossier :

  • index.js
  • config.json
  • package.json

REMARQUE! Les fichiers doivent être dans le racine de l’archive ZIP, faites de même ne pas compresser un dossier avec les fichiers. Il ne devrait y avoir aucun dossier dans le ZIP.

Gardez cette archive à portée de main, vous en aurez besoin très prochainement.

Créer une nouvelle fonction Cloud

Accédez au tableau de bord Cloud Functions, puis cliquez sur l’icône Créer une fonction lien.

Donnez un nom à la fonction. Encore une fois, mon manque d’imagination me pousse à lui donner le même nom que mon projet et mon seau GCS : simo-demo-gtm-slack.

Garder le Mémoire allouée par défaut (256 Mo), puis choisissez Cloud Pub/Sub dans la liste des déclencheurs. Dans le Sujet menu déroulant, cliquez sur Créer un nouveau sujet.

Créer un nouveau sujet Pub/Sub

Définissez le nom du sujet sur gtm-slack-start et cliquez CRÉER.

Nouveau sujet Pub/Sub

Dans le Code source sélection, choisissez Téléchargement ZIP. Met le Durée pour Node.js 10..

Pour fichier zipCliquez sur Parcourir et localisez l’archive que vous venez de créer avec votre fichier modifié config.json y compris.

Nouveau fichier ZIP

Ensuite, cliquez sur Parcourir à côté de Seau de scènepuis choisissez le bucket que vous avez créé au début de ce didacticiel.

Godet de scène GCS

Google Cloud Platform utilisera ce bucket comme emplacement temporaire pour organiser les fichiers Cloud Functions.

Pour Fonction à exécutertaper: getGtmInfo.

Enfin, développez le Variables d’environnement, mise en réseau, délais d’attente, etc. et configurez vos fonctions Cloud pour qu’elles s’exécutent sur la même région dans laquelle vous avez créé le bucket Cloud Storage.

Ce n’est pas une étape nécessaire – vous pouvez configurer les fonctions Cloud pour qu’elles s’exécutent sur la région de votre choix. Cela rend l’application un peu plus fluide et peut réduire les coûts éventuels.

Réglages avancés

Enfin, cliquez sur le bleu Créer en bas de l’écran de configuration pour créer votre Cloud Function.

Si tout se passe bien, l’icône à côté du nom de la fonction devrait se transformer en une coche verte.

Fonction cloud prête

Étape 5 : Ajoutez un compte de service en tant qu’utilisateur à vos conteneurs GTM

Lorsque vous avez créé la fonction Cloud, GCP a automatiquement créé une compte de service pour vous.

Les comptes de service peuvent être utilisés pour un accès de serveur à serveur entre différentes propriétés Google. Dans ce cas, nous souhaitons que les Cloud Functions aient accès aux conteneurs Google Tag Manager que vous avez spécifiés dans le config.jsonnous devons donc ajouter un compte de service de votre projet en tant qu’utilisateur dans Google Tag Manager.

Pour trouver l’adresse e-mail du compte de service, accédez à https://console.cloud.google.com/iam-admin/serviceaccounts. Vous devriez voir un Compte de service par défaut App Engine ici, avec mail :

[email protected]

Si vous ne voyez pas de compte de service ici, vous devrez peut-être attendre environ 10 minutes après la création de la fonction et vous devrez peut-être actualiser la page.

Compte de service

Maintenant, copiez l’adresse e-mail et ajoutez-la en tant que nouveau LIRE utilisateur à tous les conteneurs que vous avez répertoriés dans config.json.

Utilisateur GTM

Une fois que vous avez effectué ces étapes, votre fonction Cloud est autorisée à communiquer avec ces conteneurs Google Tag Manager.

Étape 6 : testez-le

Tu peux maintenant test La mise en place.

Tout d’abord, visitez https://console.cloud.google.com/functions/list et cliquez sur le nom de votre fonction pour l’ouvrir.

Dans le tableau de bord qui s’ouvre, choisissez le ESSAI languette. Ici, cliquez TESTEZ LA FONCTION.

Testez la fonction cloud

Si tout se passe bien, vous devriez voir un tas d’entrées de journal comme celle-ci :

La fonction de test a fonctionné

Fait important, le fichier d’état a maintenant été créé. Ainsi, chaque fois que vous exécutez la fonction, si la version des conteneurs publiés est différente de celle stockée dans le fichier d’état, Slack en sera averti.

Essayons ça!

Allez-y et publier un de vos conteneurs. N’oubliez pas de nommer la version pour décrire ce qui a été modifié.

Version qui vient d'être publiée

Maintenant, tester à nouveau la fonction Cloud. Vous devriez voir un nouveau message Slack de votre intégration.

Le mou fonctionne

Si vous voyez ce message, alors tout fonctionne comme il se doit.

Étape 7 : Configurer Cloud Scheduler pour exécuter la fonction toutes les X minutes

La dernière étape consiste à automatiser l’interrogation. Vous pouvez utiliser Planificateur de nuage pour ça. Il s’agit essentiellement d’un service cron géré, que vous pouvez configurer pour déclencher la fonction Cloud toutes les cinq minutes, par exemple.

Tout d’abord, visitez https://console.cloud.google.com/cloudscheduler et cliquez sur CRÉER UN EMPLOI pour créer un nouvel emploi.

Dans le sélecteur d’emplacement, choisissez un emplacement aussi proche que possible de votre fonction Cloud. j’ai choisi europe-westcar il s’agit de la région principale dans laquelle mes buckets Cloud Function et Cloud Storage s’exécutent.

Emplacement du planificateur de cloud

Dans l’écran suivant, définissez les options suivantes.

  • Nom: Tout ce que vous voulez, j’ai choisi simo-demo-gtm-slack.
  • La description: Laissez vide.
  • La fréquence: Utilisez crontab.guru si vous ne savez pas comment définir des expressions de planification. j’ai choisi */5 * * * * pour déclencher la fonction toutes les cinq minutes.
  • Fuseau horaire: Non pertinent – choisissez le vôtre, par exemple.
  • Cible: Choisir Pub/sous-marin.
  • Sujet: gtm-slack-start.
  • Charge utile: true.

Tâche cron du planificateur

Cliquez sur CRÉER lorsqu’il est prêt.

Maintenant, publiez à nouveau une version de conteneur différente et attendez que le planificateur se déclenche. Comme j’ai choisi toutes les 5 minutescela signifie que je dois attendre un maximum de cinq minutes pour vérifier que la configuration fonctionne.

Résumé

Vous avez maintenant un Planificateur de nuage courir votre Fonction cloud périodiquement. Chaque fois que la fonction Cloud s’exécute, elle extrait l’objet d’état le plus récent de Stockage en lignepuis il interroge le API Google Gestionnaire de balises pour vérifier si l’un des conteneurs de l’objet d’état a une nouvelle version publiée.

Si une version publiée est trouvée, la fonction Cloud avertit votre Espace de travail lâche avec un message indiquant qu’une nouvelle version a été trouvée.

Vous pouvez suivre les coûts dans votre tableau de bord Google Cloud Platform. Avec deux conteneurs, mon installation coûte rien.

Notez que si vous ajoutez beaucoup plus de conteneurs à la configuration, non seulement vos coûts pourraient augmenter, mais vous devrez peut-être également augmenter le délai d’attente de 60 secondes à quelque chose de plus élevé à partir des paramètres de Google Cloud Functions. Assurez-vous de surveiller le cloud journaux!

Vous pouvez modifier index.js pour vérifier également d’autres propriétés. Par exemple, avec certaines programmations, vous pouvez informer Slack de Quel des modifications ont été faites. Une autre fonctionnalité utile serait de notifier si de nouveaux utilisateurs ont été ajoutés au conteneur, mais avant cela, vous devez vous assurer que vous pouvez le faire légalement, car vous devrez stocker la liste des utilisateurs dans l’objet d’état. Toi pouvait hachez cette liste pour atténuer cela, cependant.

Quoi qu’il en soit, faites-moi savoir dans les commentaires si vous avez des questions sur la configuration, ou si vous avez d’autres idées pour ce type de différence-machine!

Source : www.simoahava.com

Articles similaires

Laisser un commentaire

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

Bouton retour en haut de la page
Index