Integración con Squarespace
Añada Zenovay a su sitio Squarespace a través del panel Code Injection. La integración no requiere código, funciona con todas las plantillas de Squarespace y respeta el banner de consentimiento GDPR/CCPA de Squarespace de forma nativa.
Code Injection requiere un plan Business o superior ($23/mes o más). Los planes Personal no exponen Code Injection.
Inicio rápido
| Paso | Dónde | Qué hacer |
|---|---|---|
| 1 | Panel de Zenovay | Copie su fragmento de seguimiento |
| 2 | Admin de Squarespace → Settings → Advanced → Code Injection | Péguelo en Header |
| 3 | Guardar | Haga clic en Save en la parte superior del panel |
| 4 | Panel de Zenovay | Los visitantes en tiempo real aparecen en ~30 segundos |
Método 1: Code Injection en todo el sitio (Recomendado)
El panel Code Injection de Squarespace escribe HTML sin procesar en el <head> de todas las páginas. Es la forma recomendada de añadir cualquier analítica o píxel de terceros.
Paso a paso
- Inicie sesión en el panel de administración de Squarespace.
- En el menú de inicio, haga clic en Settings.
- Desplácese hacia abajo y haga clic en Advanced.
- Haga clic en Code Injection.
- Pegue el fragmento de Zenovay en el campo Header:
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
- Haga clic en Save en la parte superior del panel.
Verificar
Abra su sitio en vivo en una ventana de incógnito y vea el código fuente. Busque <script defer data-tracking-code=...> entre <head> y </head>. Su visita debería aparecer en la vista en tiempo real de Zenovay en ~30 segundos.
Método 2: Code Injection por página (planes Premium / Business)
Si solo desea rastrear páginas específicas, use la inyección por página:
- En el admin, pase el cursor sobre la página en el panel Pages.
- Haga clic en el icono de engranaje para abrir Page Settings.
- Abra la pestaña Advanced.
- Pegue el fragmento en el campo Page Header Code Injection.
- Save.
La inyección por página se ejecuta después de la inyección de todo el sitio. No pegue el rastreador en ambos ámbitos — contará doble.
Seguimiento de eventos personalizados
Después de que el rastreador se carga puede llamar a window.zenovay() desde cualquier Code Block en una página.
Rastrear clics en CTA
- En el editor de páginas, añada un bloque Code junto a su botón.
- Establezca el idioma en HTML.
- Pegue:
<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>
- Añada un atributo
data-zv-cta="hero"a su botón editando la configuración de su bloque (algunas plantillas requieren envolver el botón en un bloque Code para añadir atributos sin procesar).
Rastrear envíos de formularios
Los formularios nativos de Squarespace emiten un evento Y.Mojito.SquarespaceFormFront, pero el enfoque más simple y compatible con todas las plantillas es escuchar el 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>
Identificar clientes con sesión iniciada (Member Areas)
Si usa Squarespace Member Areas puede identificar a los clientes después de que inicien sesión. Añada esto en Code Injection → Footer (para que se ejecute después de que Squarespace hidrate el contexto de miembro):
<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>
La interfaz de contexto interno de Squarespace es de tipo best-effort — envuélvala en try/catch si depende de ella.
Seguimiento de compras en Squarespace Commerce
Para tiendas de Squarespace Commerce, dispare un evento purchase en la página de confirmación de pedido:
- Vaya a Settings → Advanced → Code Injection.
- En el campo Order Confirmation Page (no en el campo Header habitual), pegue:
<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 una atribución de ingresos precisa que incluya reembolsos y suscripciones, prefiera los webhooks de Stripe del lado del servidor — el respaldo del lado del cliente anterior pierde pedidos cuando los compradores cierran la pestaña antes de que se renderice la página de confirmación.
Requisitos del plan
| Plan | Code Injection | Inyección por página | Eventos de Commerce |
|---|---|---|---|
| Personal | ❌ | ❌ | ❌ |
| Business | ✅ | ✅ | ⚠️ Complemento |
| Basic Commerce | ✅ | ✅ | ✅ |
| Advanced Commerce | ✅ | ✅ | ✅ + carrito abandonado |
Problemas comunes
El plan Personal no tiene Code Injection. Este es el ticket de soporte más común. Necesita Business ($23/mes) o superior.
Plantillas Squarespace 7.1 vs 7.0. Ambas admiten Code Injection de forma idéntica — la ruta del menú es la misma. La única diferencia: algunas plantillas de la 7.0 tienen una opción "Page Header" separada en la configuración a nivel de plantilla; ignórela y use el panel estándar Settings → Advanced → Code Injection.
Páginas AMP / Lock screen. Squarespace sirve una variante AMP de las entradas del blog (/?format=amp). Su rastreador no se cargará en ellas porque AMP elimina las etiquetas <script> arbitrarias. Si AMP le importa, desactive la entrega AMP en Settings → Marketing → SEO.
Navegación estilo SPA en algunas plantillas. La mayoría de las plantillas de Squarespace hacen recargas de página completas al hacer clic en los enlaces. Algunas (especialmente Brine y Native) tienen transiciones de página AJAX que no ejecutan una nueva carga de <head>. Si ve vistas de página subestimadas en esas plantillas, llame manualmente a window.zenovay('trackPageView') desde un listener de popstate.
Banner de consentimiento de cookies. Si ha habilitado el banner de cookies integrado de Squarespace (Settings → Cookies & Visitor Data), este no bloquea su Code Injection personalizado. Para bloquear Zenovay hasta el consentimiento, use el modo data-cookieless="true" en su lugar, que no requiere banner de consentimiento en la mayoría de jurisdicciones.
Resolución de problemas
| Síntoma | Causa probable | Solución |
|---|---|---|
| Sin datos, plan Personal | Code Injection desactivado por debajo de Business | Actualice el plan |
| Sin datos | Fragmento pegado pero no guardado | Haga clic en Save en la parte superior del panel Code Injection |
| Sin datos en entradas del blog | Variante AMP siendo servida al dispositivo de prueba | Desactive AMP o pruebe la URL canónica |
| Algunas páginas faltan | Code Injection por página solo en algunas páginas | Mueva el fragmento al Header de todo el sitio |
| Vistas de página duplicadas | Fragmento pegado en el Header de todo el sitio y en el Header por página | Elija un solo ámbito |
Privacidad y cumplimiento normativo
Para el seguimiento sin cookies (sin cookies, sin almacenamiento local), añada data-cookieless="true":
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-cookieless="true"
src="https://api.zenovay.com/z.js"></script>
Consulte Cumplimiento de Privacidad para una visión completa.
Recursos relacionados
- Referencia del script de seguimiento
- Eventos personalizados
- Atribución de ingresos
- Seguimiento del lado del servidor
- Artículo de ayuda sobre la integración con Squarespace
¿Necesita ayuda? Contacte a [email protected] o visite nuestro Centro de ayuda.