Rastreamento

Rastreamento server-side no Shopify: como funciona e como configurar

Como o rastreamento server-side funciona no Shopify: eventos do cliente, o app proxy, o webhook orders/paid, associação de pedidos, deduplicação, consentimento e configuração.

·Atualizado em ·12 min de leitura·Pela equipe do ROASaurus

Principais conclusões
  • 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.

Clique no anúncioA URL de entrada traz fbclid, ttclid ou gclid.
Embed do temaGuarda o ID de clique com um ID de visitante e salva os dois no carrinho.
Pedido do ShopifyO Shopify copia os atributos do carrinho para o pedido.
Webhook orders/paidO Shopify envia o pedido pago ao ROASaurus.
Conversions APIsA compra sai com os IDs de clique e dados do cliente em hash.
O navegador captura o clique. O pedido entrega a compra. Os atributos do carrinho ligam 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.

ParteOnde rodaO que ele faz
Embed do temaEm todas as páginas da lojaCarrega o script de rastreamento, lê os IDs de clique em anúncios e salva o ID de visitante no carrinho
App proxyUm caminho no domínio da sua própria lojaRecebe os eventos da loja como requisições first-party
Customer events (pixels)Checkout e página de agradecimentoInforma as etapas do checkout e o checkout concluído a partir de um sandbox
Webhooks de pedidoServidores do ShopifyEnviam o pedido ao app quando ele é criado e quando é pago
As três primeiras partes tratam do que acontece no navegador e capturam o clique. O webhook vem dos servidores do Shopify e entrega o pedido.

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étodoComo funcionaQuando é usado
Atributo do carrinhoO 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 checkoutO 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 checkoutO 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-mailO 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 navegadorUm 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 e os tokens dão uma ligação direta do pedido ao visitante. A alternativa pelo IP nunca é usada quando dois visitantes poderiam se encaixar.

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.
Os dois eventos Purchase têm o ID de evento order-6123456789012, então o Meta mantém um. A cópia do servidor também chega quando a cópia do navegador foi bloqueada.

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 checkoutWebhookQuando a compra é enviada
Shopify checkoutorders/paidQuando o pedido é pago. Pedidos que nunca são pagos não são enviados.
External / COD checkoutorders/createQuando 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.

PlataformaPixel do navegador do ROASaurusDeduplicado com o evento do servidor
Meta, TikTok, Snapchat, Pinterest, RedditLoja e checkoutSim
X, Microsoft Advertising, TaboolaNenhum, só eventos do servidorNada para mesclar
Google AdsSó no checkout, pelo pixel personalizadoEnviado uma vez, a partir do checkout
Rodar o pixel do navegador e o evento do servidor juntos é seguro para o Meta, o TikTok, o Snapchat, o Pinterest e o Reddit: cada um mantém uma só cópia de cada evento que eles compartilham.

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.

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.

O visitante permite cookies de marketing
  • 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
O visitante recusa os cookies de marketing
  • 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
O rastreamento server-side não elimina a necessidade de consentimento. Sem consentimento, o pedido pago ainda chega às plataformas de anúncios, mas sem 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:

  1. Instale o app

    Vá a Add a store, escolha Shopify, informe o seu domínio .myshopify.com e clique em Install app. Aprove o app no Shopify. O ROASaurus registra os webhooks de pedido e ativa o pixel de app.

  2. Ative o embed do tema

    Na página Tracking & platforms, clique em Open theme editor, ative o embed do app ROASaurus e salve.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Pixel personalizado do checkout
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:

  1. Abra a sua loja com ?roasaurus=connected no fim da URL. Uma mensagem confirma que o script está ativo.
  2. Para o Meta, cole o código de Events Manager › Test events no campo Test event code do pixel.
  3. Faça um pedido real, de preço baixo, e reembolse-o depois. Os pedidos de teste do Shopify não são enviados.
  4. No Event log, o envio do servidor para o pedido aparece como sent para cada plataforma, com a resposta da plataforma.
  5. 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.
  6. 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

  1. Shopify: Customer Privacy API
  2. Shopify: Authenticate app proxies
  3. Shopify Help Center: Manage your custom pixels
  4. Shopify Help Center: Facebook data sharing
  5. Meta: Handling Duplicate Pixel and Conversions API Events

No ROASaurus

Continue lendo

RastreamentoBloqueadores de anúncios e rastreamento: o que a sua loja perdeBloqueadores de anúncios barram os pixels de rastreamento, e as plataformas de anúncios deixam de ver compras. Veja quais eventos se perdem, por que os eventos server-side não se perdem e como medir a sua diferença.RastreamentoConsent Mode v2 e GDPR: o que uma loja online pode enviarConsent Mode v2 para lojas online: os quatro sinais de consentimento do Google, o que a lei da UE exige e o que o rastreamento server-side ainda pode enviar. Apenas informações gerais.RastreamentoEventos de compra duplicados: por que as vendas são contadas duas vezesEventos de compra duplicados inflam as conversões e o ROAS. Veja as causas, como Meta, TikTok, Snapchat, Pinterest e Reddit deduplicam e como corrigir o problema.
Perguntas frequentes

Perguntas respondidas

Ainda preciso do pixel do navegador com o rastreamento server-side no Shopify?

O melhor é usar os dois. O pixel do navegador acrescenta cookies, como o fbp, e o contexto da página, e o evento do servidor chega quando o navegador falha. Com o mesmo ID de evento nos dois, a plataforma conta cada compra uma só vez.

O rastreamento server-side depende da página de agradecimento do Shopify?

Não. A compra é montada a partir do pedido que o Shopify envia por webhook quando ele é pago. O evento da página de agradecimento só acrescenta detalhes, como o endereço IP e o user agent, quando chega a tempo.

Preciso de um CNAME ou de uma mudança de DNS no Shopify?

Não. Os eventos da loja passam pelo app proxy do Shopify, no domínio da sua própria loja. Um subdomínio de rastreamento first-party é opcional.

O rastreamento server-side no Shopify está de acordo com o GDPR?

O rastreamento server-side é uma forma de entregar dados, não uma base legal. Com Respect visitor consent ativado, o ROASaurus segue a Customer Privacy API do Shopify, mas o pedido pago ainda é enviado com dados em hash. Pergunte ao seu assessor jurídico o que a sua loja precisa.

Como os pedidos com pagamento na entrega são rastreados no Shopify?

Escolha External / COD checkout como o tipo de checkout em Store settings. O ROASaurus então envia a compra quando o pedido é criado, e não quando é pago.

Quais plataformas de anúncios recebem eventos do servidor de uma loja Shopify?

Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Advertising, Taboola, LinkedIn, OpenAI Ads, Spotify, AppLovin, Criteo, AdRoll e Outbrain. As conversões do Google Ads são enviadas a partir do checkout do Shopify, pelo pixel personalizado.

Cada venda, rastreada até o anúncio que a gerou

Rastreamento server-side, lucro e valor vitalício em um só app. 14 dias de teste grátis, sem cartão de crédito.

Comece seu teste grátis →