// ARTÍCULO
Cómo mido si alguien realmente lee mis posts
Luis · 14 de octubre de 2026
PostView vs ReadSession: visitas, heartbeat cada 15s, scroll y completitud. Analítica propia sin trackers externos.
Una vista no es una lectura
Contar pageviews es fácil y mentiroso. Por eso separé dos modelos: PostView (una fila por visita) y ReadSession (engagement por sesión).
El heartbeat
Cada 15 segundos el lector envía:
activeSeconds: segundos con la pestaña visiblemaxScrollDepth: 0–100completed: scroll ≥ 90%
El endpoint hace upsert por [postId, sessionId]: suma segundos, toma el max de scroll y OR de completitud.
Por qué analítica propia
No es por reinventar Plausible. Es portfolio: diseño un pipeline medible de punta a punta y lo muestro en el dashboard del CMS con recharts.
Pruébalo
Abre este post, haz scroll y revisa el dashboard en cms.luishswe.com (local: localhost:3001). Verás totalViews y el top de posts.
// COMPARTIR