Configurer le taggage côté serveur avec App Engine

Ce guide vous explique comment:

  • Provisionnez un serveur de taggage sur Google Cloud Platform (GCP) App Engine.
  • Mettez à niveau le serveur de taggage pour gérer le trafic en direct.
  • Augmentez ou réduisez le nombre de serveurs qui exécutent votre conteneur Google Tag Manager.
  • Mettez à jour la version de votre serveur de taggage après l'avoir provisionné.

Prérequis

  1. Vous devez disposer d'un compte GCP. Si vous n'en avez pas, créez un compte GCP.
  2. Vous devez disposer d'un compte de facturation GCP. Si vous n'en avez pas, créez un compte de facturation GCP (requiert le rôle Créateur de compte de facturation).
  3. Vous devez disposer des rôles Créateur de projet et Utilisateur de compte de facturation. En savoir plus sur l'ajout de rôles

1. Provisionner un serveur

Pour créer un serveur de taggage sur une instance App Engine, vous devez:

  • Créer un conteneur de serveur dans Tag Manager
  • Créer un projet Google Cloud (GCP)
  • Provisionner un nouveau serveur de taggage App Engine
  • Ajouter l'URL du nouveau serveur de taggage au conteneur serveur Tag Manager

Créer un conteneur de serveur Google Tag Manager

  1. Ouvrez Google Tag Manager.

  2. Sur la ligne du compte, cliquez sur le menu à développer > Créer un conteneur.

  3. Créez un conteneur serveur.

  4. Cochez la case d'option "Provisionner manuellement le serveur de taggage". Notez la configuration du conteneur. Vous en aurez besoin pour provisionner votre serveur.

Créer un projet GCP

Pour créer un projet GCP pour votre serveur de taggage:

  1. Ouvrez la console Google Cloud.

  2. Créez un projet GCP.

  3. Attribuez un nom à votre projet. Nous vous recommandons d'utiliser votre ID de conteneur pour plus de commodité. Ce nom n'est utilisé que dans GCP.

  4. Notez l'ID de projet GCP, car vous en aurez besoin pour créer votre serveur de taggage.

Provisionner un nouveau serveur de taggage

Pour créer votre serveur de taggage:

  1. Ouvrez Cloud Shell.

  2. Définissez le projet GCP dans Cloud Shell. Remplacez project ID par l'ID du projet GCP que vous avez noté précédemment:

    gcloud config set project project ID
    
  3. Créez votre serveur de taggage en suivant le script shell. Définissez le type de déploiement sur testing.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Ajouter l'URL du serveur de taggage à Tag Manager

  1. Ouvrez Google Tag Manager.

  2. Dans Administration > Paramètres du conteneur, cliquez sur Ajouter une URL. Si vous ne connaissez pas l'URL de votre serveur, exécutez la commande suivante dans Cloud Shell:

    gcloud app browse
    

    Résultat: vous avez configuré un serveur de taggage et l'avez provisionné avec une configuration testing. Vous pouvez désormais tester le taggage côté serveur.

Configuration initiale du serveur (testing)

La configuration de test est adaptée pour explorer le produit en envoyant de petites quantités de trafic de test et en utilisant la fonctionnalité d'aperçu dans Tag Manager. Cette configuration est une classe d'instance F1 App Engine dans l'environnement standard. Dans la plupart des cas, vous ne serez pas facturé.

2. Utiliser App Engine en production

Dans la configuration production, chaque serveur coûte environ 40 $ / mois (USD). Chaque serveur est une instance App Engine avec 1 processeur virtuel, 0, 5 Go de mémoire et 10 Go de disque dans l'environnement flexible.

Consultez la section Gérer les coûts App Engine pour comprendre la facturation App Engine et savoir comment configurer des alertes de facturation. Nous vous recommandons vivement de configurer une alerte de facturation.

Nous vous recommandons d'exécuter au moins trois serveurs pour réduire le risque de perte de données en cas d'indisponibilité d'un serveur. Toutefois, vous pouvez choisir d'exécuter moins (ou plus) de serveurs. L'autoscaling de trois à six serveurs (valeur par défaut) devrait gérer entre 50 et 200 requêtes par seconde. Les performances dépendent du nombre de balises et de leur fonction.

Pour configurer votre serveur d'ajout de balises:

  1. Ouvrez Cloud Shell dans Google Cloud Platform.
  2. Définissez le projet Cloud Platform dans Cloud Shell. Remplacez project ID par l'ID de projet GCP que vous avez noté précédemment :
    gcloud config set project project ID
  3. Pour reconfigurer le serveur d'ajout de tags pour un environnement de production, exécutez le script de configuration ci-dessous. Effectuez les tâches suivantes :
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Définissez le type de déploiement sur production.
    2. Configurez des serveurs supplémentaires pour diffuser le trafic de production. Nous vous recommandons d'utiliser au moins trois serveurs.

Facultatif: Désactiver la journalisation

Journalisation des requêtes

Par défaut, App Engine consigne des informations sur chaque requête (par exemple, le chemin de requête, les paramètres de requête, etc.) qu'il reçoit. Si votre serveur de taggage traite un grand nombre de requêtes par mois (par exemple, plus d'un million), ces messages de journal peuvent entraîner des frais de journalisation importants. Pour réduire ou éliminer les frais de journalisation, nous vous recommandons de désactiver la journalisation des requêtes App Engine.

Pour désactiver la journalisation des requêtes App Engine:

  1. Dans Google Cloud Platform, ouvrez le routeur de journaux. Assurez-vous d'être dans le projet correspondant à votre ID de conteneur:
    Capture d'écran du sélecteur de projet GCP, montrant un exemple d'ID de conteneur Tag Manager.
  2. Pour la ligne Type: Bucket Cloud Logging, Nom: _Default, sélectionnez le menu à développer, puis cliquez sur Modifier le récepteur.
  3. Sous Destination du récepteur, sélectionnez le bucket de journaux _Default.
  4. Sous Choisissez des journaux à inclure dans le récepteur, ajoutez une ligne. Saisissez la règle suivante dans le filtre d'inclusion existant:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Pour désactiver également la journalisation à partir de l'équilibreur de charge, ajoutez une ligne et saisissez la règle suivante dans le filtre d'inclusion existant:

    NOT LOG_ID("requests")
    
  6. Mettre à jour le récepteur pour appliquer les modifications. Les requêtes App Engine seront désormais exclues de la journalisation.

  7. Vérifiez qu'aucune nouvelle requête n'apparaît dans les journaux de l'explorateur de journaux.

Journalisation de la console

Le serveur de taggage, les clients ou les balises d'un conteneur peuvent consigner des messages dans la console, ce qui peut entraîner des frais de journalisation. Pour réduire ou éliminer les frais de journalisation, vous pouvez désactiver les messages de journal indésirables de la console.

Identifier les journaux de console indésirables:

  1. Dans GCP, ouvrez l'explorateur de journaux.
  2. Recherchez les messages de journal indésirables provenant de vos balises. Exemple :

    Une balise peut envoyer les journaux suivants:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    Recherchez les messages de journal correspondants dans le champ textPayload:
    capture d'écran de l'explorateur de journaux GCP affichant des exemples de journaux.

Pour désactiver le message de journal de la console:

  1. Dans Google Cloud Platform, ouvrez le routeur de journaux. Assurez-vous que vous vous trouvez dans le projet qui correspond à votre ID de conteneur:
    Capture d'écran du sélecteur de projet GCP, montrant un exemple d'ID de conteneur Tag Manager.
  2. Pour la ligne Type: Bucket Cloud Logging, Nom: _Default, sélectionnez le menu à développer, puis cliquez sur Modifier le récepteur.
  3. Sous Destination du récepteur, sélectionnez le bucket de journaux _Default.
  4. Sous Choisissez des journaux à inclure dans le récepteur, ajoutez une ligne. Saisissez la règle suivante dans le filtre d'inclusion existant:

    NOT textPayload:"Custom message:"
    

    Pour vos journaux de console, remplacez le texte Custom message: par une sous-chaîne du journal de console que vous souhaitez désactiver. Pour des filtres plus élaborés, utilisez le langage de requête Logging.

  5. Mettez à jour le récepteur pour appliquer les modifications. Le message logToConsole correspondant doit être exclu de la journalisation.

  6. Vérifiez qu'aucun nouveau message de journal de la console n'apparaît dans la visionneuse de journaux.

3. Mappez le déploiement sur votre domaine personnalisé

Le déploiement par défaut du taggage côté serveur est hébergé sur un domaine App Engine. Nous vous recommandons de modifier le déploiement pour utiliser un sous-domaine de votre site Web.

Mappez le sous-domaine de votre site Web à votre serveur de taggage.

4. Ajouter l'URL du serveur à Google Tag Manager

Maintenant que vous disposez d'un serveur, vous devez vous assurer que Google Tag Manager sait qu'il doit l'utiliser.

  1. Ouvrez Google Tag Manager.

  2. Cliquez sur le conteneur serveur que vous souhaitez rediriger vers votre serveur de taggage.

  3. Ouvrez les paramètres de votre conteneur serveur dans l'onglet Admin > Paramètres du conteneur.

  4. Cliquez sur Ajouter une URL, puis collez l'URL de votre serveur.

  5. Enregistrez et revenez à votre espace de travail.

5. Validation

Maintenant que vous avez configuré votre serveur d'ajout de tags, assurez-vous qu'il fonctionne comme prévu. Dans votre espace de travail Tag Manager, cliquez sur le bouton Prévisualiser. Si la page d'aperçu s'affiche, tout est correctement configuré.

Prévisualiser plusieurs URL

Si vous avez mappé plusieurs domaines sur un seul serveur de taggage, assurez-vous que chaque URL est ajoutée aux paramètres du conteneur.

Si vous avez fourni plusieurs URL, tous les chemins (chaîne après le nom de domaine) doivent correspondre.

Fonctionnement Ne fonctionne pas
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Si vous ajoutez plusieurs URL, une icône s'affiche à côté du bouton Aperçu. Elle vous permet de sélectionner l'URL à prévisualiser.

Mettre à jour la version du serveur de taggage

Les nouvelles mises à jour du serveur de taggage contiennent des correctifs de failles de sécurité et de nouvelles fonctionnalités. Nous vous recommandons de mettre à jour votre serveur de taggage au moins pour chaque version majeure (par exemple, de la version 1.x.x à la version 2.x.x) lorsque Tag Manager vous en informe.

Pour mettre à jour votre serveur de taggage, exécutez à nouveau le script de configuration avec les mêmes paramètres que ceux que vous avez utilisés précédemment. Les paramètres existants sont définis par défaut.

Pour mettre à jour votre serveur de taggage:

  1. Ouvrez Cloud Shell dans Google Cloud Platform.
  2. Définissez le projet Cloud Platform dans Cloud Shell. Remplacez project ID par l'ID de projet GCP que vous avez noté précédemment :
    gcloud config set project project ID
  3. Exécutez le script de configuration avec les mêmes paramètres que précédemment. Les paramètres existants sont définis par défaut.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Pour vérifier que la mise à jour a bien été effectuée:

  1. Dans votre conteneur serveur, cliquez sur le bouton Preview (Aperçu) pour démarrer une nouvelle session de débogage et envoyer une requête dans un onglet distinct.
  2. Dans le résumé, sélectionnez l'onglet Console et assurez-vous qu'aucun message ne vous demande de mettre à jour le serveur de taggage.

Tag Manager peut afficher des messages vous demandant de mettre à jour votre serveur de taggage jusqu'à une journée après la mise à jour du serveur. Toutefois, la page d'aperçu affiche un message à jour sur la version du serveur de taggage.

Résoudre les problèmes de délai avant expiration du déploiement en production

Lorsque vous exécutez le script de configuration pour créer ou reconfigurer le serveur de taggage, le script peut expirer. Plusieurs raisons peuvent expliquer cela. Les deux plus courantes sont les suivantes:

  1. Les comptes de service ne disposent pas des autorisations appropriées : les comptes de service Compute Engine et App Engine sont chargés de déployer et de gérer le déploiement en production. Par défaut, ils sont préconfigurés avec les autorisations appropriées. Toutefois, dans certains cas, la stratégie d'une organisation peut les rendre incorrectes.

    1. Accédez à la page IAM et administration dans la barre de navigation de gauche de la console Google Cloud.
    2. Recherchez le compte de service Compute Engine <project_number>-compute@developer.gserviceaccount.com et le compte de service App Engine <project_name>@appspot.gserviceaccount.com.
    3. Les deux comptes de service doivent disposer du rôle Editor. Si l'un des comptes ne dispose pas du rôle Editor, modifiez-le en cliquant sur l'icône en forme de crayon à droite du compte, sur le menu déroulant du rôle existant, en faisant défiler la page vers le haut, puis sur Project (Projet), puis sur Editor (Éditeur).
  2. Quota insuffisant : le déploiement de production consomme le quota Compute Engine. Si le projet ne dispose pas d'un quota suffisant, le déploiement peut expirer lors de la tentative de provisionnement des ressources.

    1. Accédez à la page IAM et administration dans la barre de navigation de gauche de la console Google Cloud, puis cliquez sur l'onglet Quotas dans la barre de navigation de gauche.
    2. En haut de la page, cliquez sur la zone de texte Filtrer le tableau, puis saisissez Compute Engine API. Cliquez sur le seul résultat.
    3. Vérifiez que tous les états des quotas sont dans la limite ou qu'une coche verte est affichée.
    4. Recherchez Processeurs et cliquez dessus. Vérifiez que l'utilisation actuelle et le nombre d'instances en cours de déploiement restent inférieurs à la limite définie pour la région de déploiement.