- No Shopify, o rastreamento server-side envia cada compra a partir do pedido pago que o Shopify informa por webhook, então não depende de a página de agradecimento carregar.
- O ID de visitante e os IDs de clique em anúncios são salvos como atributos do carrinho, então o Shopify os copia para o pedido e o pedido pode ser associado ao clique.
- Os eventos do navegador e do servidor compartilham um ID de evento montado a partir do ID do pedido, então o Meta, o TikTok, o Snapchat, o Pinterest e o Reddit contam cada compra uma só vez.
- Com Respect visitor consent ativado, um visitante que recusa os cookies de marketing não recebe ID de visitante e os eventos do navegador dele não são enviados às plataformas de anúncios, mas o pedido pago ainda é enviado com dados do cliente em hash vindos do pedido.
- A configuração no ROASaurus tem quatro etapas principais: instalar o app, ativar o embed do tema, adicionar o pixel de checkout e conectar as suas plataformas de anúncios.
Rastreamento server-side no Shopify significa que cada compra chega ao Meta, ao TikTok e a outras plataformas de anúncios a partir dos dados de pedido da sua loja, enviada por um servidor, e não apenas por um pixel no navegador do comprador. O Shopify informa cada pedido pago ao app de rastreamento por webhook, e o app o envia à Conversions API de cada plataforma, associado ao clique no anúncio que trouxe o comprador.
Este guia cobre as partes do Shopify nesse fluxo: o embed do tema e o app proxy, os pixels no checkout, o webhook orders/paid, a associação de pedidos, a deduplicação, o consentimento e a configuração no ROASaurus. Para a ideia geral, leia antes o que é rastreamento server-side.
Como o rastreamento server-side funciona no Shopify
O clique e a compra acontecem em momentos diferentes e em lugares diferentes. O clique só é visível no navegador, na página de entrada. O pedido pago só é certo do lado do Shopify, quando o pagamento é capturado. O rastreamento server-side registra o primeiro, espera o segundo e junta os dois.
As partes do Shopify: app embed, app proxy, pixels e webhooks
Uma loja Shopify oferece a um app de rastreamento quatro lugares para trabalhar. Cada um tem uma função diferente, e uma configuração completa usa os quatro.
| Parte | Onde roda | O que ele faz |
|---|---|---|
| Embed do tema | Em todas as páginas da loja | Carrega o script de rastreamento, lê os IDs de clique em anúncios e salva o ID de visitante no carrinho |
| App proxy | Um caminho no domínio da sua própria loja | Recebe os eventos da loja como requisições first-party |
| Customer events (pixels) | Checkout e página de agradecimento | Informa as etapas do checkout e o checkout concluído a partir de um sandbox |
| Webhooks de pedido | Servidores do Shopify | Enviam o pedido ao app quando ele é criado e quando é pago |
O embed do tema e o app proxy
Um theme app embed é um bloco que um app adiciona ao seu tema. Você o ativa no editor de temas, então não há código para colar. O embed do ROASaurus carrega um script em todas as páginas. Na página de entrada, ele lê IDs de clique como fbclid, ttclid e gclid e os parâmetros UTM, e os guarda com um ID de visitante first-party.
O script envia os eventos pelo app proxy do Shopify. Um app proxy encaminha requisições de um caminho do seu próprio domínio, como yourstore.com/apps/roasaurus, para o servidor do app. Para o navegador, isso é uma requisição ao seu próprio site, o que pode ajudar contra bloqueadores de anúncios que bloqueiam domínios de rastreamento conhecidos. O Shopify remove o cabeçalho Cookie das requisições do app proxy e o cabeçalho Set-Cookie das respostas, então o ID de visitante viaja dentro do próprio evento, e não em um cookie.
Customer events e pixels no checkout
No checkout do Shopify, os scripts de rastreamento rodam como pixels em um sandbox, não na própria página. Você os gerencia em Settings › Customer events. Há dois tipos. Os pixels de app vêm com um app e rodam em um sandbox rigoroso. Os pixels personalizados são adicionados pelo lojista e rodam em um sandbox menos rigoroso, que pode carregar scripts de terceiros, como o pixel do Meta.
O ROASaurus usa os dois. O pixel de app dele é ativado quando você instala o app. Ele informa ao ROASaurus o início do checkout, a etapa de contato e o checkout concluído. O pixel personalizado opcional adiciona ao checkout os pixels do navegador do Meta, TikTok, Snapchat, Pinterest e Reddit, e envia as conversões do Google Ads.
Webhooks de pedido
Um webhook é uma mensagem que o Shopify envia a um app quando algo acontece na loja. O ROASaurus assina orders/paid e orders/create, entre outros. O pedido no webhook contém o ID do pedido, o valor, os itens, os dados do cliente, os tokens de carrinho e de checkout, os atributos do carrinho e o endereço IP e o navegador de onde o pedido foi feito. Ele vem dos servidores do Shopify, então um bloqueador de anúncios ou uma aba fechada não consegue impedi-lo.
Como os pedidos são associados aos cliques em anúncios
O webhook informa ao ROASaurus que um pedido foi pago. Para enviar uma conversão útil, o ROASaurus também precisa saber qual visitante fez o pedido, porque o registro do visitante contém os IDs de clique. Ele tenta estas ligações em ordem, da mais direta para a 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 os copia para o pedido. | Primeira escolha |
| Tokens de carrinho e de checkout | O script liga o token do carrinho ao visitante, e o pixel de checkout liga o token do checkout. O webhook traz os dois tokens. | Quando o atributo do carrinho está ausente |
| Evento de checkout | O pixel de checkout informa o checkout concluído com o ID do pedido e o ID de visitante. | Quando nenhum token corresponde |
| Endereço de e-mail | O e-mail em hash de um visitante que o informou antes, por exemplo na etapa de contato do checkout. | Quando não há evento de checkout |
| Endereço IP e navegador | Um visitante visto com o mesmo endereço IP e navegador pouco antes do pedido. | Só quando exatamente um visitante se encaixa |
Os atributos do carrinho são o motivo de a associação ser direta no Shopify. São pares chave-valor guardados no carrinho, e o Shopify os copia para o pedido. Um valor gravado na página do produto ainda está lá quando o webhook chega, mesmo que o comprador tenha fechado a página de agradecimento antes da hora.
Uma exceção: botões de checkout acelerado, como Comprar agora, pulam o carrinho. O ROASaurus recomenda desativá-los, para que a adição ao carrinho seja sempre rastreada. Os pedidos feitos por eles ainda podem ser associados pelo token do checkout.
Um pedido, de ponta a ponta
Veja o que acontece com um único pedido vindo de um anúncio do Meta, com o pixel personalizado instalado:
page_view ?fbclid=IwAR2x…Um comprador chega de um anúncio do 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 do Meta são salvos como atributos do carrinho.checkout_started ic-c1a9…O token do checkout é ligado ao mesmo visitante.checkout_completed order-6123456789012O pixel de checkout informa o pedido, e o pixel do Meta envia o Purchase com este ID de evento.orders/paid #1042 id 6123456789012 $86.00O Shopify envia o pedido pago por webhook.Meta CAPI Purchase order-6123456789012Depois de uma breve 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
Qual webhook dispara a compra depende de como os seus clientes pagam. Você o escolhe como o tipo de checkout em Store settings.
| Tipo de checkout | Webhook | Quando a compra é enviada |
|---|---|---|
| Shopify checkout | orders/paid | Quando o pedido é pago. Pedidos que nunca são pagos não são enviados. |
| External / COD checkout | orders/create | Quando o pedido é criado. Para pagamento na entrega e para checkouts como Checkify e CheckoutChamp que criam pedidos no Shopify. |
O ROASaurus retém cada compra por pouco tempo depois que o webhook chega. Nesse intervalo, o evento de checkout concluído vindo do navegador normalmente chega também. A URL da página, o endereço IP e o user agent dele são então acrescentados ao evento do servidor, junto com os IDs de clique do registro do visitante. Os pedidos que o Shopify marca como pedidos de teste são registrados, mas não são enviados às plataformas de anúncios.
Como funciona a deduplicação com os pixels do navegador
Quando os pixels do navegador rodam junto com os eventos do servidor, a plataforma recebe cada compra duas vezes e precisa manter só uma. Ela faz isso com o ID de evento. O ROASaurus dá às duas cópias de uma compra o mesmo ID, montado a partir do ID do pedido do Shopify: order-6123456789012 para o pedido com ID 6123456789012. Esse é o número longo na URL de admin do pedido, não o nome do pedido, como #1042. O pixel de checkout o usa para o Purchase do navegador, e o servidor o usa para o evento da Conversions API. O Meta, por exemplo, mantém uma cópia quando o nome do evento e o ID do evento coincidem e as duas chegam em até 48 horas.
| Plataforma | Pixel do navegador do ROASaurus | Deduplicado 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 mesclar |
| Google Ads | Só no checkout, pelo pixel personalizado | Enviado uma vez, a partir do checkout |
O ID de evento só funciona entre eventos que o carregam. Se outro app envia o mesmo pixel, os eventos dele têm IDs próprios, e a plataforma conta o pedido de novo. No Shopify, as causas habituais são o canal Facebook & Instagram conectado ao mesmo pixel, o app do TikTok e código de pixel colado no theme.liquid. O nosso guia sobre eventos de compra duplicados mostra como encontrá-los, e Evitar a contagem em duplicidade lista as correções.
Consentimento pela Customer Privacy API do Shopify
A Customer Privacy API do Shopify guarda a escolha de cookies de cada visitante. O seu banner de cookies a preenche, quer você use o banner do próprio Shopify, quer um app de consentimento conectado à API. Scripts e pixels podem então perguntar a ela se o marketing é permitido para esse visitante.
Com Respect visitor consent ativado, que é o padrão em Store settings, o script da loja e os pixels de checkout do ROASaurus consultam a API antes de rastrear.
- Um ID de visitante, IDs de clique e eventos de navegação são guardados
- Os pixels do navegador carregam e enviam eventos
- O pedido pago é enviado via server-side e associado ao clique no anúncio
- Nenhum ID de visitante é definido, então as visitas e os cliques em anúncios dele não ficam associados a ele
- Os eventos do navegador são mantidos sem ID de visitante, endereço IP nem detalhes do navegador, e não são enviados às plataformas de anúncios
- O pedido pago ainda é enviado via server-side com dados do cliente em hash vindos do pedido, e com o endereço IP e o user agent do pedido
- O evento que chega à plataforma de anúncios não leva ID de clique
E-mails, telefones, nomes e endereços passam por hash SHA-256 antes de serem enviados a uma plataforma de anúncios. Mais três detalhes importam:
- O seu banner decide. O ROASaurus segue o que a API informa. Se a API não está disponível na página, o ROASaurus trata o visitante como consentindo, então confira se o seu banner está conectado a ela.
- A página de entrada permanece no pedido. O Shopify guarda o endereço da página de entrada com cada pedido, e ele pode conter tags de campanha e IDs de clique. O ROASaurus o usa nos próprios relatórios de atribuição, também para visitantes que recusaram, e não o envia às plataformas de anúncios.
- Enviar o pedido é uma decisão jurídica. Se o pedido pago de um visitante que recusou pode ou não ser enviado é uma questão jurídica da sua loja.
O nosso guia sobre Consent Mode v2 e GDPR explica as regras em linhas gerais, e Consentimento e privacidade traz os detalhes.
Como configurar o rastreamento server-side no Shopify com o ROASaurus
Faça as etapas de configuração nesta ordem:
- Instale o app
Vá a Add a store, escolha Shopify, informe o seu domínio
.myshopify.come clique em Install app. Aprove o app no Shopify. O ROASaurus registra os webhooks de pedido e ativa o pixel de app. - Ative o embed do tema
Na página Tracking & platforms, clique em Open theme editor, ative o embed do app ROASaurus e salve.
- Adicione o pixel de checkout
No Shopify admin, vá a Settings › Customer events e adicione um pixel personalizado chamado ROASaurus. Defina a permissão dele como Not required, porque o script do ROASaurus verifica por conta própria a escolha de marketing do visitante. Cole o snippet de Tracking & platforms. Você precisa desse pixel para os pixels do navegador no checkout e para o Google Ads.
- Conecte as suas plataformas de anúncios
Em Tracking & platforms, clique em Add pixel para cada plataforma, ou em Connect with Facebook para o Meta. Mantenha ativada a opção de carregar também o pixel do navegador se você quer eventos do navegador deduplicados.
- Confira as configurações da loja
Em Store settings, escolha o seu tipo de checkout e mantenha Respect visitor consent ativado se você vende onde o consentimento é exigido.
- Remova os outros remetentes
No canal Facebook & Instagram, remova esse pixel das configurações de compartilhamento de dados. Reduzir o nível de compartilhamento de dados não basta, porque todos os níveis, inclusive o Standard, enviam o pixel do Meta pelo navegador. Se o app do TikTok envia o mesmo pixel, pare o envio lá também e remova o código do 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 as mesmas etapas.
self.tl = this; document.head.appendChild(document.createElement('script')).src = 'https://app.roasaurus.com/c.js?k=YOUR_STORE_KEY';Como conferir se está funcionando
Teste com um pedido real antes de confiar nos números:
- Abra a sua loja com
?roasaurus=connectedno fim da URL. Uma mensagem confirma que o script está ativo. - Para o Meta, cole o código de Events Manager › Test events no campo Test event code do pixel.
- Faça um pedido real, de preço baixo, e reembolse-o depois. Os pedidos de teste do Shopify não são enviados.
- No Event log, o envio do servidor para o pedido aparece como sent para cada plataforma, com a resposta da plataforma.
- Na visualização de teste da plataforma, confira se o Purchase do navegador e o do servidor compartilham o ID de evento
order-mais o ID do pedido do Shopify. - Remova o código do evento de teste depois.
O que o rastreamento server-side no Shopify não resolve
- Consentimento recusado. Os pedidos de visitantes que recusaram os cookies de marketing são enviados, mas sem ID de clique, então as plataformas de anúncios os associam pior.
- Os limites de cookies do Safari. Um comprador que volta depois de mais de 7 dias pode parecer um visitante novo. Um subdomínio de rastreamento first-party mantém a coleta no seu domínio, mas o Safari ainda pode limitar esses cookies a 7 dias.
- Diferenças de atribuição. Cada plataforma de anúncios ainda credita as vendas com as próprias janelas e modelos. Para comparar os canais com um único conjunto de regras, use a sua própria atribuição.
- Outros apps no mesmo pixel. Os IDs de evento só unem eventos que os compartilham.
O que ele resolve são as compras que aconteceram, mas nunca chegaram à plataforma de anúncios porque o evento do navegador se perdeu. Para ver o que o ROASaurus envia a cada plataforma, veja rastreamento 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
No ROASaurus
- Ajuda: configurar o ROASaurus no Shopify
- Integração com o Shopify
- Rastreamento server-side no ROASaurus
- Ajuda: consentimento e privacidade