Configurer le taggage côté serveur avec App Engine

Ce guide vous explique comment:

  • Provisionner un serveur de taggage sur Google Cloud Platform (GCP) App Engine
  • Mettez à niveau le serveur de taggage pour gérer le trafic en temps réel.
  • Augmentez ou diminuez 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 de créateur de projet et d'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, procédez comme suit:

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

Créer un conteneur serveur Google Tag Manager

  1. Ouvrez Google Tag Manager.

  2. Sur la ligne du compte, cliquez sur le menu à développer, puis sur 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, procédez comme suit:

  1. Ouvrez la console Google Cloud.

  2. Créez un projet GCP.

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

  4. Notez l'ID de projet GCP, car vous en aurez besoin pour créer le 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 maintenant tester le taggage côté serveur.

Configuration initiale du serveur (testing)

La configuration de test permet d'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, aucuns frais ne vous seront facturés.

2. Utiliser App Engine en production

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

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

Nous vous recommandons d'exécuter un minimum de trois serveurs pour réduire le risque de perte de données en cas de panne du serveur. Cependant, vous pouvez choisir d'exécuter moins de serveurs, voire plus. Un autoscaling de 3 à 6 serveurs (valeur par défaut) devrait traiter 50 à 200 requêtes par seconde. Les performances dépendent du nombre de balises et de leur fonction.

Pour configurer votre serveur de taggage, procédez comme suit:

  1. Ouvrez Cloud Shell dans Google Cloud Platform.
  2. Définissez le projet Cloud Platform 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. Pour reconfigurer le serveur de taggage 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 un minimum de trois serveurs.

Facultatif: Désactiver la journalisation

Demander la journalisation

Par défaut, App Engine enregistre des informations sur chaque requête reçue (chemin de requête, paramètres de requête, etc.). 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, procédez comme suit:

  1. Dans Google Cloud Platform, ouvrez le routeur de journaux. Assurez-vous de vous trouver dans le projet correspondant à l'ID de votre conteneur:
    capture d'écran du sélecteur de projet GCP, montrant un exemple d'ID de conteneur Tag Manager
  2. Dans le champ Type: Bucket Cloud Logging et 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. Ajoutez la règle suivante au 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 nouvelle ligne et saisissez la règle suivante dans le filtre d'inclusion existant:

    NOT LOG_ID("requests")
    
  6. Mettez à jour le récepteur pour appliquer les modifications. Les requêtes App Engine sont maintenant 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.

Identifiez 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, montrant 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 de vous trouver dans le projet correspondant à l'ID de votre conteneur:
    capture d'écran du sélecteur de projet GCP, montrant un exemple d'ID de conteneur Tag Manager
  2. Dans le champ Type: Bucket Cloud Logging et 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. Ajoutez la règle suivante au filtre d'inclusion existant:

    NOT textPayload:"Custom message:"
    

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

  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 l'explorateur de journaux.

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

Le déploiement par défaut de 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 utiliser votre serveur.

  1. Ouvrez Google Tag Manager.

  2. Cliquez sur le conteneur serveur que vous souhaitez faire pointer 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 et collez l'URL de votre serveur.

  5. Enregistrer et revenir à votre espace de travail.

5. Données

Maintenant que vous avez configuré votre serveur de taggage, vérifiez 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 se charge, cela signifie que tout est correctement configuré.

Prévisualiser plusieurs URL

Si vous avez mappé plusieurs domaines à 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 (la chaîne après le nom de domaine) doivent correspondre.

Œuvres 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, vous verrez une icône à côté du bouton Aperçu, qui 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 corrections de failles de sécurité et de nouvelles fonctionnalités. Nous vous recommandons de mettre à jour votre serveur de taggage pour chaque version majeure (par exemple, de la version 1.x.x à la version 2.x.x) lorsque Tag Manager vous invite à le faire.

Pour mettre à jour votre serveur de taggage, exécutez à nouveau le script de configuration avec les mêmes paramètres que ceux 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 du 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 ceux utilisés 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 la section "Summary" (Résumé), sélectionnez l'onglet Console (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 affichera un message à jour sur la version du serveur de taggage.

Résoudre les problèmes liés aux délais 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. Cela peut se produire pour plusieurs raisons. Les deux plus courants sont les suivants:

  1. Les comptes de service disposent d'autorisations incorrectes : les comptes de service Compute Engine et App Engine sont responsables du déploiement et de la maintenance du déploiement de 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 entraîner des erreurs.

    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, mettez à jour le rôle. Pour ce faire, cliquez sur l'icône en forme de crayon située à droite du compte, puis sur le menu déroulant du rôle existant. Faites défiler la page vers le haut et cliquez sur Projet, puis sur Éditeur.
  2. Quota insuffisant : le déploiement en production utilise 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 indiquant Filter table (Filtrer le tableau) et saisissez Compute Engine API. Cliquez sur le seul résultat.
    3. Vérifiez que tous les états de quota sont dans la limite ou qu'une coche verte s'affiche.
    4. Recherchez l'option 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.