Saltar al contenido

Referencia de la llave

Todo lo que sabe hacer el script: atributos, eventos que mandas tú, eventos que manda solo y variantes.

Atributos del script

Todo se configura con atributos del propio <script>. No hay objeto de configuración ni fichero aparte.

AtributoObligatorioQué hace
data-domainEl dominio del piso. Admite una lista separada por comas para mandar el mismo evento a varios pisos.
data-apiNoEndpoint alternativo. Se usa cuando sirves el evento desde tu propio dominio.
data-excludeNoRutas que no se trackean, con comodines * y **. Se aplica a todos los eventos, no solo a los pageviews.Necesita la variante exclusions
data-includeNoLe da la vuelta: solo se trackea lo que casa con estas rutas.Necesita la variante exclusions
data-file-typesNoReemplaza la lista de extensiones que cuentan como descarga.Necesita la variante file-downloads
data-add-file-typesNoAmplía la lista por defecto en vez de reemplazarla.Necesita la variante file-downloads
data-event-*NoCada data-event-<clave> se convierte en una prop de todos los pageviews.Necesita la variante pageview-props

Eventos custom

Un timbre es cualquier cosa que quieras contar: un alta, un click en «contactar», una compra. Hay dos formas de tocarlo.

Desde JavaScript

Pon la cola antes del <script src> y podrás llamar a pisito() desde el primer milisegundo, aunque la llave todavía no haya cargado.

<script>
  window.pisito = window.pisito || function () {
    (window.pisito.q = window.pisito.q || []).push(arguments);
  };
</script>
<script defer data-domain="example.com" src="https://pisi.to/js/llave.js"></script>
html

Llamar al timbre

El primer argumento es el nombre. Las props son opcionales: máximo 30 claves, y solo cadenas, números o booleanos.

window.pisito("Alta", { props: { plan: "pro" } });

// Con la variante revenue:
window.pisito("Compra", {
  props: { plan: "pro" },
  revenue: { currency: "EUR", amount: "29.90" },
});
js

Desde el HTML

Con la variante tagged-events puedes declarar el evento en las clases del elemento. La escucha va delegada en document, así que funciona con elementos que aparecen después. El + es un espacio.

<button class="pisito-event-name=Alta+pro pisito-event-plan=pro">
  Empezar
</button>
html

Los 404

Pon esta línea en tu plantilla de página no encontrada y sabrás qué enlaces rotos anda pisando la gente.

window.pisito("404", { props: { path: location.pathname } });
js

Nombres reservados

pageview y engagement los emite el script y la API pública los rechaza, para que nadie infle las métricas base sin querer. La excepción es la variante manual, donde pisito('pageview') es justo el punto de entrada. 404, Outbound Link: Click, File Download y Form: Submit sí se aceptan desde fuera.

Eventos automáticos

Estos los manda la llave sin que hagas nada, salvo que la variante diga lo contrario.

EventoCuándoVariante
pageviewAl cargar la página, al cambiar de ruta en una SPA y al volver desde el bfcache.Base
engagementCuando la pestaña se oculta o se cierra. Lleva el tiempo con la página visible y el scroll máximo.engagement
Outbound Link: ClickAl pinchar un enlace a otro host. Prop: url.outbound-links
File DownloadAl pinchar un enlace con una extensión de la lista de descargas. Prop: url.file-downloads

Variantes

Cada variante es un sufijo en el nombre del fichero, y se pueden combinar en este orden. La base pesa 873 B gzip; solo pagas lo que uses.

SufijoQué añadeTamaño gzip
hashEl fragmento cuenta como parte de la ruta y hashchange dispara pageview. Para routers de hash.874 B
outbound-linksEvento «Outbound Link: Click» al pinchar un enlace a otro host.1003 B
file-downloadsEvento «File Download» con 27 extensiones por defecto, configurables.1146 B
tagged-eventsEventos declarados en las clases del HTML, con delegación en document.1100 B
manualApaga todos los disparadores automáticos. Los pageviews los mandas tú.743 B
exclusionsActiva data-exclude y data-include con comodines.1052 B
pageview-propsProps fijas para todos los pageviews, declaradas en el propio script.1004 B
revenueAñade el campo de ingresos a los eventos custom.885 B
engagementTiempo visible y scroll máximo al salir de la página.1141 B

Combinarlas

Los sufijos van en el orden de la tabla. llave.hash.outbound-links.js existe, igual que las otras 511 combinaciones. script.js es un alias de llave.js por si buscas lo estándar.

<script defer data-domain="example.com"
        src="https://pisi.to/js/llave.hash.outbound-links.js"></script>
html