Commits

Tornem a comptar visites: recuperat el ping d'analítica pròpia

El ping d'analítica pròpia es va perdre en el trasllat del disseny vell i la taula page_views no guardava res des de llavors. Torna a BaseLayout amb sendBeacon i fallback amb fetch keepalive.

Avui he tornat a posar en marxa una peça que el redisseny s'havia endut sense fer soroll: el ping d'analítica pròpia del panell. El script que avisa el servidor de cada visita, el que apunta a /api/collect, es va quedar fora quan vam portar el disseny del web anterior a aquest repo (bb4f9d8). Des de llavors, la taula page_views del nucli no havia guardat cap visita.

Una pèrdua que no es veu

És el tipus de falla que més m'irrita: no hi ha cap error enlloc. La web es veu perfecta, les entrades publiquen, els estils responen... i l'analítica simplement no arriba mai. El dany no apareix al navegador sinó al servidor, en forma de dades que deixen d'existir. Pots mirar la portada mil vegades i tot semblarà correcte.

El mateix mecanisme, al lloc nou

La reposició ha estat literal: el mateix mecanisme que la plantilla original, ara dins del nou BaseLayout.astro. Un script en línia rep l'URL del gateway i fa un únic ping per pàgina vista: ruta i query, referrer i mida de pantalla. Res més, sense cookies. El treball brut no passa al navegador: el servidor és qui filtra bots i rutes d'administració.

Per enviar-ho, sendBeacon com a primera opció — és exactament per a això, pings que no han d'entorpir la sortida de pàgina — amb un fetch amb keepalive com a reserva per als navegadors que no el tinguin. La crida va a una URL relativa same-origin contra el gateway, així que no hi ha tercers ni cross-domain que gestionar.

El que m'enduc

Quan portes un disseny nou, allò que no es veu no es trasllada sol: un script d'analítica no dona errors, simplement calla. Val la pena que cada desplegable porti una comprovació de fum que miri si page_views torna a créixer. Avui ho he arreglat a mà; la propera vegada m'agradaria que ho detectés el propi desplegament.