Voltar ao blog

Blog

Google Ads com etiquetagem do lado do servidor: como cada conversão encontra o seu clique

Publicado · 6 min de leitura

Configurar o acompanhamento de conversões no Google Ads termina com dois pedidos: ligar a sua etiqueta Google existente e colar um snippet de evento na página de compra. Com etiquetagem do lado do servidor, o primeiro está certo e o segundo é um erro. Este artigo segue um clique num anúncio desde a página de destino até à conversão no Google Ads: o que passa pelo seu servidor de etiquetagem, o que vai diretamente para a Google e do que a SignalHost trata pelo caminho. Usamos o Google Ads no signalhost.io, por isso tudo o que aqui está foi medido no nosso próprio site.

O que muda quando liga a sua etiqueta Google

Ao criar uma ação de conversão, o Google Ads procura uma etiqueta Google no seu site e propõe usá-la. Se aceitar, a sua etiqueta Google — a que tem o seu ID de medição G- — recebe a sua conta Ads (AW-…) como segundo destino. A Google avisa que isto atualiza as definições da etiqueta. A alteração é feita nas definições da etiqueta na Google, não no seu contentor do Tag Manager, mas a partir daí cada página que carrega a etiqueta também comunica com o Google Ads.

Cada visualização de página envia agora alguns pedidos do navegador do visitante diretamente para a Google, para googleads.g.doubleclick.net e www.google.com, para as suas listas de remarketing e para as medições da própria Google. Não passam pelo seu servidor de etiquetagem, e é de propósito: reencaminhados por um servidor, chegariam todos a partir do endereço do servidor em vez do do visitante, e não é isso que quer mostrar a uma plataforma de publicidade. Os seus dados do GA4 continuam a passar pelo seu próprio domínio, como antes.

É novo na etiquetagem do lado do servidor? Como se configura o Google Tag Manager do lado do servidor, passo a passo.

Não coloque o snippet de conversão da Google na sua página

Depois, o Google Ads oferece um snippet de evento para a sua página de compra. Envia a conversão do navegador diretamente para o Google Ads, sem passar pelo seu servidor de etiquetagem, com um valor de 1.0 e um ID de transação vazio enquanto ninguém os preencher.

// Google's event snippet: not for your page.
// Paste it into the Conversion ID box in SignalHost instead.
gtag('event', 'conversion', {
  'send_to': 'AW-123456789/AbC-D_efGh12_34',
  'value': 1.0,
  'currency': 'EUR',
  'transaction_id': ''
});

Com a SignalHost, é o seu contentor de servidor que envia a conversão. Abra o seu contentor, expanda «Destinos de conversão» e introduza o ID e a etiqueta de conversão em Google Ads. A partir daí, cada compra que o seu site já regista — o evento purchase do GA4 — segue do servidor para o Google Ads, com valor, moeda e ID de transação. Nada tem de mudar no seu Tag Manager.

Não adicione também o snippet. Com os dois, cada compra é registada duas vezes: a Google só junta duas conversões quando têm o mesmo ID de transação, e o do snippet costuma estar vazio.

Não precisa de tirar o ID e a etiqueta do snippet. Cole o snippet completo, ou apenas o valor send_to, no campo «ID de conversão» e os dois campos ficam preenchidos. O ID funciona das duas formas, AW-123456789 ou 123456789.

Como o clique sobrevive até à compra

Uma conversão só é útil ao Google Ads se puder ser ligada ao clique que a originou. A ligação é o ID do clique: a Google acrescenta-o ao endereço da sua página de destino como gclid=…, e ele desaparece do endereço com o clique seguinte do visitante.

Cada contentor da SignalHost inclui para isso um Conversion Linker do lado do servidor. Lê o ID do clique no hit da página de destino e guarda-o num cookie próprio chamado FPGCLAW, no seu domínio. Quando a compra chega — três páginas ou três dias depois —, a etiqueta do Google Ads no seu contentor de servidor lê esse cookie e envia a conversão juntamente com o clique.

Há duas condições. O visitante tem de aceitar a publicidade no seu banner de cookies: sem esse consentimento, o linker não guarda nada e a etiqueta Ads não envia nada. E o navegador tem de aceitar o cookie, o que depende do endereço em que corre o seu servidor de etiquetagem.

Porque é que o Google Ads precisa do seu próprio domínio

O cookie do clique é definido pelo seu servidor de etiquetagem, e os navegadores só o aceitam quando esse servidor pertence ao seu próprio site: um subdomínio como metrics.oseusite.pt. O endereço com que cada contentor começa é um subdomínio de signalhost.io, que para o navegador é o site de outra pessoa, e aí o cookie é recusado.

Nada avisa da diferença. As conversões continuam a chegar ao Google Ads, mas sem o respetivo clique, pelo que o Google Ads não as pode atribuir a nenhuma campanha — o que parece exatamente anúncios que não funcionam. Ligue o seu próprio domínio antes de avaliar uma campanha pelos números: basta um registo CNAME, e o certificado é emitido automaticamente. Enquanto nenhum domínio estiver ativo, as definições do Google Ads do seu contentor indicam-no. Como apontar o seu próprio domínio para o seu servidor de etiquetagem.

Quando a compra acontece dias depois

Períodos de avaliação e subscrições quebram o percurso habitual: o dinheiro move-se dias depois da visita, quando ninguém está no seu site, por isso a compra tem de ser enviada pelo seu servidor, normalmente a partir do webhook do seu prestador de pagamentos, como descreve o nosso guia de checkouts próprios.

Para o Google Ads, essa compra precisa de mais duas coisas do checkout, enquanto o visitante ainda lá está. Guarde os cookies de publicidade que o pedido do checkout traz — FPGCLAW, FPAU e os cookies _gcl_ da Google, que só existem depois de a publicidade ser aceite — e envie-os de volta como cookies com a compra, marcando o consentimento de publicidade como concedido. Sem eles, o Google Ads não pode aceitar a conversão nem atribuí-la.

// At checkout: keep the advertising cookies with the order.
// They only exist once the visitor allowed advertising.
const AD_COOKIES = ['FPGCLAW', 'FPAU', '_gcl_aw', '_gcl_au'];
order.adCookies = pick(req.cookies, AD_COOKIES);

// In the payment webhook: send them back with the purchase.
// gcs=G111 in the params: advertising and analytics consent granted.
await fetch(`https://metrics.yoursite.com/g/collect?${params}`, {
  method: 'POST',
  headers: { cookie: serialize(order.adCookies) },
});

É assim que o signalhost.io regista as suas próprias subscrições: o webhook do Stripe envia a compra quando a primeira fatura é paga, e leva consigo o clique no anúncio vindo do checkout.

Do que a SignalHost trata

Introduz dois valores. Tudo o resto vem em cada contentor:

  • O Conversion Linker e a etiqueta de conversão do Google Ads. Com um ID e uma etiqueta ficam ativos a partir do pedido seguinte.
  • A etiqueta Ads dispara nas compras e em mais nada. Uma etiqueta que ouvisse todos os eventos registaria cada visualização de página como uma venda.
  • O consentimento de publicidade é aplicado no servidor: um visitante que recusou a publicidade não gera nenhuma conversão no Google Ads.
  • Cada cookie definido pelo seu servidor de etiquetagem chega ao navegador: o ID do clique, o ID próprio do visitante e o ID de utilizador de publicidade.
  • O ID de conversão é enviado no formato que a etiqueta espera, seja qual for a forma como o escreveu.
  • A página do seu contentor avisa quando falta ao Google Ads o seu próprio domínio.

O signalhost.io funciona exatamente com esta configuração e com a nossa própria conta do Google Ads. A verificação em que confiamos é uma visita de teste com um ID de clique: no fim, o cookie do clique tem de estar no navegador.

Como verificar a sua configuração

  • Abra o seu site com ?gclid=test no fim do endereço e aceite a publicidade no banner de cookies. Entre os cookies do navegador para o seu domínio deverá agora encontrar FPGCLAW.
  • Inicie uma sessão de pré-visualização em «Ferramentas de programador» no seu contentor, carregue em Pré-visualizar no seu contentor de servidor no Tag Manager e faça uma compra de teste. A etiqueta de conversão do Google Ads deve disparar, com valor, moeda e ID de transação.
  • Confirme que o snippet de evento da Google não está na sua página de compra e que nenhuma etiqueta de conversão do Google Ads no seu contentor web dispara na mesma compra.
  • Dê um dia ao Google Ads: uma nova ação de conversão pode demorar esse tempo a aparecer como ativa.

Se as conversões chegam mas nunca são atribuídas a uma campanha, o clique perde-se pelo caminho: verifique primeiro o consentimento e o seu próprio domínio.

Deixa de perder dados para bloqueadores

Dez mil pedidos por mês, grátis, o tempo que quiseres. Quatro minutos para saber se ajuda.