O checkout do Shopify roda em um domínio separado do resto da sua loja, então o script normal de tracking não consegue seguir os visitantes por ele. Para capturar as conclusões de checkout, use um dos dois hooks nativos do Shopify abaixo.
Abordagem 1 — Pixel de Customer Events (recomendado)
A API Customer Events do Shopify roda num iframe sandbox em todas as páginas de checkout, incluindo a etapa de sucesso. É a forma suportada de adicionar pixels de tracking em 2026.
- No seu admin do Shopify, vá em Settings → Customer events → Add custom pixel.
- Nomeie-o como "Zenovay tracker".
- Cole este código:
analytics.subscribe('checkout_completed', (event) => {
const checkout = event.data.checkout;
// Carregue o tracker Zenovay dentro do sandbox do pixel
const script = document.createElement('script');
script.src = 'https://api.zenovay.com/z.js';
script.setAttribute('data-tracking-code', 'YOUR_TRACKING_CODE');
script.defer = true;
script.onload = () => {
// ('revenue', amount, currency, properties)
window.zenovay('revenue',
Number(checkout.totalPrice.amount),
checkout.totalPrice.currencyCode,
{
order_id: checkout.order.id,
item_count: checkout.lineItems.length
}
);
};
document.head.appendChild(script);
});
- Clique em Save e Connect. Os Customer Events rodam automaticamente em todo checkout a partir de agora.
Abordagem 2 — JS da Order Status (legado)
Para lojas Shopify Plus ou temas antigos que não migraram, você ainda pode injetar script em Settings → Checkout → Order status page → Additional scripts:
<script>
(function() {
var script = document.createElement('script');
script.src = 'https://api.zenovay.com/z.js';
script.setAttribute('data-tracking-code', 'YOUR_TRACKING_CODE');
script.defer = true;
script.onload = function() {
window.zenovay && window.zenovay('revenue',
{{ checkout.total_price | money_without_currency | replace:',','.' }},
'{{ shop.currency }}',
{ order_id: '{{ checkout.order_id }}' }
);
};
document.head.appendChild(script);
})();
</script>
Os placeholders Liquid entre chaves duplas são preenchidos pelo Shopify no momento da confirmação do pedido.
Importante: o que acontece com carrinhos abandonados
Nenhuma das abordagens dispara para carrinhos abandonados — por design, você só quer contar compras concluídas. Para rastrear o abandono do funnel de carrinho abandonado, instale o tracker normal na sua loja e crie um funnel: /cart → /checkouts/... → goal purchase.
Verificando que funciona
- Faça um pedido de teste na sua loja (use o Bogus Gateway em modo dev se não quiser cobrar um cartão real).
- Abra o dashboard do seu site no Zenovay e mude para a aba Live View. Em ~30 segundos, a nova sessão e a conversão deverão aparecer.
- O revenue também deve refletir na aba Revenue.
Se o evento não aparecer:
- Abra a página de status do pedido em DevTools → aba Network e procure por uma requisição para
api.zenovay.com. Se ela estiver faltando, seu snippet não rodou. - Confira se
YOUR_TRACKING_CODEé o valor correto. Você pode encontrá-lo no snippet de instalação do seu site (o atributodata-tracking-code) — veja Visão geral da integração com Shopify para onde ele é exibido. - Para a Abordagem 1, veja a prévia ao vivo do pixel em Customer Events → [Seu pixel] → Test.
Disponibilidade por plano
O tracking de revenue está nos planos Pro e superiores. Usuários Free podem ainda enviar um goal purchase com qualquer uma das abordagens, mas o dashboard de revenue e a atribuição de revenue permanecem bloqueados até que você faça upgrade.