Seguimiento Analítico: Recopilación de Eventos con Enfoque en la Privacidad

Este artículo explica cómo rastreamos el comportamiento del usuario respetando la privacidad y evitando el tráfico de bots.

El Problema: Comprender el Comportamiento del Usuario

Necesitamos saber:

  • Qué páginas visitan los usuarios

  • Qué productos visualizan

  • De dónde proviene el tráfico (Google Ads, orgánico, redes sociales)

  • Qué campañas generan conversiones

Pero debemos evitar:

  • Rastrear bots y rastreadores web

  • Almacenar información de identificación personal (PII)

  • Violar regulaciones de privacidad

La Solución: Seguimiento del Lado del Cliente + Lado del Servidor

Lado del Cliente: Seguimiento con JavaScript

ID de Visitante: ID aleatorio almacenado en cookie (365 días)

ID de Sesión: ID aleatorio almacenado en sessionStorage (hasta que se cierra el navegador)

Parámetros de campaña: Extraídos de la URL y almacenados en sessionStorage

Parámetros rastreados:

  • gclid - ID de clic de Google (anuncios de búsqueda)

  • gbraid - ID de clic de Google Ads (anuncios de compras)

  • wbraid - ID de clic de Google Ads (iOS)

  • fbclid - ID de clic de Facebook

  • srsltid - ID de resultado de búsqueda orgánica de Google

  • utm_source, utm_medium, utm_campaign, utm_term, utm_content

Almacenamiento: Los parámetros se almacenan en cookies (30 minutos) para la atribución de clics en WhatsApp/teléfono

Lado del Servidor: Enriquecimiento

El servidor enriquece los eventos con:

Datos GeoIP: País, región, ciudad a partir de la dirección IP

Análisis de User-Agent: Navegador, SO, tipo de dispositivo

Marca de tiempo: Hora del servidor (UTC)

Detección de bots: Filtra user-agents de bots conocidos

Tipos de Eventos

Visualización de página: El usuario visita una página

Visualización de producto: El usuario visualiza la página de un producto

Añadir al carrito: El usuario añade un producto al carrito

Pago: El usuario inicia el proceso de pago

Compra: El usuario completa una compra

Clic en WhatsApp: El usuario hace clic en el botón de WhatsApp

Clic en teléfono: El usuario hace clic en un número de teléfono

Flujo de Datos

sequenceDiagram
    participant User
    participant JS as JavaScript
    participant API as /api/analytics
    participant Firehose as Kinesis Firehose
    participant S3
    
    User->>JS: Visita página
    JS->>JS: Extrae parámetros de URL
(gclid, utm_*, etc.) JS->>JS: Almacena en sessionStorage JS->>API: POST evento + parámetros API->>API: Enriquece con GeoIP API->>API: Analiza User-Agent API->>API: Filtra bots API->>Firehose: Envía evento enriquecido Firehose->>S3: Almacena en bucket de análisis

Detección de Bots

Filtramos el tráfico de bots usando múltiples señales:

Patrones de User-Agent: Cadenas de bots conocidos (Googlebot, Bingbot, etc.)

Patrones de comportamiento: Demasiado rápido, demasiadas solicitudes

Falta de JavaScript: Los bots a menudo no ejecutan JS

Cookie de exclusión: tv_exclude=true detiene todo el seguimiento

Protección de la Privacidad

Sin PII: Nunca almacenamos nombres, correos electrónicos, números de teléfono

Retención de datos: Los eventos se eliminan después de 30 días

Carga Condicional de Píxeles

Solo cargamos píxeles de seguimiento cuando es relevante:

Píxel de Google Ads: Solo si está presente gclid, gbraid, o wbraid, srsltid

Píxel de LinkedIn: Solo si está presente li_fat_id

Beneficio: Carga de páginas más rápida, menos sobrecarga de seguimiento

Detección de la Fuente de Tráfico

Detectamos la fuente de tráfico a partir de parámetros de URL:

Google Ads: gclid, gbraid, wbraid → utm_source=google_ads

Google Orgánico: srsltid → utm_source=google_search

Seguimiento de Conversiones

Rastreamos conversiones a través del embudo:

Visualización de producto → Añadir al carrito → Pago → Compra

Cada paso incluye:

  • ID del visitante (para atribución)

  • ID de sesión (para análisis de sesión)

  • Parámetros de campaña (para cálculo del ROI)

  • SKU del producto (para análisis de producto)

Seguimiento de Contactos de Leads

Cuando los usuarios nos contactan (WhatsApp, teléfono, correo electrónico), capturamos:

Método de contacto: WhatsApp, teléfono, correo electrónico

Parámetros de campaña: Desde cookies (ventana de 30 minutos)

Contexto del producto: En qué página de producto estaban

Beneficio: Atribuir conversiones offline a campañas online

Almacenamiento

Los eventos se almacenan en S3 a través de Kinesis Firehose:

Formato: Líneas JSON (un evento por línea)

Particionamiento: Por fecha (año/mes/día/hora)

Compresión: Gzip

Retención: 30 días

Consulta

Los eventos se consultan a través de AWS Athena:

Esquema: Definido en Glue Data Catalog

Consultas: SQL sobre datos en S3

Casos de uso: ROI de campañas, popularidad de productos, fuentes de tráfico

Referencias

Conceptos Técnicos

Servicios de AWS

Artículos Relacionados

Resumen

Nuestro sistema de análisis rastrea el comportamiento del usuario respetando la privacidad:

Lado del cliente:

  • ✅ Extraer parámetros de campaña de la URL

  • ✅ Almacenar en sessionStorage (ámbito de sesión)

  • ✅ Almacenar en cookies (30 min para atribución)

  • ✅ Enviar eventos a la API

Lado del servidor:

  • ✅ Enriquecer con GeoIP y User-Agent

  • ✅ Filtrar tráfico de bots

  • ✅ Enviar a Kinesis Firehose

  • ✅ Almacenar en S3 (particionado por fecha)

Privacidad:

  • ✅ No se almacena PII

  • ✅ Retención de 30 días

Carga condicional:

  • ✅ Píxel de Google Ads solo si está presente gclid

  • ✅ Píxel de LinkedIn solo si está presente li_fat_id

Este enfoque equilibra la obtención de información con la privacidad y el rendimiento.


← Volver al Índice de Documentación