Configurar a inclusão de tags no servidor com o App Engine

Neste guia, você vai aprender a:

  • Provisionar um servidor de tags no App Engine do Google Cloud Platform (GCP)
  • Fazer upgrade do servidor de tags para lidar com o tráfego em tempo real
  • Aumentar ou diminuir o número de servidores que executam seu contêiner do Gerenciador de tags do Google
  • Manter a versão do servidor de tags atualizada após o provisionamento do servidor

Pré-requisitos

  1. Você precisa de uma conta do GCP. Caso ainda não tenha, crie uma.
  2. É necessário ter uma conta de faturamento do GCP. Se não tiver, crie uma (requer papel de Criador da conta de faturamento).
  3. Você precisa ter os papéis de Criador de projetos e de Usuário da conta de faturamento. Saiba mais sobre como adicionar papéis.

1. Provisionar um servidor

Para criar um novo servidor de tags em uma instância do App Engine, você precisa:

  • Criar um novo contêiner do servidor no Gerenciador de tags
  • Criar um novo projeto do Google Cloud (GCP)
  • Provisionar um novo servidor de tags do App Engine
  • Adicionar o URL do novo servidor de tags do Gerenciador de tags

Criar um contêiner de servidor para o Gerenciador de tags do Google

  1. Abra o Gerenciador de tags do Google.

  2. Na linha da conta, clique no menu flutuante > Criar contêiner.

  3. Crie um novo contêiner do servidor.

  4. Clique no botão de opção "Provisionar manualmente o servidor de tags". Observe a configuração do contêiner. Você precisa dela para provisionar seu servidor.

Criar um novo projeto do GCP

Para criar um novo projeto do GCP no seu servidor de tags:

  1. Abra o console do Google Cloud.

  2. Crie um novo projeto do GCP.

  3. Escolha o nome do projeto. Recomendamos usar o ID do contêiner. Esse nome é utilizado somente no GCP.

  4. Anote o ID do projeto do GCP, porque você vai precisar dele para criar seu servidor de tags.

Provisionar um novo servidor de tags

Para criar o servidor de tags:

  1. Abra o Cloud Shell.

  2. Defina o projeto do GCP no Cloud Shell. Substitua project ID pelo ID do projeto do GCP que você anotou:

    gcloud config set project project ID
    
  3. Crie seu servidor de tags seguindo o script de shell. Defina o tipo de implantação como testing.

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

Adicionar o URL do servidor de tags ao Gerenciador de tags

  1. Abra o Gerenciador de tags do Google.

  2. Em Administrador > Configurações do contêiner, clique em Adicionar URL. Se você não souber o URL do servidor, execute o seguinte comando no Cloud Shell:

    gcloud app browse
    

    Resultado: você configurou um servidor de tags e o provisionou com uma configuração testing. Agora é possível testar a inclusão de tags no servidor.

Configuração inicial do servidor (testing)

A configuração de teste é útil para explorar o produto enviando pequenas quantidades de tráfego de teste e usando o recurso em fase de pré-lançamento no Gerenciador de tags. Essa configuração é uma classe de instância F1 do App Engine no ambiente padrão, e, na maioria dos casos, você não vai receber cobranças.

2. Como usar o App Engine na produção

Na configuração de production, cada servidor custa aproximadamente US$ 40/mês. Um servidor é uma instância do App Engine com 1 vCPU, 0,5 GB de memória e 10 GB de disco no ambiente flexível.

Leia Como gerenciar os custos do App Engine para entender o faturamento do serviço e como configurar alertas. É altamente recomendável definir um alerta de faturamento.

Recomendamos executar pelo menos três servidores para diminuir o risco de perda de dados em caso de interrupções. No entanto, você pode executar menos ou mais servidores. Esperamos que o escalonamento automático de 3 a 6 servidores, que é o padrão, processe de 50 a 200 solicitações por segundo. A performance depende do número de tags e da função delas.

Para configurar o servidor de tags:

  1. Abra o Cloud Shell do Google Cloud Platform.
  2. Defina o projeto do Cloud Platform no Cloud Shell. Substitua project ID pelo ID do projeto do GCP que você anotou:
    gcloud config set project project ID
  3. Para reconfigurar o servidor de tags de um ambiente de produção, execute o script de configuração abaixo. Conclua as seguintes tarefas:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Mude o tipo de implantação para production.
    2. Configure mais servidores para veicular o tráfego de produção. Recomendamos no mínimo três.

Opcional: desativar a geração de registros

Geração de registros de solicitações

Por padrão, o App Engine registra informações sobre cada solicitação recebida, por exemplo, caminho da solicitação, parâmetros de consulta etc. Se o servidor de tags processar muitas solicitações por mês (por exemplo, mais de um milhão), essas mensagens poderão gerar cobranças de registro significativas. Para reduzir ou eliminar as cobranças, recomendamos desativar a geração de registros de solicitações do App Engine.

Saiba como fazer isso:

  1. No Google Cloud Platform, abra o Roteador de registros. Verifique se você está no projeto que corresponde ao ID do seu contêiner:
    Captura de tela do seletor de projetos do GCP mostrando um exemplo de ID do contêiner do Gerenciador de tags.
  2. Para a linha Tipo: bucket do Cloud Logging, Nome: _Default, selecione o menu flutuante e clique em Editar coletor.
  3. Em Destino do coletor, selecione o bucket de registros _Default.
  4. Em Escolha os registros para incluir no coletor, adicione uma nova linha. Insira a seguinte regra no filtro de inclusão atual:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Para desativar a geração de registros do balanceador de carga, adicione uma nova linha e insira a seguinte regra no filtro:

    NOT LOG_ID("requests")
    
  6. Atualize o coletor para implementar as mudanças. Agora as solicitações do App Engine vão ser excluídas da geração de registros.

  7. Verifique se não há novas solicitações nos registros da Análise de registros.

Geração de registros do console

O servidor de tags, os clientes ou as tags de um contêiner podem registrar mensagens para o console que geram cobranças. Para reduzir ou eliminar as cobranças, você pode desativar as mensagens de registro indesejadas.

Para identificar os registros indesejados do console:

  1. No GCP, abra a Análise de registros.
  2. Procure as mensagens de registro indesejadas das suas tags. Exemplo:

    Uma tag pode enviar os seguintes registros:

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

    Procure as mensagens de registro correspondentes no campo textPayload:
    Captura de tela da Análise de registros do GCP mostrando exemplos de registro.

Para desativar as mensagens de registro do console:

  1. No Google Cloud Platform, abra o Roteador de registros. Verifique se você está no projeto que corresponde ao ID do seu contêiner:
    Captura de tela do seletor de projetos do GCP mostrando um exemplo de ID do contêiner do Gerenciador de tags.
  2. Para a linha Tipo: bucket do Cloud Logging, Nome: _Default, selecione o menu flutuante e clique em Editar coletor.
  3. Em Destino do coletor, selecione o bucket de registros _Default.
  4. Em Escolha os registros para incluir no coletor, adicione uma nova linha. Insira a seguinte regra no filtro de inclusão atual:

    NOT textPayload:"Custom message:"
    

    Nos registros do console, substitua o texto Custom message: por uma substring do registro que você quer desativar. Para ter filtros mais elaborados, use a linguagem de consulta de geração de registros.

  5. Atualize o coletor para implementar as mudanças. A mensagem logToConsole correspondente vai ser excluída da geração de registros.

  6. Verifique se não há novas mensagens de registro do console na Análise de registros.

3. Mapear a implantação para o domínio personalizado

A implantação padrão de inclusão de tags no servidor é hospedada em um domínio do App Engine. Recomendamos modificar a implantação para usar um subdomínio do seu site.

Associe o subdomínio do site ao servidor de tags.

4. Adicionar o URL do servidor ao Gerenciador de tags do Google

Agora que você tem um servidor, verifique se o Gerenciador sabe que deve usar esse servidor.

  1. Abra o Gerenciador de tags do Google.

  2. Clique no contêiner do servidor que você quer que aponte para seu servidor de tags.

  3. Abra as configurações do contêiner do servidor na guia Administrador > Configurações do contêiner.

  4. Clique em Adicionar URL e cole o URL do servidor.

  5. Salve e volte para seu espaço de trabalho.

5. Validação

Agora que você configurou o servidor de tags, verifique se ele funciona conforme o esperado. No espaço de trabalho do Gerenciador de tags, clique no botão Visualizar. Se a página de visualização for carregada, a configuração estará correta.

Visualizar vários URLs

Se você mapeou vários domínios para um único servidor de tags, verifique se cada URL foi adicionado às configurações do contêiner.

Se vários URLs foram indicados, todos os caminhos (a string após o nome do domínio) precisam ser correspondentes.

Funciona Não funciona
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Se vários URLs tiverem sido adicionados, você vai notar um ícone ao lado do botão Visualizar que permite selecionar o URL a ser mostrado.

Atualizar a versão do servidor de tags

As novas atualizações do servidor de tags contêm correções de vulnerabilidades de segurança e novos recursos. Recomendamos atualizar seu servidor de tags para cada versão principal, por exemplo, da versão 1.xx para a 2.xx, quando você receber uma notificação do Gerenciador de tags.

Para atualizar o servidor de tags, execute novamente o script de configuração usando as mesmas definições anteriores. As configurações atuais são definidas por padrão.

Para atualizar o servidor de tags:

  1. Abra o Cloud Shell do Google Cloud Platform.
  2. Defina o projeto do Cloud Platform no Cloud Shell. Substitua project ID pelo ID do projeto do GCP que você anotou:
    gcloud config set project project ID
  3. Execute o script de configuração usando as mesmas configurações de antes. As configurações atuais são definidas por padrão.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Para verificar se a atualização foi concluída:

  1. No contêiner do servidor, clique no botão Prévia para iniciar uma nova sessão de depuração e envie uma solicitação em uma guia separada.
  2. Em Resumo, selecione a guia Console e verifique se não há mensagens solicitando a atualização do servidor de tags.

O Gerenciador de tags pode mostrar mensagens solicitando a atualização do servidor de tags até um dia depois de já ter sido feita. No entanto, na página de visualização, há uma mensagem atualizada sobre a versão do servidor de tags.

Resolver problemas de tempo limite da implantação de produção

O script pode expirar quando você executa o script de configuração para criar ou reconfigurar o servidor de tags. Isso acontece por vários motivos. Os mais comuns são:

  1. As contas de serviço têm permissões incorretas: as contas de serviço do Compute Engine e do App Engine são responsáveis por implantar e manter a implantação da produção. Por padrão, elas são pré-configuradas com as permissões apropriadas. No entanto, em alguns casos, a política de uma organização pode não aceitar as regras.

    1. Acesse a página IAM e administrador na barra de navegação à esquerda do console do Google Cloud.
    2. Encontre as contas de serviço <project_number>-compute@developer.gserviceaccount.com do Compute Engine e <project_name>@appspot.gserviceaccount.com do App Engine.
    3. Ambas precisam ter o papel de Editor. Se uma delas não tiver o papel de Editor, vai ser preciso atualizar. Para isso, clique no ícone de lápis à direita da conta e depois no menu suspenso do papel atual. Em seguida, role a página para cima e clique em Projeto > Editor.
  2. Cota insuficiente: a implantação da produção consome a cota do Compute Engine. Se o projeto não tiver cota suficiente, a implantação pode atingir o tempo limite ao tentar provisionar recursos.

    1. Acesse a página IAM e administrador na barra de navegação à esquerda do console do Google Cloud e clique na guia Cotas.
    2. Próximo à parte de cima da página, clique na caixa de texto Filtrar tabela e digite Compute Engine API. Clique no resultado mostrado.
    3. Verifique se todos os status de cota estão dentro do limite ou se têm uma marca de seleção verde.
    4. Clique em CPUs. Verifique se o uso atual mais o número de instâncias que estão sendo implantadas ainda ficam abaixo do limite para a região de implantação.