Introdução à inclusão de tags no servidor

A inclusão de tags no servidor é uma nova maneira de usar o Gerenciador de tags do Google para instrumentar seu aplicativo em vários dispositivos. Os contêineres do servidor usam o mesmo modelo de tag, acionador e variável que você já conhece, além de oferecer novas ferramentas que permitem medir a atividade do usuário onde quer que ela aconteça.

Uma configuração típica sem a inclusão de tags no servidor depende de um contêiner na página para enviar dados de medição a vários servidores de coleta. A Figura 1 traz um exemplo de como um contêiner da Web do Gerenciador de tags em execução em um navegador da Web envia dados para vários servidores.

Diagrama de um site instrumentado para usar um contêiner da Web do Gerenciador de tags do Google

Figura 1: diagrama de um site instrumentado para usar um contêiner da Web do Gerenciador de tags do Google.

Por outro lado, o contêiner do servidor não é executado no navegador nem no smartphone do usuário, mas em um servidor que você controla.

Diagrama de um site instrumentado usando um contêiner de inclusão de tags no servidor.

Figura 2: exemplo de configuração de inclusão de tags que usa um contêiner do servidor.

O servidor é executado no seu próprio projeto do Google Cloud Platform ou em outro ambiente de sua escolha, e somente você vai ter acesso aos dados no servidor até que sejam enviados para outro lugar. Você tem controle total sobre a modelagem e o destino dos dados. As tags são criadas usando a tecnologia JavaScript no modo sandbox. Com as permissões, é possível ver os recursos da tag, e as políticas permitem definir limites relacionados ao contêiner.

O servidor recebe solicitações da Web do dispositivo do usuário e as transforma em eventos. Os eventos são processados pelas tags, acionadores e variáveis do contêiner. Esses três tipos de componentes funcionam exatamente como em outros tipos de contêineres: os acionadores analisam cada evento para procurar determinadas condições e, quando adequado, disparam tags que enviam os dados do evento a serem processados.

Esse modelo traz duas questões importantes referentes aos contêineres do servidor:

  • Como os dados de medição são transferidos do dispositivo do usuário para o contêiner do servidor?
  • Como os dados de medição enviados a um contêiner de servidor são transformados em um evento?

A resposta para as duas perguntas é um novo tipo de entidade para uso em contêineres do servidor: um cliente.

Como os clientes funcionam

Os clientes são adaptadores entre o software em execução no dispositivo de um usuário e o contêiner do seu servidor. O cliente recebe dados de medição de um dispositivo, transforma essas informações em um ou mais eventos, encaminha os dados a serem processados no contêiner e agrupa os resultados para enviar ao solicitante.

É muita coisa! Vamos analisar uma parte de cada vez. A Figura 3 mostra a transferência dos dados do navegador da Web do usuário para o contêiner do servidor e do seu servidor da Web para o contêiner dele.

Diagrama de um site instrumentado usando um contêiner de inclusão de tags no servidor.

Figura 3: um cliente diferente processa cada fluxo de dados.

Os clientes recebem dados de medição de um dispositivo. Suponha que você queira avaliar a atividade do usuário em três lugares: um site, um app para smartphones e um aviso inteligente. Seu site usa o Google Analytics, o app utiliza o Firebase Analytics, e o aviso usa um protocolo próprio chamado "ToastMeasure".

A instrumentação desses três dispositivos com o Gerenciador de tags do Google normalmente requer um contêiner diferente para cada plataforma. Como o contêiner do servidor não é executado no dispositivo, o mesmo contêiner pode processar a instrumentação de análise para as três plataformas de dispositivo. Mas temos um problema. Nem todos os dispositivos se comunicam da mesma forma. O protocolo do Google Analytics não é o mesmo do ToastMeasure. É aí que entram os clientes.

Em vez de três contêineres, o servidor tem um contêiner com três clientes. Cada solicitação que entra no contêiner é processada por um cliente em ordem de prioridade: primeiro, o cliente de prioridade mais alta e assim por diante. Para começar, o cliente decide se sabe como processar determinado tipo de solicitação. Em caso afirmativo, o cliente vai "reivindicar" a solicitação e, então, seguirá para a próxima etapa de processamento. Ao reivindicar a solicitação, ele impede que os próximos clientes sejam executados. Se o cliente não puder processar a solicitação, ele não vai fazer nada, permitindo que os outros clientes decidam se querem processar a solicitação ou não.

Os clientes transformam os dados da solicitação em um ou mais eventos. Depois que o cliente do ToastMeasure reivindica uma solicitação, ele precisa transformá-la em algo que o restante do contêiner entenda, ou seja, um conjunto de eventos.

Eventos são acontecimentos que precisam ser medidos. Podem ser qualquer coisa: start_toasting, finish_toasting ou buy_bread. Há algumas recomendações sobre a estrutura dos eventos que um cliente gera, mas o único requisito é que o restante do contêiner consiga entendê-los.

Os clientes executam o contêiner. O cliente reivindicou a solicitação e a transformou em eventos. Agora, é a hora das tags, dos acionadores e das variáveis. O cliente transmite os eventos ao restante do contêiner para processamento adicional.

Os clientes agrupam os resultados para enviar de volta ao dispositivo. Depois que o contêiner é executado, é hora de responder ao aviso. A resposta pode ter várias formas. Talvez o cliente diga apenas "Ok, pronto". Pode ser que uma das tags queira redirecionar a solicitação para outro servidor de coleta. Ou talvez uma das tags faça as luzes do aviso mudarem de cor. Não importa o que precisa acontecer, é tarefa do cliente agrupar os resultados e enviar de volta ao solicitante.

Felizmente, o Gerenciador de tags processa grande parte disso para você. Os contêineres do servidor vêm com três clientes: "Google Analytics 4", "Google Analytics: Universal Analytics" e "Measurement Protocol". Esses clientes oferecem as ferramentas necessárias para começar a instrumentar seu aplicativo a partir do momento em que você cria o contêiner.

Um breve exemplo

Vejamos um exemplo rápido para entender como todas as peças se encaixam. Neste exemplo, você vai criar o seguinte:

  1. Um site simples que usa a gtag.js para enviar um evento click a um contêiner de servidor.
  2. Um cliente do Google Analytics 4 que recebe o evento.
  3. Um acionador que dispara em um evento click.
  4. Uma tag do Google Analytics 4 que envia os dados do evento ao Google Analytics para processamento.

Neste exemplo, presumimos que você já tenha criado e implantado o contêiner de servidor.

Configurar a gtag.js

Primeiro, configure a gtag.js para enviar os dados ao contêiner do servidor. Com a gtag.js, o envio de dados ao contêiner funciona como o envio ao Google Analytics, com uma diferença. Como na página de exemplo abaixo, faça com que a opção server_container_url direcione para o contêiner do servidor.

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });
</script>

Substitua TAG_ID pelo ID da sua tag. Substitua https://analytics.example.com pelo URL do contêiner do servidor.

Em seguida, adicione uma função sendEvent() para processar os eventos click:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });

  function sendEvent() {
    gtag('event', 'click');
  }
</script>

<button onclick="javascript:sendEvent()">Send Event</button>

Substitua TAG_ID pelo ID da sua tag. Substitua https://analytics.example.com pelo URL do contêiner do servidor.

Com essa configuração, os manipuladores de eventos, como a função sendEvent() incluída neste exemplo, vão enviar um evento click ao contêiner do servidor.

Cliente do Google Analytics 4

Seu contêiner precisa de um cliente para receber o evento assim que ele chegar ao servidor. Felizmente, os contêineres do servidor vêm com o cliente do Google Analytics 4 pré-instalado, então essa etapa já está concluída para você.

Acionador de cliques

Em seguida, crie um acionador que seja disparado no evento click. Crie um acionador personalizado que será disparado quando a variável integrada do Nome do evento for igual a "click".

configuração do acionador

Tag do Google Analytics 4

Por fim, anexe uma tag do GA4 ao acionador. Assim como acontece com os clientes, um contêiner do servidor vem com uma tag do GA4. Basta criar a tag e definir suas configurações para conectar o contêiner. Os clientes e as tags do GA4 foram projetados para funcionar juntos. Ou seja, basta criar uma tag do GA4, e sua configuração será extraída automaticamente dos eventos do cliente.

Visualizar o contêiner

Agora que o contêiner está configurado, clique em Visualizar. Acesse seu site em outra janela do navegador. À medida que os eventos e solicitações forem enviados ao contêiner do servidor, eles vão ficar no lado esquerdo da página de visualização.

Se as alterações forem satisfatórias, publique o contêiner do servidor.

Configurar o servidor para o modo de produção com veiculação própria

Antes de enviar qualquer tráfego de produção ao seu contêiner do servidor, instale o servidor no domínio primário e faça upgrade dele para o modo de produção.