Integração com Squarespace
Adicione o Zenovay ao seu site Squarespace através do painel Code Injection. A integração não requer código, funciona em todos os templates do Squarespace e respeita o banner de consentimento GDPR/CCPA do Squarespace por padrão.
O Code Injection requer um plano Business ou superior (a partir de $23/mês). Planos Personal não expõem o Code Injection.
Início rápido
| Etapa | Onde | O que fazer |
|---|---|---|
| 1 | Painel do Zenovay | Copie seu snippet de rastreamento |
| 2 | Admin do Squarespace → Settings → Advanced → Code Injection | Cole-o em Header |
| 3 | Salve | Clique em Save no topo do painel |
| 4 | Painel do Zenovay | Visitantes em tempo real aparecem em ~30 segundos |
Método 1: Code Injection para todo o site (Recomendado)
O painel Code Injection do Squarespace escreve HTML bruto no <head> de todas as páginas. É a forma recomendada de adicionar qualquer análise ou pixel de terceiros.
Passo a passo
- Faça login no painel de administração do Squarespace.
- No menu inicial, clique em Settings.
- Role para baixo e clique em Advanced.
- Clique em Code Injection.
- Cole o snippet do Zenovay na caixa Header:
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
- Clique em Save no topo do painel.
Verifique
Abra seu site ao vivo em uma janela anônima e visualize o código-fonte. Procure por <script defer data-tracking-code=...> entre <head> e </head>. Sua visita deve aparecer na visualização em tempo real do Zenovay em ~30 segundos.
Método 2: Code Injection por página (planos Premium / Business)
Se você quiser rastrear apenas páginas específicas, use a injeção por página:
- No admin, passe o mouse sobre a página no painel Pages.
- Clique no ícone de engrenagem para abrir as Page Settings.
- Abra a aba Advanced.
- Cole o snippet na caixa Page Header Code Injection.
- Salve.
A injeção por página é executada depois da injeção para todo o site. Não cole o rastreador em ambos os escopos — você vai contar duas vezes.
Rastreamento de eventos personalizados
Após o carregamento do rastreador, você pode chamar window.zenovay() de qualquer Code Block em uma página.
Rastreie cliques em CTA
- No editor de páginas, adicione um bloco Code ao lado do seu botão.
- Defina o idioma como HTML.
- Cole:
<script>
document.addEventListener('DOMContentLoaded', () => {
const cta = document.querySelector('[data-zv-cta="hero"]');
if (!cta || !window.zenovay) return;
cta.addEventListener('click', () => {
window.zenovay('track', 'cta_clicked', { location: 'hero', page: location.pathname });
});
});
</script>
- Adicione um atributo
data-zv-cta="hero"ao seu botão editando as configurações do bloco (alguns templates exigem envolver o botão em um bloco de código para vincular atributos brutos).
Rastreie envios de formulário
Os formulários nativos do Squarespace emitem um evento Y.Mojito.SquarespaceFormFront, mas a abordagem mais simples e compatível com todos os templates é ouvir o evento submit:
<script>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('form[data-form-id]').forEach(form => {
form.addEventListener('submit', () => {
if (window.zenovay) {
window.zenovay('track', 'form_submitted', {
form_id: form.getAttribute('data-form-id'),
page: location.pathname,
});
}
});
});
});
</script>
Identifique clientes logados (Member Areas)
Se você usa Squarespace Member Areas, pode identificar clientes após o login. Adicione isso em Code Injection → Footer (para que seja executado depois que o Squarespace hidrata o contexto do membro):
<script>
document.addEventListener('DOMContentLoaded', () => {
const memberId = window.SquarespaceMemberAccountContext?.context?.memberId;
const email = window.SquarespaceMemberAccountContext?.context?.emailAddress;
if (memberId && window.zenovay) {
window.zenovay('identify', { userId: memberId, email });
}
});
</script>
A superfície de contexto interno do Squarespace é de melhor esforço — envolva em try/catch se depender dela.
Rastreamento de compras no Squarespace Commerce
Para lojas Squarespace Commerce, dispare um evento purchase na página de confirmação de pedido:
- Vá em Settings → Advanced → Code Injection.
- Na caixa Order Confirmation Page (não na caixa Header comum), cole:
<script>
document.addEventListener('DOMContentLoaded', () => {
const orderId = document.querySelector('[data-order-id]')?.dataset.orderId
|| window.location.pathname.split('/').pop();
const total = document.querySelector('.order-total .price')?.textContent;
const revenue = parseFloat((total || '').replace(/[^0-9.]/g, ''));
if (window.zenovay && revenue > 0) {
window.zenovay('track', 'purchase', {
transaction_id: orderId,
revenue,
currency: 'USD',
});
}
});
</script>
Para atribuição de receita precisa, incluindo reembolsos e assinaturas, prefira webhooks do Stripe no lado do servidor — o fallback client-side acima perde pedidos quando os compradores fecham a aba antes que a página de confirmação seja renderizada.
Requisitos do plano
| Plano | Code Injection | Injeção por página | Eventos de Commerce |
|---|---|---|---|
| Personal | ❌ | ❌ | ❌ |
| Business | ✅ | ✅ | ⚠️ Complemento |
| Basic Commerce | ✅ | ✅ | ✅ |
| Advanced Commerce | ✅ | ✅ | ✅ + carrinho abandonado |
Problemas comuns
O plano Personal não tem Code Injection. Este é o ticket de suporte mais comum. Você precisa do Business ($23/mês) ou superior.
Templates Squarespace 7.1 vs 7.0. Ambos suportam Code Injection de forma idêntica — o caminho no menu é o mesmo. A única diferença: alguns templates 7.0 têm uma opção separada "Page Header" nas configurações do template; ignore-a e use o painel padrão Settings → Advanced → Code Injection.
Páginas AMP / de bloqueio. O Squarespace serve uma variante AMP de posts de blog (/?format=amp). Seu rastreador não carregará nesses casos porque o AMP remove tags <script> arbitrárias. Se AMP for importante para você, desative a entrega AMP em Settings → Marketing → SEO.
Navegação estilo SPA em alguns templates. A maioria dos templates do Squarespace faz recarregamentos completos da página nos cliques de link. Alguns (notavelmente Brine e Native) têm transições de página via AJAX que não disparam um novo carregamento do <head>. Se você vê visualizações de página subestimadas nesses templates, chame window.zenovay('trackPageView') manualmente a partir de um listener popstate.
Banner de consentimento de cookies. Se você ativou o banner de cookies integrado do Squarespace (Settings → Cookies & Visitor Data), ele não bloqueia seu Code Injection personalizado. Para bloquear o Zenovay até o consentimento, use o modo data-cookieless="true" em vez disso, que não requer banner de consentimento na maioria das jurisdições.
Solução de problemas
| Sintoma | Causa provável | Correção |
|---|---|---|
| Sem dados, plano Personal | Code Injection desabilitado abaixo do Business | Faça upgrade do plano |
| Sem dados | Snippet colado mas não salvo | Clique em Save no topo do painel Code Injection |
| Sem dados em posts de blog | Variante AMP sendo servida ao seu dispositivo de teste | Desative AMP ou teste a URL canônica |
| Algumas páginas ausentes | Code Injection por página apenas em algumas páginas | Mova o snippet para o Header global |
| Visualizações de página duplicadas | Snippet colado no Header global e no Header por página | Escolha um escopo |
Privacidade e conformidade
Para rastreamento sem cookies (sem cookies, sem armazenamento local), adicione data-cookieless="true":
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-cookieless="true"
src="https://api.zenovay.com/z.js"></script>
Consulte Conformidade de Privacidade para o panorama completo.
Recursos relacionados
- Referência do Script de Rastreamento
- Eventos Personalizados
- Atribuição de Receita
- Rastreamento Server-Side
- Artigo de ajuda sobre integração com Squarespace
Precisa de ajuda? Entre em contato pelo [email protected] ou visite nossa Central de Ajuda.