Blog DP6
Dados

GTM Server Side - Otimizando a Experiência do Usuário na Black Friday com uma Coleta Eficiente

Por
Danilo Reis de Oliveira Santos
15/8/2024

Introdução

Com o início do mês de agosto, sabemos que uma boa parcela do mercado varejista começa a se preocupar com um tema crítico: Black Friday (sim, pessoal, o momento mais esperado do ano está chegando).

E também permeiam junto à preocupação do faturamento nesta época do ano alguns outros fatores, como:

  • Performance: Meu ambiente web está performático para o meu consumidor? Quais são os fatores que impactam a performance de carregamento do meu site. Aqui cabe um ponto de que o GTM é quase sempre o primeiro a ser apontado como culpado. Mais adiante falaremos sobre isso.
  • Disponibilidade: Corro algum risco de perder dados durante esse período do ano? Como posso garantir ou acompanhar de forma mais próxima o envio de dados para meus parceiros de mídia?
  • Segurança e privacidade: Como posso controlar de forma mais granular meus dados e garantir mais privacidade quando enviar os dados para terceiros?

Tendo todos esses pontos em mente, vamos falar um pouco sobre o GTM Server-Side

Afinal, o que é o GTM Server-Side?

O GTM Server-Side é uma forma complementar de implementação do GTM padrão onde existe um ponto intermediário entre o dispositivo e as aplicações de terceiros, o qual é totalmente controlado por você.

Numa visão mais genérica de onde o container Server-Side fica na comunicação entre navegador/celular e os terceiros, teríamos esta representação:

Qual a diferença entre um container Web e um container Server-Side?

Na implementação padrão via navegador (GTM Client-Side), temos o navegador do usuário sendo o responsável por:

Baixar os scripts (GA4, Ads, Meta, Tiktok, Rakuten, e por aí vai…);

  • Interpretar os scripts (que consome recursos do navegador e compete com o carregamento de outros elementos da página);
  • Enviar as requisições para vários endpoints de terceiros

Já num container Server-Side, uma boa parte desta carga pode ser transferida para o servidor, e neste cenário, teremos uma tag responsável por enviar as informações para somente um destino (nosso container do lado do servidor), e este fica responsável por realizar os tratamentos de dados e enviar as requisições para os vários endpoints de terceiros.

Ou seja, utilizando a implementação do container Server-Side como complemento à implementação padrão, podemos ter alguns ganhos, tais como:

  • Melhoria da performance de carregamento do lado do cliente;
  • Maior controle dos dados antes de serem enviados para terceiros.

E para quais destinos eu posso enviar dados via um container Server-Side?

Existe uma lista de plataformas que aceitam envio de dados do lado do servidor, mas vale ressaltar que nem todas estão preparadas para receber estes dados através deste caminho.

No padrão de tags do container Server-Side, temos somente as tags do Google (GA4, Floodlight, Ads e Conversion Linker), mas existe uma vasta gama de tag templates prontas para uso que se comunicam com terceiros, tais como Meta, Rakuten, LinkedIn, Criteo, etc…

Mas num cenário real, existem ganhos mesmo?

A resposta curta é um grande “depende”, mas vou explicar com base em uma implementação que fizemos em um cliente varejista:

Cenário

Nosso cliente tinha um problema de performance de carregamento de páginas no ambiente web e havia uma suspeita de que o GTM carregado do lado do cliente fosse o culpado da lentidão.

Com isso, desdobramos essa análise preliminar em alguns pontos:

  • Análise de performance de carregamento do site com foco no GTM;
  • Identificar qual dos contêineres demorava mais tempo para carregar;
  • Entender qual era o percentual de perda de performance nesse cenário.

Após esta primeira análise, chegamos na primeira resposta que foi: Sim, o GTM tem relação com a performance de carregamento do site, mas não é o culpado por isso.

Como assim não é culpado?

O Google Tag Manager só é responsável por carregar scripts de terceiros e enviar estes para algum destino, e neste caso o nosso problema era claramente a quantidade de scripts de parceiros de mídia que eram injetados através do GTM no ambiente do cliente, que por sua vez, competiam por recursos do navegador com outros elementos da página.

Agora que temos uma resposta, abrimos espaço para outra pergunta, que é:

Quanto que essa implementação vai me custar?

Precificação do GTM Server-Side

Como estamos falando de um servidor gerenciado pelo meu cliente, o provisionamento deste servidor precisa ser feito no ambiente Cloud interno dele, e aqui vale dizer que todo o custo está ligado a o que e quanto teremos de dados entrando e saindo deste servidor.

Neste case, utilizamos o GCP (Google Cloud Platform) por algumas questões, sendo estas:

  • Facilidade de implementação (existe um script automatizado para criar as instâncias necessárias);
  • Custo relativamente baixo se comparado com outros provedores (AWS, Azure).

Entretanto, a implementação pode ser feita em qualquer outro provedor, e há guias de implementação manual para estes.

Voltando à questão do custo, e utilizando o Cloud Run como produto base do nosso cálculo, seguimos o seguinte raciocínio:

  • Usamos o volume de eventos do GA4 como métrica base para as estimativas de preço;
  • Identificamos a quantidade de tags de mídia implementadas por página ou grupo de página;
  • Calculamos o volume de disparos realizados por página para os parceiros de mídia (regra de 3), ou seja, se eu tenho um acionador de pageview que também envia eventos para 10 outros parceiros, logo eu tenho:some text
    • 1 pageview (GA4);
    • 10 requisições para parceiros de mídia

Com isso, chegamos nesta relação:

Tendo a mediana de disparos de mídia no período (consideramos os últimos 6 meses), ainda precisamos acrescentar um valor médio do tamanho de cada requisição de saída (estimado em kbytes). Presumimos aqui um valor médio de 4 kbytes, que já é muito acima de uma requisição de rede normal. E agora, temos a mediana do volume de kbytes enviados para os parceiros:

Beleza, mas aonde isso tudo vai chegar?

Utilizando a calculadora do Google Cloud Platform, conseguimos estimar de forma mais precisa quanto gastaríamos:

  • Neste cálculo estamos usando uma configuração de instância padrão (1 CPU, 0.5GB Memória) e 6 instâncias no mínimo;
  • Consideramos também o custo de Egresso de Rede, ou seja, quanto o GCP cobra para enviar o dado para a internet (neste caso, nossos destinos)
  • Com isso, chegamos em uma média de R$4.000,00 / mês

E essas máquinas vão dar conta mesmo?

O que fizemos junto com o cliente para termos confiança na operação do GTM Server-Side durante a Black Friday foi um stress-test no servidor já implementado e com o container do lado do Servidor totalmente configurado para entendermos:

  • Se correríamos algum risco de outage durante a Black Friday;
  • Se há alguma possibilidade de tuning na instância;
  • Quais eram os valores mínimos e máximos de instâncias para operarmos com folga

E como premissas do Stress-test, tivemos:

  • 1.9k requisições por segundo de entrada;
  • 120k usuários simulados de forma simultânea - O que já representava 30x o tráfego atual do cliente;
  • Janela de 5 minutos de duração;
  • Perda de 90 reqs/s

Nosso resultado foi: Na janela de teste, o ambiente se manteve estável e sem perdas significativas

Resultados obtidos

Após a virada do container de mídia praticamente todo para o lado do servidor, tivemos ótimos ganhos de performance, sendo:

Desktop:

  • Melhoria de 12% na performance geral;
  • Redução de 39% do tempo de carregamento da página.

Mobile (navegador):

  • Melhoria de 3% na performance;
  • Redução de 12% no tempo de carregamento da página.

As métricas para observação anterior e posterior à implementação foram obtidas através do site GTMetrix.

Conclusões finais

O GTM Server-Side é uma ferramenta muito boa para transferir a carga que o lado do cliente (navegador) tem de baixar e interpretar scripts e também de enviar dados para vários destinos, além de abrir várias possibilidades quando operado em conjunto com a implementação do GTM do lado do cliente.

É importante destacar que o GTM Server-Side não é uma substituição do contêiner do lado do cliente, mas sim um complemento à ele.

E se você, cliente que lê este post ficou interessado em implementar o GTM Server Side, conte conosco para te auxiliar nesta jornada! Fale com a DP6.

Compartilhe