Extensión de navegador
El Zenovay Analytics Inspector es una WebExtension de Chrome + Firefox que detecta el script de tracking de Zenovay en cualquier página y muestra eventos en vivo en un popup. Es una herramienta de diagnóstico — una alternativa más rápida, dentro del navegador, a abrir las DevTools o el flujo de verificación de instalación del dashboard.
Sin telemetría. La extensión nunca hace llamadas de red a Zenovay. Todo el estado reside en chrome.storage.session y se borra al cerrar el navegador.
Instalación
Chrome Web Store
Próximamente — paquete de envío preparado. Enlazaremos aquí en cuanto sea aprobado.
Firefox Add-ons (AMO)
Próximamente — paquete de envío preparado.
Desde el código fuente (para desarrolladores)
git clone https://github.com/zenovay/extension-zenovay.git
cd extension-zenovay
npm install
npm run build
Después, en Chrome abre chrome://extensions, activa el modo desarrollador (interruptor arriba a la derecha), haz clic en Cargar descomprimida y selecciona el directorio dist/.
En Firefox abre about:debugging#/runtime/this-firefox, haz clic en Cargar complemento temporal y selecciona dist/manifest.json.
Cómo leer la insignia
| Insignia | Significado |
|---|---|
| (vacía) | No se detectó script de tracking de Zenovay en esta página |
Ámbar ! | Script detectado, pero aún no se ha disparado ningún evento |
Verde ON | Script detectado y disparando eventos |
Azul C | Script detectado, ejecutándose en modo sin cookies |
El estado de la insignia es por pestaña, así que una sola sesión de navegador puede mostrar estados distintos para sitios distintos simultáneamente.
Lo que muestra el popup
Cuando haces clic en la insignia, el popup reporta:
- Tarjeta de estado — estado de detección actual con un punto pulsante mientras hay eventos en vivo
- Código de tracking — el ID del proyecto (p. ej.
ZV_abc123…) - Origen del script — la URL desde la que se carga el tracker
- Cookieless — si
data-cookieless="true"está en la etiqueta script OcookielessMode: trueenZENOVAY_TRACKER_CONFIG - GPC — si el usuario tiene Global Privacy Control activado en la configuración del navegador
- Endpoint de API — a dónde envía eventos el tracker
- Eventos en vivo — lista desplazable de los últimos 50 eventos (tipo + tiempo relativo)
- Abrir en el dashboard de Zenovay — deep-link al dashboard correspondiente
Eventos en vivo: Camino A vs Camino B
El tracker de Zenovay solo emite el evento personalizado zenovay:debug:event cuando el sitio establece data-debug="true". Los sitios en producción normalmente no lo hacen.
Camino B (predeterminado). La extensión escucha zenovay:debug:event y vacía window._zenovayDebugBus. En una página en modo debug (o en app.zenovay.com), verás eventos entrando. En un sitio de producción sin modo debug, el popup muestra:
Activa
data-debug="true"en la etiqueta script para ver eventos en vivo, o activa la inspección profunda abajo.
Camino A (opt-in). Activa Beta: inspección profunda en el popup. La extensión parchea navigator.sendBeacon y window.fetch para interceptar los POST de eventos hacia la API del tracker. Funciona en cualquier sitio, con dos salvedades:
- La extensión puede chocar con otras extensiones que también parcheen llamadas de red.
- Los eventos disparados antes de activar el interruptor no se capturan. Si pasan 3 segundos sin eventos, el popup ofrece un Recargar de un clic para capturar la pageview inicial.
Marcamos el Camino A como Beta hasta haber recogido feedback sobre colisiones. Desactívalo si ves comportamiento extraño en algún sitio.
Señales de detección
La extensión examina cinco fuentes, en orden, todas dentro del MAIN world de la página:
- Escaneo de etiquetas script —
script[src*="/z.js"],script[src*="zenovay-tracker"],script[data-id],script[data-tracking-code],script[data-website-id]. - Sonda global —
typeof window.zenovay === 'function', consultado hasta 5 segundos a intervalos de 200 ms. - Sonda de configuración — lee
window.ZENOVAY_TRACKER_CONFIGsi el tracker se cargó vía el endpoint/load(con config inyectada por el dashboard). - Suscripción a eventos — escucha
zenovay:debug:eventenwindow. - Drenaje de buffer — toma una instantánea de
window._zenovayDebugBussi está presente.
Cualquier señal por sí sola basta para marcar una página como "detectada".
Permisos
| Permiso | Para qué |
|---|---|
activeTab | Leer el DOM de la pestaña activa cuando abres el popup |
storage | Cachear los últimos 50 eventos por pestaña en session storage |
scripting | Inyectar la sonda de detección en el MAIN world de la página |
host_permissions: <all_urls> | Detectar Zenovay en cualquier sitio que visites |
Explícitamente no solicitados: tabs, webRequest, cookies, history, bookmarks, downloads. La extensión no puede leer tus otras pestañas, tu historial ni tus contraseñas guardadas.
Privacidad
El Inspector está construido para honrar la postura cookieless más amplia de Zenovay:
- Sin llamadas de red — la extensión nunca envía datos a api.zenovay.com ni a ningún otro sitio.
- Sin cookies — ni la extensión ni su UI escriben cookies. El estado del toggle reside en
chrome.storage.local(unos pocos bytes para la preferencia Beta: inspección profunda). Los datos de eventos por pestaña residen enchrome.storage.session, que se limpia al cerrar el navegador. - Sin almacenamiento persistente de payloads — los parches del Camino A parsean los cuerpos de eventos solo en memoria.
- El deep-link es iniciado por el usuario — hacer clic en Abrir en el dashboard de Zenovay es la única acción saliente, y requiere un clic deliberado.
Solución de problemas
La insignia sigue vacía en un sitio que estoy seguro tiene Zenovay
- Recarga la pestaña con fuerza (Cmd/Ctrl + Mayús + R). La sonda inyectada corre en
document_idle; una carga fresca le da una oportunidad limpia. - Inspecciona el código fuente buscando patrones
script srcque coincidan con/z.js,zenovay-trackerodata-id="…". Si no hay ninguno, el script no está realmente cargado. - Revisa la CSP del sitio — una directiva
script-srcestricta podría estar bloqueando el tracker por completo.
La insignia muestra ámbar ! pero espero eventos
Es el Camino B funcionando como se diseñó. El script está cargado pero no emite zenovay:debug:event porque el sitio no tiene data-debug="true". Activa Beta: inspección profunda en el popup y recarga.
La lista de eventos está vacía tras activar la inspección profunda
Si aparece un banner de pista en 3 segundos — haz clic en Recargar. La pageview inicial del tracker se dispara una vez por carga de página; el Camino A solo captura eventos desde el momento en que fue activado.
El indicador cookieless muestra ✗ pero configuré cookieless
data-cookieless="true" debe estar en la propia etiqueta <script>, como cadena "true". Confirma:
<script src="https://api.zenovay.com/z.js" data-id="TU_CÓDIGO" data-cookieless="true"></script>
No data-cookieless (solo presencia) ni data-cookieless="1". El tracker lo lee con una coincidencia estricta de cadena.
Código abierto
La extensión tiene licencia MIT y se desarrolla en abierto en github.com/zenovay/extension-zenovay. Issues y pull requests son bienvenidos.