Atribución de referrers sin guardar URLs crudas: la receta de RetroPrompt
El mantenedor de RetroPrompt documenta cómo clasificar el origen del tráfico en el navegador, con allowlist de hostnames y UTM, sin retener query strings de terceros.

Para saber qué fuentes llevan a acciones útiles no hace falta guardar cada URL entrante. Esa es la premisa de la nota que ha publicado el mantenedor de RetroPrompt, en la que describe una implementación reciente del proyecto: clasificar el origen del tráfico en el propio navegador y quedarse solo con una etiqueta de categoría, dejando fuera las query strings y los UTM arbitrarios.
Clasificar en el límite del navegador
El planteamiento arranca con una lista corta de las fuentes que de verdad se usan: reconocer el hostname exacto de un buscador y un puñado de plataformas de publicación, y mandar el resto de hosts externos a un cajón other_referral. Cuando no llega referrer, la etiqueta es direct_unknown, porque puede haberlo eliminado una app o una opción de privacidad.
El autor insiste en no hacer coincidencia por subcadena: un hostname que contiene una marca conocida no tiene por qué ser ese servicio. La receta es parsear la URL, comparar el hostname contra una lista explícita y enviar únicamente la etiqueta resultante.
Los UTM conocidos ayudan cuando la plataforma borra el referrer, pero siguen siendo entrada controlada por el usuario. Se allowlistean por separado los tags y los nombres de campaña, y se vuelven a validar en el servidor. La propia nota lo deja claro: estas etiquetas son contabilidad, no prueba de autenticidad ni de causalidad.
Mantener la etiqueta durante el recorrido
Clasificar cada página por su cuenta convierte a un visitante externo en referrer interno en cuanto sigue un enlace. La solución pasa por atar la etiqueta de entrada a un identificador de sesión de pestaña, aleatorio y de vida corta, que se reutiliza en las acciones posteriores de esa pestaña. En esta implementación expira a los 30 minutos de inactividad.
Eso no mide personas únicas ni retención a largo plazo. Dos pestañas pueden generar sesiones distintas y una pestaña duplicada puede comportarse de forma diferente a una navegación nueva, así que conviene documentar esos límites antes de comparar la cifra con el Visits de otra herramienta de analítica.
Para el esquema nuevo el autor marca una frontera: los eventos antiguos se etiquetan con una versión de esquema legacy en lugar de inventarles una fuente, y la sesión medida arranca de cero cuando el navegador se actualiza, manteniendo compatibles los clientes cacheados que siguen hablando con el endpoint. El informe de fuente a acción puede filtrar por el esquema nuevo y excluir las sesiones de QA, contando sesiones distintas por acción. Copiar un prompt y generar una imagen son tareas paralelas: no se fuerzan a una secuencia única.
Entre los casos que recomienda probar hay una landing externa seguida de navegación interna, una campaña desconocida, un hostname que se parece a uno permitido, una sesión de pestaña caducada y un opt-out seguido de reactivar la medición. También que el tráfico de QA siga excluido después de navegar.
El resultado buscado es un informe con incertidumbre entendible. La atribución ausente debe seguir visible y, sobre todo, una telemetría que falla no puede impedir que alguien use la herramienta. El proyecto asociado es el flujo de retratos de RetroPrompt, que de momento genera retratos fijos y no plantillas de vídeo. Lo interesante aquí no es el caso concreto, sino el patrón: medir origen sin acumular identificadores de terceros y sin vender una precisión que los datos no tienen.

