Plataformas de anúncios e lojas online

Tracking server-side no WooCommerce: um guia de configuração

Configure o tracking server-side no WooCommerce: envie as encomendas pagas para a Meta e o TikTok com o plugin da ROASaurus ou com webhooks, associe-as aos cliques em anúncios e teste.

·Atualizado em ·11 min de leitura·Pela equipa da ROASaurus

Pontos-chave
  • O tracking server-side no WooCommerce envia cada encomenda paga, a partir dos dados de encomenda da própria loja, para a Meta, o TikTok e outras plataformas de anúncios, por isso uma compra conta mesmo quando o pixel do navegador nunca dispara.
  • A ROASaurus considera paga uma encomenda do WooCommerce quando o estado é processing ou completed, o que inclui as encomendas com pagamento contra reembolso e as transferências bancárias depois de as confirmar.
  • O plugin da ROASaurus guarda o ID de visitante e os cookies do clique no anúncio em cada encomenda no checkout, por isso a encomenda fica associada exatamente ao seu clique no anúncio.
  • Sem o plugin, os webhooks continuam a entregar todas as encomendas pagas, mas não há associação pela página de agradecimento: as encomendas só são associadas por um email indicado antes no site ou por um endereço IP e navegador únicos.
  • No WooCommerce, o script da ROASaurus segue os plugins de consentimento que usam a WP Consent API, como o Complianz e o CookieYes, e os banners Cookiebot, OneTrust e IAB TCF.

O tracking server-side no WooCommerce envia cada encomenda paga, a partir dos dados de encomenda da sua loja, para a Meta, o TikTok e outras plataformas de anúncios, em vez de depender apenas de um pixel no navegador do comprador. A compra é reportada mesmo quando um bloqueador de anúncios trava o pixel ou o comprador nunca chega à página de agradecimento.

Este guia explica porque é que as lojas WooCommerce perdem conversões, os dados de encomenda que o WooCommerce fornece e as duas formas de ligar a ROASaurus: o plugin do WordPress ou os webhooks. Depois trata da associação, do consentimento, da configuração e dos testes. Para a ideia geral, leia o que é o tracking server-side.

Porque é que as lojas WooCommerce perdem conversões?

Um pixel do navegador só reporta uma compra quando o script do pixel carrega, o comprador chega à página de agradecimento e o navegador envia o evento. Cada passo pode falhar. A encomenda em si continua na sua base de dados, porque o WooCommerce a guarda no servidor.

O que acontecePixel do navegadorDados de encomenda no WooCommerce
O comprador paga por redirecionamento (por exemplo, PayPal ou uma app do banco) e fecha o separadorSem página de agradecimento, sem evento de compraEncomenda paga, estado processing
Um bloqueador de anúncios ou uma definição de privacidade bloqueia o script do pixelSem evento de compraEncomenda paga
O visitante recusa os cookies de marketingO pixel não pode carregarEncomenda paga
Uma transferência bancária é confirmada três dias depoisNenhum navegador está aberto nesse momentoO estado passa de on hold para processing
Um plugin de cache ou de otimização de scripts atrasa o pixelO evento pode chegar atrasado ou faltarEncomenda paga
Em todos os casos, a encomenda paga existe no WooCommerce. O tracking server-side envia essa encomenda, aconteça o que acontecer no navegador.

As compras em falta causam dois tipos de dano. A plataforma de anúncios otimiza com menos conversões, e os seus relatórios mostram um retorno mais baixo do que aquele que realmente obtém. Eis o segundo efeito em números, para uma loja de exemplo com um ROAS de break-even de 2.2:

Loja de exemplo, um mêsSó o pixelTodas as encomendas pagas
Investimento em anúncios na Meta$8,000$8,000
Compras a partir de cliques na Meta260320
Receita a $60 por encomenda$15,600$19,200
ROAS15,600 ÷ 8,000 = 1.9519,200 ÷ 8,000 = 2.40
Face ao break-even (2.2)Parece um prejuízoRentável
Números ilustrativos. A mesma campanha parece dar prejuízo com os dados do pixel e dá lucro com os dados da encomenda.

O que o WooCommerce oferece: encomendas, webhooks e a REST API

Que estados de encomenda contam como pagos?

O WooCommerce descreve processing como pagamento recebido, com a encomenda à espera de ser expedida. A ROASaurus envia as encomendas com o estado processing ou completed e ignora as encomendas pending payment, on hold, failed, cancelled e refunded. Dois métodos de pagamento exigem atenção:

  • Pagamento contra reembolso. O WooCommerce coloca estas encomendas em processing até o pagamento ser cobrado, por isso a ROASaurus envia-as quando são feitas. As encomendas com um produto para download são a exceção: ficam em on hold. Veja tracking de encomendas com pagamento contra reembolso para saber o que isso significa para as devoluções e as recusas.
  • Transferência bancária. O WooCommerce coloca estas encomendas em on hold enquanto verifica o pagamento. A ROASaurus envia-as quando as passa para processing.

Webhooks

Um webhook é uma mensagem que o WooCommerce envia para outro sistema quando algo muda. Crie-o em WooCommerce › Settings › Advanced › Webhooks. Para um tópico de encomenda, o payload é o mesmo objeto de encomenda que a REST API devolve. Cada entrega traz um cabeçalho X-WC-Webhook-Signature: um hash HMAC-SHA256 em base64 do payload, feito com o segredo que escolher. A ROASaurus verifica essa assinatura antes de aceitar uma encomenda.

Dois detalhes importam na prática. O WooCommerce entrega os webhooks em segundo plano, por predefinição com o WP-Cron, por isso uma entrega pode atrasar-se quando essa fila anda atrasada. E o WooCommerce desativa um webhook depois de mais de cinco entregas falhadas seguidas.

REST API

A REST API permite à ROASaurus pedir ela própria as encomendas. Com uma chave de API só de leitura, a ROASaurus pede a cada 5 minutos as encomendas processing e completed alteradas desde a última verificação, com 30 minutos de sobreposição. As encomendas que já tem são ignoradas. Isto apanha qualquer encomenda que um webhook tenha falhado.

Campo da encomendaO que a ROASaurus faz com ele
idTorna-se o ID de evento order-1042, partilhado pelos eventos do servidor e do navegador
totalO valor da compra: o total geral, incluindo impostos e portes
Email de faturação, telefone, nome, cidade, estado, código postal, paísCom hash SHA-256 e enviados como dados do cliente
customer_ip_address, customer_user_agentEnviados com o evento e usados para associar a encomenda a um visitante
line_itemsIDs de produto (o ID da variação quando existe), quantidades e preços
date_paid_gmtA hora do evento para as encomendas vindas de um webhook ou da REST API (a data de criação quando não há data de pagamento)
meta_dataCom o plugin: o ID de visitante e os cookies da Meta e do TikTok
O que a ROASaurus lê de uma encomenda do WooCommerce. O webhook e a REST API devolvem os mesmos campos.

Plugin ou webhooks: duas formas de ligar

Ambas as ligações enviam todas as encomendas pagas. Diferem na qualidade com que cada encomenda fica associada ao clique no anúncio que trouxe o comprador.

CheckoutO plugin guarda o ID de visitante e os cookies de clique na encomenda
Encomenda pagaEstado processing ou completed
ROASaurusRecebe a encomenda do plugin ou de um webhook
Plataformas de anúnciosA Meta, o TikTok e outras plataformas recebem um Purchase com o ID de evento order-1042
O percurso dos dados com o plugin. Sem ele, o passo do checkout não guarda nada de extra e a encomenda chega apenas por webhook.
Plugin da ROASaurusSó webhooks
O que instalaUm plugin do WordPress (PHP 7.4 e WooCommerce 6.0 ou superior)Nada: um webhook nas definições do WooCommerce
Como chegam as encomendasO plugin envia cada encomenda paga para a API de encomendas da ROASaurusO WooCommerce envia Order updated; verificação opcional pela REST API a cada 5 minutos
Script de trackingCarregado pelo plugin em todas as páginasÉ adicionado por si, por exemplo com o plugin WPCode ou no seu tema
ID de visitante e cookies de clique na encomendaSim, guardados no checkout (checkout clássico e em blocos)Não
Compra do navegador na página de agradecimentoSim, com o mesmo ID de evento do evento do servidorNão
Associação pela página de agradecimentoSimNão
Ambas as ligações enviam todas as encomendas pagas. Só o plugin associa cada encomenda ao respetivo visitante no checkout.

Pode usar as duas ao mesmo tempo. O plugin guarda o ID de visitante na encomenda como meta data da encomenda, e o payload do webhook leva-o consigo. A ROASaurus guarda cada encomenda uma só vez, pelo ID de encomenda do WooCommerce, por isso o plugin e o webhook nunca criam duas compras. O plugin também declara suporte para o High-Performance Order Storage do WooCommerce.

Como é que uma encomenda do WooCommerce é associada ao clique no anúncio?

Uma plataforma de anúncios só consegue atribuir uma compra a um anúncio quando consegue ligar os dois. A ROASaurus faz isso associando a encomenda ao visitante que clicou no anúncio, e esse visitante traz os IDs de clique (como o fbclid e o ttclid) e os parâmetros UTM da página de entrada. Experimenta estes métodos por ordem e para no primeiro que funciona:

  1. O ID de visitante guardado na encomenda. Só com o plugin. É uma ligação exata.
  2. A compra do navegador na página de agradecimento, que traz o mesmo ID de encomenda. Só com o plugin.
  3. Um email com hash que o visitante indicou antes no seu site, por exemplo num formulário pop-up do Klaviyo, do Attentive ou do Wisepops, ou através de uma chamada Identify.
  4. O mesmo endereço IP e navegador, vistos de 3 horas antes até 15 minutos depois da encomenda, mas só quando corresponde exatamente um visitante. Em redes partilhadas, como escritórios e operadoras móveis, vários visitantes partilham muitas vezes o mesmo endereço IP, e nesse caso a ROASaurus não adivinha.

A ROASaurus espera um pouco antes de enviar cada compra, para que o evento da página de agradecimento possa chegar primeiro. Se a encomenda continuar sem associação, tenta outra vez no momento do envio. A página Orders mostra o resultado por encomenda na coluna Matched by. As encomendas associadas pelo ID de visitante do plugin mostram cart, a mesma etiqueta que as encomendas do Shopify recebem.

Enviado para a Meta para a encomenda 1042Associada (plugin)Não associada (só webhooks)
ID de evento order-1042SimSim
Email, telefone, nome e morada com hashSimSim
Endereço IP e navegador da encomendaSimSim
ID de clique da Meta e ID do navegador (fbc, fbp)SimNão
ID de visitante com hash (external_id)SimNão
O clique no anúncio na atribuição da ROASaurusCampanha e anúncio do cliqueMostrada como direta ou desconhecida
Uma encomenda sem associação chega na mesma à Meta com os dados da encomenda. Uma encomenda associada acrescenta os identificadores de clique que a Meta usa para atribuir o mérito ao anúncio.

Esses identificadores de clique aumentam a taxa de correspondência da Meta para o evento. O Event Match Quality explica como a Meta os pontua.

Cada loja na ROASaurus tem a definição Respect visitor consent, que está ativada por predefinição. No WooCommerce, o script da ROASaurus lê a escolha do visitante a partir da WP Consent API, que plugins de consentimento como o Complianz e o CookieYes preenchem. Lê também os banners Cookiebot, OneTrust, IAB TCF e o Google consent mode. Enquanto o visitante não aceitar os cookies de marketing, o script não define ID de visitante e não carrega pixels do navegador.

Quando um visitante recusa, o script não define ID de visitante, não guarda IDs de clique e não dispara pixels do navegador, e o plugin não guarda cookies de tracking na encomenda. A encomenda paga continua a ser enviada a partir do servidor para as suas plataformas de anúncios ligadas, com dados do cliente com hash a partir da encomenda e com o endereço IP e o navegador da encomenda. Se o seu aconselhamento jurídico indicar que os eventos de compra também precisam de consentimento prévio, contacte a ROASaurus antes de ativar as compras server-side. A página de ajuda sobre consentimento tem os detalhes, e o artigo sobre Consent Mode v2 e RGPD aborda o enquadramento legal.

Como configurar o tracking server-side no WooCommerce

Estes são os passos para a via do plugin:

  1. Adicione a loja

    Na ROASaurus, vá a Add a store, escolha WooCommerce e introduza o domínio que os seus clientes visitam.

  2. Crie uma chave de API

    Abra Store settings e, em Orders API, clique em Create API key. Copie a chave de imediato: só é mostrada uma vez, junto à chave da sua loja. O endpoint é o endereço que antecede /api/v1/orders nessa página.

  3. Instale o plugin

    Descarregue o plugin e carregue o zip no WordPress em Plugins › Add New Plugin › Upload Plugin. Depois, ative-o.

  4. Introduza as chaves

    Em WooCommerce › ROASaurus, introduza o endpoint, a chave da loja e a chave da API e guarde.

  5. Ligue as suas plataformas de anúncios

    Em Tracking & platforms, use Connect with Facebook ou Add pixel para a Meta, o TikTok e as outras. Marque a opção de carregar também o pixel do navegador, para que os duplicados entre a compra da página de agradecimento e o evento do servidor sejam eliminados.

  6. Configure o consentimento e teste

    Bloqueie o script na sua ferramenta de consentimento até o visitante aceitar os cookies de marketing e faça depois uma encomenda de teste.

Sem o plugin, adicione a tag de script de Tracking & platforms a todas as páginas e crie depois o webhook. O separador Connection da sua loja mostra o URL do seu webhook. Mantenha-o privado: qualquer pessoa com o URL pode enviar encomendas para a sua loja.

Definições do webhook
WooCommerce › Settings › Advanced › Webhooks › Add webhook

Status        Active
Topic         Order updated
Delivery URL  (your webhook URL from the Connection tab)
Secret        (a secret of your choice; paste the same one in ROASaurus)
API version   WP REST API Integration v3

Para a cópia de segurança, crie uma chave em WooCommerce › Settings › Advanced › REST API com acesso de leitura. Cole a consumer key e o consumer secret no separador Connection, guarde e clique em Test connection. O Fetch orders now vai buscar de imediato as encomendas pagas recentes. A página da integração com o WooCommerce lista todas as opções num só sítio.

Como se testa o tracking server-side no WooCommerce?

Teste primeiro o lado do navegador, depois faça uma encomenda e acompanhe-a até às plataformas de anúncios.

  • Abra a sua loja com ?roasaurus=connected no endereço. Um alerta confirma que o script corre. Com ?roasaurus=debug, o script regista na consola do navegador o que envia.
  • No Event log, em Collected events, as visualizações de página devem mostrar um ID de visitante.
  • Faça uma encomenda de teste. O pagamento contra reembolso é o mais rápido, porque a encomenda fica logo em processing.
  • No separador Connection, Last order received mostra a hora da última encomenda.
  • No Event log, em Server deliveries, cada plataforma ligada recebe uma linha com o estado sent e a resposta da plataforma.
PageView visitor 3f9c2a1eScript carregado com consentimento
Purchase order-1042Página de agradecimento, pixels do navegador disparados
order 1042 processingRecebido do plugin
Meta Purchase sentMesmo ID de evento, sem duplicados
TikTok CompletePayment sentMesmo ID de evento, sem duplicados
Exemplo de uma encomenda de teste saudável com o plugin. Só com webhooks, a linha da página de agradecimento não aparece, e isso é esperado.

Para ver o evento na Meta, cole o código de Events Manager › Test events no campo Test event code do seu pixel da Meta na ROASaurus. Remova-o quando terminar, porque o código serve apenas para testes. Se o plugin não conseguir entregar uma encomenda, acrescenta uma nota de encomenda no WooCommerce que começa por “ROASaurus: order not sent”, seguida do erro.

Erros a evitar

  • Usar o tópico Order created. As encomendas pagas por redirecionamento são criadas como pending payment. A ROASaurus ignora as encomendas por pagar, e não chega nenhuma segunda mensagem “created” quando o pagamento é recebido. Use Order updated.
  • Um segredo que não coincide. A ROASaurus rejeita uma entrega cuja assinatura não coincide com o segredo que tem. Depois de mais de cinco falhas seguidas, o WooCommerce desativa o webhook. Corrija o segredo, volte a pôr o webhook em Active e adicione a chave da REST API, para que as encomendas do intervalo sejam obtidas.
  • Duas ferramentas a enviar o mesmo pixel. Se outro plugin também enviar o seu pixel da Meta ou do TikTok, usa os seus próprios IDs de evento e a plataforma conta cada venda duas vezes. Desative-o para esse pixel. Veja como evitar a contagem em duplicado e eventos de compra duplicados.
  • Esperar eventos de adicionar ao carrinho. No WooCommerce, o script regista por si só as visualizações de página. As visualizações de produto e os adicionar ao carrinho são detetados automaticamente apenas no Shopify. Um programador pode enviá-los com uma chamada track do tlq.
  • Esperar conversões do Google Ads. A ROASaurus envia conversões de compra do Google Ads apenas a partir do checkout do Shopify. A partir do WooCommerce, envia compras para a Meta, o TikTok, o Snapchat, o Pinterest, o Reddit, o X, o Microsoft Ads, a Taboola, o LinkedIn e as outras plataformas de anúncios que ligar.
  • Transferências bancárias tardias. A Meta aceita eventos do servidor até 7 dias depois da hora do evento. O plugin envia a encomenda com a data em que foi criada, por isso a Meta rejeita uma transferência confirmada mais de 7 dias depois do checkout. As encomendas que chegam por webhook ou pela REST API usam antes a data de pagamento. Note também que a página de agradecimento dispara a compra do navegador no checkout, antes de a transferência ser paga. Se o pagamento for confirmado mais de 48 horas depois, a Meta e o TikTok não conseguem unir as cópias do navegador e do servidor, e uma transferência que nunca é paga mantém a sua compra do navegador.

Quando as encomendas começarem a fluir, os relatórios de atribuição mostram de que campanhas e anúncios vieram.

Fontes

  1. WooCommerce: Webhooks Documentation
  2. WooCommerce REST API Documentation - WP REST API v3
  3. WooCommerce: Order Statuses Documentation
  4. WooCommerce: Cash on Delivery Documentation
  5. Meta for Developers: Server Event Parameters

Na ROASaurus

Continue a ler

Plataformas de anúncios e lojas onlineTracking de conversões em pagamento contra reembolso e checkouts externosTracking de conversões em pagamento contra reembolso: porque é que os pixels falham as encomendas COD e de checkout externo, quando enviar a compra e como tratar as encomendas recusadas.Plataformas de anúncios e lojas onlineTracking de conversões no CCV Shop: um guia de configuraçãoTracking de conversões no CCV Shop: envie as encomendas pagas para a Meta e o TikTok com um webhook assinado, associe-as aos cliques em anúncios, configure, teste e trate os pagamentos tardios.Plataformas de anúncios e lojas onlineConversões avançadas do Google Ads no ShopifyAs conversões avançadas acrescentam dados de clientes com hash às compras do Google Ads no Shopify. Veja como funcionam, em que diferem das importações offline e como configurar.
FAQ

Perguntas e respostas

Preciso do plugin da ROASaurus para o WooCommerce?

Não. Um webhook do WooCommerce chega para enviar todas as encomendas pagas. O plugin acrescenta a cada encomenda o ID de visitante e os cookies de clique, e uma compra do navegador sem duplicados na página de agradecimento, o que associa as encomendas aos cliques nos anúncios com exatidão, por isso é recomendado.

Que tópico de webhook do WooCommerce devo usar?

Order updated, com a versão de API WP REST API Integration v3. A ROASaurus ignora as encomendas que não estão em processing nem completed e guarda cada encomenda apenas uma vez, por isso atualizações repetidas não criam compras a mais.

As encomendas com pagamento contra reembolso são enviadas para a Meta e o TikTok?

Sim. O WooCommerce dá às encomendas com pagamento contra reembolso o estado processing quando são feitas, e a ROASaurus conta as encomendas em processing como pagas. As encomendas por transferência bancária são enviadas quando as passa de on hold para processing.

O que é enviado quando um visitante recusa os cookies?

A encomenda paga continua a ser enviada a partir do servidor com dados do cliente com hash e com o endereço IP e o navegador da encomenda. O script não deve correr sem consentimento, por isso não há ID de visitante nem ID de clique para associar a encomenda a um clique num anúncio.

Porque é que o meu webhook do WooCommerce deixou de funcionar?

O WooCommerce desativa um webhook depois de mais de cinco entregas falhadas seguidas. Verifique se o segredo no WooCommerce coincide com o da ROASaurus, volte a pôr o webhook em Active e adicione uma chave da REST API para que as encomendas perdidas sejam obtidas a cada 5 minutos.

A ROASaurus envia conversões do Google Ads a partir do WooCommerce?

Não para compras. As conversões de compra do Google Ads são enviadas apenas a partir do checkout do Shopify. A partir do WooCommerce, a ROASaurus envia compras para a Meta, o TikTok, o Snapchat, o Pinterest, o Reddit, o X, o Microsoft Ads, a Taboola, o LinkedIn e as outras plataformas de anúncios que ligar.

Cada venda, associada ao anúncio que a gerou

Tracking server-side, lucro e valor vitalício do cliente numa só app. Teste gratuito de 14 dias, sem cartão de crédito.

Comece o seu teste gratuito →