Configurare il tagging lato server con App Engine

Questa guida spiega come:

  • Esegui il provisioning di un server di tagging su Google Cloud Platform (GCP) App Engine.
  • Esegui l'upgrade del server di tagging per gestire il traffico in tempo reale.
  • Aumenta o diminuisci il numero di server che eseguono il contenitore Google Tag Manager.
  • Mantieni aggiornata la versione del server di tagging dopo il provisioning del server.

Prerequisiti

  1. Devi avere un account GCP. Se non ne hai uno, crea un nuovo account GCP.
  2. È necessario un account di fatturazione GCP. Se non ne hai uno, crea un account di fatturazione GCP (richiede il ruolo Billing Account Creator).
  3. Devi disporre dei ruoli Creatore progetto e Utente account di fatturazione. Scopri di più sull'aggiunta di ruoli.

1. Provisioning di un server

Per creare un nuovo server di tagging su un'istanza App Engine, devi:

  • Crea un nuovo contenitore del server in Tag Manager
  • Crea un nuovo progetto Google Cloud (GCP)
  • Esegui il provisioning di un nuovo server di tagging App Engine
  • Aggiungi l'URL del nuovo server di tagging al contenitore del server di Tag Manager

Crea un contenitore del server Google Tag Manager

  1. Apri Google Tag Manager.

  2. Nella riga dell'account, fai clic sul menu extra > Crea contenitore.

  3. Crea un nuovo contenitore del server.

  4. Fai clic sul pulsante di opzione "Esegui manualmente il provisioning del server di tagging". Prendi nota della configurazione del contenitore. Ti servirà per eseguire il provisioning del server.

Crea un nuovo progetto Google Cloud

Per creare un nuovo progetto Google Cloud per il server di tagging:

  1. Apri console Google Cloud.

  2. Crea un nuovo progetto Google Cloud.

  3. Assegna un nome al progetto. Per comodità, ti consigliamo di utilizzare l'ID contenitore. Questo nome viene utilizzato solo all'interno di Google Cloud.

  4. Prendi nota dell'ID progetto GCP, perché ti servirà per creare il server di tagging.

Esegui il provisioning di un nuovo server di tagging

Per creare il server di tagging:

  1. Apri Cloud Shell.

  2. Imposta il progetto GCP in Cloud Shell. Sostituisci project ID con l'ID del progetto GCP che hai annotato in precedenza:

    gcloud config set project project ID
    
  3. Crea il server di tagging seguendo lo script della shell. Imposta il tipo di deployment su testing.

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

Aggiungere l'URL del server di tagging a Tag Manager

  1. Apri Google Tag Manager.

  2. In Amministrazione > Impostazioni contenitore, fai clic su Aggiungi URL. Se non conosci l'URL del server, esegui questo comando in Cloud Shell:

    gcloud app browse
    

    Risultato: hai configurato un server di tagging e ne hai eseguito il provisioning con una configurazione testing. Ora puoi testare il tagging lato server.

Configurazione iniziale del server (testing)

La configurazione dei test è adatta per esplorare il prodotto inviando piccole quantità di traffico di test e utilizzando la funzionalità Anteprima in Tag Manager. Questa configurazione è una classe di istanze F1 di App Engine nell'ambiente standard e, nella maggior parte dei casi, non dovrai sostenere alcun costo.

2. Utilizzo di App Engine in produzione

Nella configurazione production, ogni server costa circa 40 $al mese (USD). Ogni server è un'istanza App Engine con 1 vCPU, 0, 5 GB di memoria e 10 GB di disco nell'ambiente flessibile.

Consulta la pagina Gestione dei costi di App Engine per comprendere la fatturazione di App Engine e come configurare gli avvisi di fatturazione. Ti consigliamo vivamente di configurare un avviso di fatturazione.

Consigliamo di eseguire un minimo di tre server per ridurre il rischio di perdita di dati in caso di interruzione del server. Tuttavia, puoi scegliere di eseguire un numero inferiore (o superiore) di server. Prevediamo che la scalabilità automatica di 3-6 server (il valore predefinito) gestirà 50-200 richieste al secondo. Le prestazioni dipendono dal numero di tag e dalla loro funzione.

Per configurare il server di tagging:

  1. Apri Cloud Shell di Google Cloud.
  2. Imposta il progetto Cloud Platform in Cloud Shell. Sostituisci project ID con l'ID del progetto GCP che hai annotato in precedenza:
    gcloud config set project project ID
  3. Per riconfigurare il server di tagging per un ambiente di produzione, esegui lo script di configurazione riportato di seguito. Esegui le seguenti attività:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Modifica il tipo di deployment in production.
    2. Configura server aggiuntivi per gestire il traffico di produzione. Ti consigliamo un minimo di tre server.

(Facoltativo) Disattiva il logging

Logging delle richieste

Per impostazione predefinita, App Engine registra informazioni su ogni singola richiesta (ad es. percorso della richiesta, parametri di query e così via) che riceve. Se il tuo server di tagging gestisce molte richieste al mese (ad es. più di 1 milione), questi messaggi di log potrebbero comportare costi di logging significativi. Per ridurre o eliminare i costi di logging, ti consigliamo di disattivare la registrazione delle richieste di App Engine.

Per disattivare il logging delle richieste di App Engine:

  1. Nella piattaforma Google Cloud, apri Logs Router. Assicurati di trovarti nel progetto che corrisponde al tuo ID contenitore:
    Screenshot del selettore di progetti GCP, che mostra un ID contenitore Tag Manager di esempio.
  2. Per la riga Tipo: Bucket Cloud Logging, Nome: _Default, seleziona il menu extra, quindi fai clic su Modifica sink.
  3. In Destinazione sink, seleziona il bucket di log _Default.
  4. In Scegli i log da includere nel sink, aggiungi una nuova riga. Inserisci la seguente regola nel filtro di inclusione esistente:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Per disattivare la registrazione anche dal bilanciamento del carico, aggiungi una nuova riga e inserisci la seguente regola al filtro di inclusione esistente:

    NOT LOG_ID("requests")
    
  6. Aggiorna il sink per applicare le modifiche. Ora le richieste App Engine verranno escluse dalla registrazione.

  7. Verifica che non vengano visualizzate nuove richieste nei log di Esplora log.

Logging della console

Il server di tagging, i client o i tag in un contenitore possono registrare messaggi nella console che potrebbero comportare costi di logging. Per ridurre o eliminare gli addebiti per la registrazione, puoi disattivare i messaggi di log della console indesiderati.

Identifica i log della console indesiderati:

  1. In GCP, apri Esplora log.
  2. Cerca eventuali messaggi di log indesiderati provenienti dai tuoi tag. Ad esempio:

    Un tag potrebbe inviare i seguenti log:

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

    Cerca i messaggi di log corrispondenti nel campo textPayload:
    Screenshot di Esplora log di GCP, che mostra log di esempio.

Per disattivare il messaggio di log della console:

  1. Nella piattaforma Google Cloud, apri Logs Router. Assicurati di trovarti nel progetto che corrisponde all'ID contenitore:
    Screenshot del selettore di progetti GCP, che mostra un ID contenitore Tag Manager di esempio.
  2. Per la riga Tipo: Bucket Cloud Logging, Nome: _Default, seleziona il menu extra, quindi fai clic su Modifica sink.
  3. In Destinazione sink, seleziona il bucket di log _Default.
  4. In Scegli i log da includere nel sink, aggiungi una nuova riga. Inserisci la seguente regola nel filtro di inclusione esistente:

    NOT textPayload:"Custom message:"
    

    Per i log della console, sostituisci il testo Custom message: con una sottostringa del log della console che vuoi disattivare. Per filtri più elaborati, utilizza il linguaggio di query di Logging.

  5. Aggiorna il sink per applicare le modifiche. Il messaggio logToConsole corrispondente deve essere escluso dalla registrazione.

  6. Verifica che non vengano visualizzati nuovi messaggi di log della console in Esplora log.

3. Mappa il deployment sul tuo dominio personalizzato

Il deployment del tagging lato server predefinito è ospitato su un dominio App Engine. Ti consigliamo di modificare il deployment in modo da utilizzare un sottodominio del tuo sito web.

Mappa il sottodominio del tuo sito web sul server di tagging.

4. Aggiungere l'URL del server a Google Tag Manager

Ora che hai un server, devi assicurarti che Google Tag Manager sappia che deve utilizzarlo.

  1. Apri Google Tag Manager.

  2. Fai clic sul contenitore del server che vuoi indirizzare al server di tagging.

  3. Apri le impostazioni del contenitore del server nella scheda Amministrazione > Impostazioni contenitore.

  4. Fai clic su Aggiungi URL e incolla l'URL del server.

  5. Salva e torna all'area di lavoro.

5. Convalida

Ora che hai configurato il server di tagging, assicurati che funzioni come previsto.

Verifica dell'interfaccia utente

Nel workspace di Tag Manager, fai clic sul pulsante Anteprima. Se la pagina di anteprima viene caricata, significa che tutto è configurato correttamente.

Verifica dell'API

Puoi anche verificare che il server risponda ai controlli di integrità utilizzando la relativa API:

  1. Copia l'URL del contenitore del server da Amministrazione > Impostazioni contenitore.
  2. Apri una nuova scheda del browser.
  3. Incolla l'URL e aggiungi /healthy al percorso. Ad esempio: https://www.example.com/metrics/healthy
  4. Se il servizio funziona, dovresti visualizzare il testo ok nella pagina.

Se mancano richieste per un prodotto specifico, verifica che venga attivato un evento. Il comando config inizializza il prodotto, ma i dati vengono trasmessi solo quando viene chiamato un event.

Per ulteriori informazioni sulle best practice per la verifica del tagging lato server, vedi Configurazione del dominio personalizzato.

Visualizzare l'anteprima di più URL

Se hai mappato più domini a un singolo server di tagging, assicurati che ogni URL venga aggiunto alle impostazioni del contenitore.

Se hai fornito più URL, tutti i percorsi (la stringa dopo il nome di dominio) devono corrispondere.

Works Non funziona
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Se vengono aggiunti più URL, vedrai un'icona accanto al pulsante Anteprima che ti consente di selezionare l'URL di cui visualizzare l'anteprima.

Aggiornare la versione del server di tagging

I nuovi aggiornamenti del server di tagging contengono correzioni di vulnerabilità della sicurezza e nuove funzionalità. Ti consigliamo di aggiornare il server di tagging almeno per ogni rilascio di versione principale (ad es. l'upgrade dalla versione 1.x.x alla 2.x.x) quando Tag Manager ti notifica di eseguire l'aggiornamento.

Per aggiornare il server di tagging, esegui di nuovo lo script di configurazione utilizzando le stesse impostazioni che hai utilizzato in precedenza. Le impostazioni esistenti sono impostate per impostazione predefinita.

Per aggiornare il server di tagging:

  1. Apri Cloud Shell di Google Cloud.
  2. Imposta il progetto Cloud Platform in Cloud Shell. Sostituisci project ID con l'ID del progetto GCP che hai annotato in precedenza:
    gcloud config set project project ID
  3. Esegui lo script di configurazione utilizzando le stesse impostazioni che hai utilizzato in precedenza. Le impostazioni esistenti sono impostate per impostazione predefinita.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Per verificare che l'aggiornamento sia riuscito:

  1. Nel contenitore del server, fai clic sul pulsante Anteprima per avviare una nuova sessione di debug e inviare una richiesta in una scheda separata.
  2. Nel riepilogo, seleziona la scheda Console e assicurati che non siano presenti messaggi che ti chiedono di aggiornare il server di tagging.

Tag Manager potrebbe mostrare messaggi che ti chiedono di aggiornare il server di tagging fino a un giorno dopo l'aggiornamento del server. Tuttavia, la pagina di anteprima mostrerà un messaggio aggiornato sulla versione del server di tagging.

Risolvere i problemi di timeout del deployment di produzione

Quando esegui lo script di configurazione per creare o riconfigurare il server di tagging, lo script potrebbe scadere. Ci sono diversi motivi per cui ciò potrebbe accadere. I due più comuni sono:

  1. I service account hanno autorizzazioni errate: i service account Compute Engine e App Engine sono responsabili del deployment e della manutenzione del deployment di produzione. Per impostazione predefinita, sono preconfigurati con le autorizzazioni appropriate. Tuttavia, in alcuni casi, i criteri di un'organizzazione potrebbero causare errori.

    1. Vai alla pagina IAM e amministrazione nella barra di navigazione a sinistra della console Google Cloud.
    2. Trova il service account Compute Engine <project_number>-compute@developer.gserviceaccount.com e il service account App Engine <project_name>@appspot.gserviceaccount.com.
    3. Entrambi i service account devono disporre del ruolo Editor. Se uno dei due account non dispone del ruolo Editor, aggiornalo facendo clic sull'icona a forma di matita a destra dell'account, facendo clic sul menu a discesa del ruolo esistente, scorrendo verso l'alto e facendo clic su Progetto, poi su Editor.
  2. Quota insufficiente: il deployment di produzione utilizza la quota di Compute Engine. Se il progetto non dispone di quota sufficiente, il deployment potrebbe scadere durante il tentativo di provisioning delle risorse.

    1. Vai alla pagina IAM e amministrazione nella barra di navigazione a sinistra della console Google Cloud, quindi fai clic sulla scheda Quote nella barra di navigazione a sinistra.
    2. Nella parte superiore della pagina, fai clic sulla casella di testo Filtra tabella e digita Compute Engine API. Fai clic sull'unico risultato.
    3. Verifica che tutti gli stati delle quote rientrino nel limite o abbiano un segno di spunta verde.
    4. Trova e fai clic su CPU. Verifica che l'utilizzo attuale più il numero di istanze di cui viene eseguito il deployment sia ancora inferiore al limite per la regione di deployment.