- No Shopify, o tracking server-side envia cada compra a partir da encomenda paga que o Shopify comunica por webhook, por isso não depende de a página de agradecimento carregar.
- O ID de visitante e os IDs de clique do anúncio são guardados como atributos do carrinho, por isso o Shopify copia-os para a encomenda e a encomenda pode ser associada ao clique.
- Os eventos do navegador e do servidor partilham um ID de evento criado a partir do ID da encomenda, por isso a Meta, o TikTok, o Snapchat, o Pinterest e o Reddit contam cada compra uma só vez.
- Com o Respect visitor consent ativado, um visitante que recuse os cookies de marketing não recebe ID de visitante e os eventos do navegador dele não são enviados para as plataformas de anúncios, mas a encomenda paga continua a ser enviada com dados do cliente com hash a partir da encomenda.
- A configuração na ROASaurus tem quatro passos principais: instalar a app, ativar o theme app embed, adicionar o pixel de checkout e ligar as suas plataformas de anúncios.
O tracking server-side no Shopify significa que cada compra chega à Meta, ao TikTok e a outras plataformas de anúncios a partir dos dados de encomenda da sua loja, enviados por um servidor, e não apenas a partir de um pixel no navegador do comprador. O Shopify comunica cada encomenda paga à app de tracking por webhook, e a app envia-a para a API de conversões de cada plataforma, associada ao clique no anúncio que trouxe o comprador.
Este guia explica as partes do Shopify neste fluxo: o theme app embed e o proxy da app, os pixels no checkout, o webhook orders/paid, a associação de encomendas, a eliminação de duplicados, o consentimento e a configuração na ROASaurus. Para a ideia geral, leia primeiro o que é o tracking server-side.
Como funciona o tracking server-side no Shopify
O clique e a compra acontecem em momentos diferentes e em sítios diferentes. O clique só é visível no navegador, na página de entrada. A encomenda paga só é certa do lado do Shopify, quando o pagamento é capturado. O tracking server-side regista o primeiro, espera pelo segundo e junta-os.
As partes do Shopify: app embed, proxy da app, pixels e webhooks
Uma loja Shopify dá a uma app de tracking quatro sítios onde trabalhar. Cada um tem uma função diferente, e uma configuração completa usa os quatro.
| Parte | Onde corre | O que faz |
|---|---|---|
| Theme app embed | Todas as páginas da loja | Carrega o script de tracking, lê os IDs de clique dos anúncios e guarda o ID de visitante no carrinho |
| Proxy da app | Um caminho no domínio da sua própria loja | Recebe eventos da loja como pedidos first-party |
| Eventos de clientes (pixels) | O checkout e a página de agradecimento | Reportam os passos do checkout e o checkout concluído a partir de uma sandbox |
| Webhooks de encomendas | Os servidores do Shopify | Enviam a encomenda para a app quando é criada e quando é paga |
O theme app embed e o proxy da app
Um theme app embed é um bloco que uma app acrescenta ao seu tema. Ativa-o no editor de temas, por isso não há código para colar. O embed da ROASaurus carrega um script em todas as páginas. Na página de entrada, lê os IDs de clique, como fbclid, ttclid e gclid, e os parâmetros UTM, e guarda-os com um ID de visitante first-party.
O script envia os seus eventos através do proxy da app do Shopify. Um proxy da app reencaminha os pedidos de um caminho no seu próprio domínio, como yourstore.com/apps/roasaurus, para o servidor da app. Para o navegador, é um pedido ao seu próprio site, o que pode ajudar contra os bloqueadores de anúncios que bloqueiam domínios de tracking conhecidos. O Shopify remove o cabeçalho Cookie dos pedidos ao proxy da app e o cabeçalho Set-Cookie das respostas, por isso o ID de visitante viaja dentro do próprio evento, e não num cookie.
Eventos de clientes e pixels no checkout
No checkout do Shopify, os scripts de tracking correm como pixels numa sandbox, e não na própria página. Gere-os em Settings › Customer events. Há dois tipos. Os pixels de app vêm com uma app e correm numa sandbox rigorosa. Os pixels personalizados são adicionados pelo comerciante e correm numa sandbox menos rigorosa, que pode carregar scripts de terceiros, como o pixel da Meta.
A ROASaurus usa ambos. O seu pixel de app é ativado quando instala a app. Reporta à ROASaurus o início do checkout, o passo de contacto e o checkout concluído. O pixel personalizado opcional acrescenta ao checkout os pixels do navegador da Meta, do TikTok, do Snapchat, do Pinterest e do Reddit, e envia as conversões do Google Ads.
Webhooks de encomendas
Um webhook é uma mensagem que o Shopify envia a uma app quando algo acontece na loja. A ROASaurus subscreve orders/paid e orders/create, entre outros. A encomenda no webhook contém o ID da encomenda, o valor, os artigos da encomenda, os dados do cliente, os tokens do carrinho e do checkout, os atributos do carrinho e o endereço IP e o navegador a partir dos quais a encomenda foi feita. Vem dos servidores do Shopify, por isso um bloqueador de anúncios ou um separador fechado não o consegue travar.
Como as encomendas são associadas aos cliques nos anúncios
O webhook diz à ROASaurus que uma encomenda foi paga. Para enviar uma conversão útil, a ROASaurus precisa também de saber que visitante fez a encomenda, porque o registo do visitante guarda os IDs de clique. Tenta estas ligações por ordem, da mais direta à menos direta:
| Método | Como funciona | Quando é usado |
|---|---|---|
| Atributo do carrinho | O script grava o ID de visitante e os valores fbc, fbp, ttp, gclid e ttclid como atributos do carrinho. O Shopify copia-os para a encomenda. | Primeira escolha |
| Tokens do carrinho e do checkout | O script associa o token do carrinho ao visitante, e o pixel de checkout associa o token do checkout. O webhook traz ambos os tokens. | Quando falta o atributo do carrinho |
| Evento do checkout | O pixel de checkout reporta o checkout concluído com o ID da encomenda e o ID do visitante. | Quando nenhum token coincide |
| Endereço de email | O email com hash de um visitante que o introduziu antes, por exemplo no passo de contacto do checkout. | Quando não há evento do checkout |
| Endereço IP e navegador | Um visitante visto com o mesmo endereço IP e navegador pouco antes da encomenda. | Só quando corresponde exatamente um visitante |
Os atributos do carrinho são a razão pela qual a associação é direta no Shopify. São pares chave-valor guardados no carrinho, e o Shopify copia-os para a encomenda. Um valor gravado na página do produto ainda lá está quando o webhook chega, mesmo que o comprador tenha fechado cedo a página de agradecimento.
Uma exceção: os botões de checkout dinâmico, como o “Comprar agora”, saltam o carrinho. A ROASaurus aconselha a desativá-los, para que o Adicionar ao carrinho seja sempre registado. As encomendas feitas através deles ainda podem ser associadas pelo token do checkout.
Uma encomenda, de ponta a ponta
Eis o que acontece com uma única encomenda vinda de um anúncio da Meta, com o pixel personalizado instalado:
page_view ?fbclid=IwAR2x…Um comprador chega através de um anúncio da Meta. O ID de clique é guardado com o visitante 3f2a.cart _tl=3f2a _tl_fbc=fb.1.…O ID de visitante e o valor de clique da Meta são guardados como atributos do carrinho.checkout_started ic-c1a9…O token do checkout é associado ao mesmo visitante.checkout_completed order-6123456789012O pixel de checkout reporta a encomenda, e o pixel da Meta envia o Purchase com este ID de evento.orders/paid #1042 id 6123456789012 $86.00O Shopify envia a encomenda paga por webhook.Meta CAPI Purchase order-6123456789012Após uma curta espera, o evento do servidor sai com os IDs de clique, o endereço IP e o user agent.Quando a compra é enviada: orders/paid ou orders/create
O webhook que dispara a compra depende da forma como os seus clientes pagam. Escolha-o em Store settings, no campo Checkout type.
| Checkout type | Webhook | Quando a compra é enviada |
|---|---|---|
| Shopify checkout | orders/paid | Quando a encomenda é paga. As encomendas que nunca são pagas não são enviadas. |
| External / COD checkout | orders/create | Quando a encomenda é criada. Para o pagamento contra reembolso e para checkouts, como o Checkify e o CheckoutChamp, que criam encomendas no Shopify. |
A ROASaurus retém cada compra durante um curto período depois de o webhook chegar. Nesse período, o evento de checkout concluído vindo do navegador costuma chegar também. O URL da página, o endereço IP e o user agent desse evento são então acrescentados ao evento do servidor, a par dos IDs de clique do registo do visitante. As encomendas que o Shopify marca como encomendas de teste são registadas, mas não são enviadas para as plataformas de anúncios.
Como funciona a eliminação de duplicados com os pixels do navegador
Quando os pixels do navegador funcionam a par dos eventos do servidor, a plataforma recebe cada compra duas vezes e tem de ficar só com uma. Fá-lo através do ID de evento. A ROASaurus dá às duas cópias de uma compra o mesmo ID, criado a partir do ID da encomenda do Shopify: order-6123456789012 para a encomenda com o ID 6123456789012. É o número longo no URL da encomenda no Shopify admin, não o nome da encomenda, como #1042. O pixel de checkout usa-o para o Purchase do navegador, e o servidor usa-o para o evento da API de conversões. A Meta, por exemplo, fica com uma cópia quando o nome do evento e o ID do evento coincidem e ambas chegam em 48 horas.
| Plataforma | Pixel do navegador da ROASaurus | Duplicados eliminados com o evento do servidor |
|---|---|---|
| Meta, TikTok, Snapchat, Pinterest, Reddit | Loja e checkout | Sim |
| X, Microsoft Advertising, Taboola | Nenhum, só eventos do servidor | Nada para unir |
| Google Ads | Só no checkout, através do pixel personalizado | Enviado uma só vez, a partir do checkout |
O ID de evento só funciona entre eventos que o tragam. Se outra app enviar o mesmo pixel, os seus eventos têm IDs próprios, e a plataforma conta a encomenda de novo. No Shopify, as causas habituais são o canal Facebook & Instagram ligado ao mesmo pixel, a app do TikTok e código de pixel colado no theme.liquid. O nosso guia sobre eventos de compra duplicados mostra como os encontrar, e Evitar contagem em duplicado lista as soluções.
Consentimento através da Customer Privacy API do Shopify
A Customer Privacy API do Shopify guarda a escolha de cookies de cada visitante. O seu banner de cookies preenche-a, quer use o banner do próprio Shopify, quer uma app de consentimento ligada à API. Os scripts e os pixels podem então perguntar-lhe se o marketing é permitido para este visitante.
Com o Respect visitor consent ativado, que é a predefinição em Store settings, o script da loja e os pixels de checkout da ROASaurus consultam a API antes de fazerem tracking.
- São guardados um ID de visitante, IDs de clique e eventos de navegação
- Os pixels do navegador carregam e enviam eventos
- A encomenda paga é enviada server-side e associada ao clique no anúncio
- Não é definido nenhum ID de visitante, por isso as visitas e os cliques nos anúncios do visitante não ficam associados a ele
- Os eventos do navegador são guardados sem ID de visitante, endereço IP nem dados do navegador, e não são enviados para as plataformas de anúncios
- A encomenda paga continua a ser enviada server-side com dados do cliente com hash a partir da encomenda, e com o endereço IP e o user agent da encomenda
- O evento que chega à plataforma de anúncios não traz ID de clique
Os emails, números de telefone, nomes e moradas recebem hash SHA-256 antes de serem enviados para uma plataforma de anúncios. Mais três detalhes importam:
- O seu banner decide. A ROASaurus segue o que a API reporta. Se a API não estiver disponível na página, a ROASaurus trata o visitante como tendo consentido, por isso verifique se o seu banner está ligado a ela.
- A página de entrada fica na encomenda. O Shopify guarda o endereço da página de entrada com cada encomenda, e este pode conter etiquetas de campanha e IDs de clique. A ROASaurus usa-o nos seus próprios relatórios de atribuição, também para os visitantes que recusaram, e não o envia para as plataformas de anúncios.
- Enviar a encomenda é uma decisão jurídica. Saber se a encomenda paga de um visitante que recusou pode sequer ser enviada é uma questão jurídica para a sua loja.
O nosso guia sobre Consent Mode v2 e RGPD explica as regras em linhas gerais, e Consentimento e privacidade tem os detalhes.
Como configurar o tracking server-side no Shopify na ROASaurus
Siga os passos de configuração por esta ordem:
- Instale a app
Vá a Add a store, escolha Shopify, introduza o seu domínio
.myshopify.come clique em Install app. Aprove a app no Shopify. A ROASaurus regista os webhooks de encomendas e ativa o seu pixel de app. - Ative o theme app embed
Na página Tracking & platforms, clique em Open theme editor, ative o app embed da ROASaurus e guarde.
- Adicione o pixel de checkout
No Shopify admin, vá a Settings › Customer events e adicione um pixel personalizado com o nome ROASaurus. Defina a sua permissão como Not required, porque o script da ROASaurus verifica ele próprio a escolha de marketing do visitante. Cole o snippet de Tracking & platforms. Precisa deste pixel para os pixels do navegador no checkout e para o Google Ads.
- Ligue as suas plataformas de anúncios
Em Tracking & platforms, clique em Add pixel para cada plataforma, ou em Connect with Facebook para a Meta. Mantenha ativada a opção de carregar também o pixel do navegador se quiser eventos do navegador sem duplicados.
- Verifique as definições da loja
Em Store settings, escolha o seu tipo de checkout e mantenha Respect visitor consent ativado se vende onde o consentimento é exigido.
- Remova os outros emissores
No canal Facebook & Instagram, remova este pixel das definições de partilha de dados. Baixar o nível de partilha de dados não chega, porque todos os níveis, incluindo o Standard, enviam o pixel da Meta a partir do navegador. Se a app do TikTok enviar o mesmo pixel, pare-o também aí e remova o código de pixel do seu tema.
O snippet do pixel personalizado é assim. Copie-o de Tracking & platforms, onde a chave da sua loja já vem preenchida. O guia de configuração do Shopify tem os mesmos passos.
self.tl = this; document.head.appendChild(document.createElement('script')).src = 'https://app.roasaurus.com/c.js?k=YOUR_STORE_KEY';Como verificar que funciona
Teste com uma encomenda real antes de confiar nos números:
- Abra a sua loja com
?roasaurus=connectedno fim do URL. Uma mensagem confirma que o script está ativo. - Para a Meta, cole o código de Events Manager › Test events no campo Test event code do pixel.
- Faça uma encomenda real de preço baixo e reembolse-a depois. As encomendas de teste do Shopify não são enviadas.
- No Event log, a entrega do servidor da encomenda aparece como sent para cada plataforma, com a resposta da plataforma.
- Na vista de teste da plataforma, verifique que o Purchase do navegador e o do servidor partilham o ID de evento
order-mais o ID da encomenda do Shopify. - Remova depois o código do evento de teste.
O que o tracking server-side no Shopify não resolve
- Consentimento recusado. As encomendas de visitantes que recusaram os cookies de marketing são enviadas, mas sem ID de clique, por isso as plataformas de anúncios associam-nas pior.
- Limites de cookies do Safari. Um comprador que volta depois de mais de 7 dias pode parecer um visitante novo. Um subdomínio de tracking first-party mantém a recolha no seu domínio, mas o Safari pode mesmo assim limitar esses cookies a 7 dias.
- Diferenças de atribuição. Cada plataforma de anúncios continua a atribuir as vendas com as suas próprias janelas e modelos. Para comparar canais com um único conjunto de regras, use a sua própria atribuição.
- Outras apps no mesmo pixel. Os IDs de evento só unem os eventos que os partilham.
O que corrige é a compra que aconteceu, mas nunca chegou à plataforma de anúncios porque o evento do navegador se perdeu. Para saber o que a ROASaurus envia a cada plataforma, veja tracking server-side e a integração com o Shopify.
Fontes
- Shopify: Customer Privacy API
- Shopify: Authenticate app proxies
- Shopify Help Center: Manage your custom pixels
- Shopify Help Center: Facebook data sharing
- Meta: Handling Duplicate Pixel and Conversions API Events
Na ROASaurus
- Ajuda: configurar a ROASaurus no Shopify
- Integração com o Shopify
- Tracking server-side na ROASaurus
- Ajuda: consentimento e privacidade