Tracking

Tracking server-side no Shopify: como funciona e configuração

Como funciona o tracking server-side no Shopify: eventos de clientes, o proxy da app, o webhook orders/paid, associação de encomendas, eliminação de duplicados, consentimento e configuração.

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

Pontos-chave
  • 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.

Clique no anúncioO URL de entrada traz fbclid, ttclid ou gclid.
Theme app embedGuarda o ID de clique com um ID de visitante e grava ambos no carrinho.
Encomenda do ShopifyO Shopify copia os atributos do carrinho para a encomenda.
Webhook orders/paidO Shopify envia a encomenda paga para a ROASaurus.
Conversions APIsA compra sai com IDs de clique e dados do cliente com hash.
O navegador capta o clique. A encomenda entrega a compra. Os atributos do carrinho ligam as duas.

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.

ParteOnde correO que faz
Theme app embedTodas as páginas da lojaCarrega o script de tracking, lê os IDs de clique dos anúncios e guarda o ID de visitante no carrinho
Proxy da appUm caminho no domínio da sua própria lojaRecebe eventos da loja como pedidos first-party
Eventos de clientes (pixels)O checkout e a página de agradecimentoReportam os passos do checkout e o checkout concluído a partir de uma sandbox
Webhooks de encomendasOs servidores do ShopifyEnviam a encomenda para a app quando é criada e quando é paga
As primeiras três partes tratam do que acontece no navegador e captam o clique. O webhook vem dos servidores do Shopify e entrega a encomenda.

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é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 copia-os para a encomenda.Primeira escolha
Tokens do carrinho e do checkoutO 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 checkoutO 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 emailO 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 navegadorUm visitante visto com o mesmo endereço IP e navegador pouco antes da encomenda.Só quando corresponde exatamente um visitante
Os atributos do carrinho e os tokens dão uma ligação direta da encomenda ao visitante. A alternativa pelo IP nunca é usada quando dois visitantes podem corresponder.

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.
Os dois eventos Purchase trazem o ID de evento order-6123456789012, por isso a Meta fica com um. A cópia do servidor chega também quando a cópia do navegador foi bloqueada.

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 typeWebhookQuando a compra é enviada
Shopify checkoutorders/paidQuando a encomenda é paga. As encomendas que nunca são pagas não são enviadas.
External / COD checkoutorders/createQuando 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.

PlataformaPixel do navegador da ROASaurusDuplicados eliminados com o evento do servidor
Meta, TikTok, Snapchat, Pinterest, RedditLoja e checkoutSim
X, Microsoft Advertising, TaboolaNenhum, só eventos do servidorNada para unir
Google AdsSó no checkout, através do pixel personalizadoEnviado uma só vez, a partir do checkout
Usar o pixel do navegador e o evento do servidor em conjunto é seguro para a Meta, o TikTok, o Snapchat, o Pinterest e o Reddit: cada um fica com uma única cópia de cada evento que partilham.

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.

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.

O visitante permite os cookies de marketing
  • 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
O visitante recusa os cookies de marketing
  • 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
O tracking server-side não elimina a necessidade de consentimento. Sem consentimento, a encomenda paga continua a chegar às plataformas de anúncios, mas sem 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:

  1. Instale a app

    Vá a Add a store, escolha Shopify, introduza o seu domínio .myshopify.com e clique em Install app. Aprove a app no Shopify. A ROASaurus regista os webhooks de encomendas e ativa o seu pixel de app.

  2. Ative o theme app embed

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

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

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

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

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

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 verificar que funciona

Teste com uma encomenda real antes de confiar nos números:

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

  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

Na ROASaurus

Continue a ler

TrackingBloqueadores de anúncios e tracking: o que a sua loja perdeOs bloqueadores de anúncios travam os pixels de tracking, por isso as plataformas de anúncios perdem compras. Veja que eventos se perdem, porque é que os eventos server-side não se perdem e como medir a diferença na sua loja.TrackingConsent Mode v2 e RGPD: o que uma loja online pode enviarConsent Mode v2 para lojas online: os quatro sinais de consentimento da Google, o que a lei da UE exige e o que o tracking server-side ainda pode enviar. Apenas informação geral.TrackingEventos de compra duplicados: porque é que as vendas são contadas duas vezesOs eventos de compra duplicados inflacionam as conversões e o ROAS. Veja as causas, como a Meta, o TikTok, o Snapchat, o Pinterest e o Reddit eliminam duplicados e como corrigir o problema.
FAQ

Perguntas e respostas

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

O melhor é usar ambos. 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 tracking server-side depende da página de agradecimento do Shopify?

Não. A compra é criada a partir da encomenda que o Shopify envia por webhook quando é paga. 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 alteração de DNS no Shopify?

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

O tracking server-side no Shopify cumpre o RGPD?

O tracking server-side é uma forma de entregar dados, não uma base legal. Com o Respect visitor consent ativado, a ROASaurus segue a Customer Privacy API do Shopify, mas a encomenda paga continua a ser enviada com dados com hash. Pergunte ao seu consultor jurídico o que a sua loja precisa.

Como são acompanhadas as encomendas com pagamento contra reembolso no Shopify?

Escolha External / COD checkout como tipo de checkout em Store settings. A ROASaurus passa então a enviar a compra quando a encomenda é criada, em vez de quando é paga.

Que 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 através do pixel personalizado.

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 →