Guia de integração
Analytics na Shopify
O snippet vai no layout principal do tema, o theme.liquid, e passa a rodar em todas as páginas da vitrine: home, coleções, produtos e carrinho.
Antes de começar
- Permissão para editar o código do tema na Shopify.
- A
site_keye o domínio da loja em Allowed origins — o domínio próprio e o*.myshopify.com, se você usa os dois.
Instalação
1Abra o editor de código do tema
No admin da Shopify: Loja virtual → Temas, no tema publicado clique em … → Editar código. Se quiser testar antes, duplique o tema e edite a cópia.
2Cole o snippet no
theme.liquidEm Layout, abra
theme.liquide cole o snippet logo antes do</head>. Salve.layout/theme.liquid <!-- antes do </head> --> <script src="https://cdn.jsdelivr.net/npm/@racoelho/analytics@0.2/dist/index.global.js"></script> <script>window.analytics = new Analytics.Analytics({ siteKey: 'YOUR_SITE_KEY' })</script> </head>
Eventos e metas
Para contar quem adiciona ao carrinho, cole este trecho no theme.liquid, antes do </body>. Ele usa os dados do produto que o Liquid já tem na página.
{% if template.name == 'product' %}
<script>
// qualquer formulário de "adicionar ao carrinho" na página de produto
document.addEventListener('submit', function (event) {
if (event.target.matches('form[action*="/cart/add"]')) {
window.analytics && window.analytics.addToCart(
'{{ product.id }}',
{{ product.title | json }},
{{ product.price | divided_by: 100.0 }},
1
)
}
})
</script>
{% endif %}No painel, crie uma meta do tipo evento add_to_cart e um funil produto → carrinho para ver por origem quem chega até lá. Compras: o checkout da Shopify não usa o theme.liquid, então o script não roda lá. Para contar pedidos, envie o evento purchase do seu servidor (por exemplo, a partir de um webhook de pedido) pela ingestão server-side.
Navegação entre páginas
A vitrine da Shopify recarrega a página a cada navegação, e cada carga conta a própria pageview. Não há nada a configurar.
Confira se está funcionando
- Abra o site publicado numa janela comum, sem bloqueador de anúncios.
- Nas ferramentas do navegador, aba Network, filtre por
v1/i: deve aparecer umPOSTcom status200em até 3 segundos (ou quando você sai da página). - No painel, os eventos aparecem em cerca de 30 segundos.
- Abra uma página de produto, clique em adicionar ao carrinho e confira o evento
add_to_cartnoPOSTseguinte.
Problemas comuns
- Troquei de tema e os dados pararam
- O snippet fica no código do tema. Ao publicar outro tema, cole o snippet de novo no
theme.liquiddele. - Não vejo eventos do checkout
- É esperado: o checkout não carrega o
theme.liquid. Use a ingestão server-side para registrar as compras. - A requisição volta 403 (
origin_not_allowed) - O domínio não está em Allowed origins nas configurações do site. Cadastre a origem exata — com
https://, com e semwww, e endereços de teste comohttp://localhost:3000se quiser medir em desenvolvimento. - Nenhuma requisição aparece na aba Network
- O SDK respeita o Do Not Track por padrão: se o seu navegador envia DNT, nada é enviado. Teste em outro navegador ou perfil. Bloqueadores de anúncio também podem barrar o script.
- As pageviews aparecem em dobro
- O SDK foi inicializado duas vezes (por exemplo, o script colado no tema e também por um plugin). Mantenha uma única instância por página.