Guía de integración de consentimiento de cookies para experiencia digital y reproducción de sesiones de FullStory: Manual 2026
FullStory es la plataforma dominante en la categoría de análisis de experiencia digital por una razón: captura todo de forma predeterminada. Mientras que las herramientas de análisis tradicionales registran eventos discretos que el desarrollador ha instrumentado, y las plataformas de análisis de producto registran interacciones más un suplemento autocapturado, FullStory captura el DOM completamente renderizado, el rastro del cursor, el timing de pulsaciones de teclas, el comportamiento de desplazamiento, los clics de rabia, los clics muertos, las solicitudes de red y los errores de JavaScript — y los une en grabaciones de sesión que el analista puede recorrer fotograma a fotograma. Esa cobertura es el producto. También es por eso que FullStory se ubica en la intersección de las reglas de consentimiento más rigurosas en cada régimen de privacidad moderno. La guía de reproducción de sesiones del EDPB de 2023 y las prioridades del grupo de trabajo 2026 tratan la reproducción de sesiones como una categoría de consentimiento distinta y más estricta. La CNIL ha sido el regulador más público sobre el tema, pero no es el único — el Garante, la ICO, la AEPD española y la AP neerlandesa han emitido posiciones alineadas. Una implementación de FullStory configurada para la captura con consentimiento primero, con el enmascaramiento correcto, el control de acceso correcto y el rastro de auditoría correcto, es una de las herramientas más poderosas que un editor puede ejecutar; una que no ha sido así configurada es uno de los objetivos más fáciles que encontrará un regulador.
Por qué FullStory se ubica en la categoría de consentimiento más estricta
Una inicialización de FullStory predeterminada hace lo que hace cada herramienta de reproducción de sesiones y más. Establece cookies de primera parte bajo el espacio de nombres fs_uid y fs_lua que contienen el identificador de visitante persistente y la marca de tiempo de última actividad, genera un identificador de sesión bajo fs_session y comienza a transmitir el DOM renderizado a rs.fullstory.com en milisegundos desde la carga de página. El flujo incluye cada evento de entrada, cada movimiento del ratón, cada posición de desplazamiento, cada transición de página y — cuando el módulo de captura de red está habilitado — cada respuesta XHR y fetch que emite la página, con cuerpos de respuesta incluidos a menos que el operador haya configurado supresión.
Cada una de estas capturas activa una puerta de consentimiento separada. Persistir el identificador del visitante es una operación de almacenamiento y acceso bajo el Artículo 5(3) de la Directiva ePrivacy que requiere consentimiento previo, libremente otorgado, específico, informado e inequívoco en todo el EEE, el Reino Unido y cualquier jurisdicción que haya importado el mismo estándar. Grabar el DOM renderizado es el tratamiento de datos personales bajo el GDPR porque el registro visual es suficiente para identificar y revelar contenido sustantivo sobre el usuario. Capturar el flujo de pulsaciones de teclas es una sensibilidad particular: todo lo que el usuario escribe en un campo de formulario se captura fotograma a fotograma, y si el campo no está enmascarado la grabación incluye el contenido escrito. El EDPB ha sido explícito en que la captura de reproducción de sesiones es una categoría que requiere consentimiento explícito y granular distinto del consentimiento genérico de análisis — y que el enmascaramiento es un complemento del consentimiento, no un sustituto.
Qué escribe FullStory antes del consentimiento — y qué debe suprimirse
El inicio rápido estándar de FullStory instala el fragmento de seguimiento directamente en el <head> de la página. Eso funciona como se documenta y es la fuente del fallo de cumplimiento más común: el fragmento se ejecuta antes de que el banner de cookies se haya renderizado, las cookies fs_uid y fs_session se escriben en milisegundos, y el flujo de reproducción de sesiones comienza a fluir hacia rs.fullstory.com independientemente de lo que el usuario decida después. Cada regulador europeo que se ha pronunciado sobre este patrón ha fallado de la misma manera: las cookies establecidas antes del consentimiento son ilegales, la grabación capturada antes del consentimiento es un tratamiento ilegal, y el editor lleva la responsabilidad.
Una integración conforme debe por tanto impedir que el fragmento de FullStory se inicialice hasta que se haya concedido la categoría de consentimiento relevante. El patrón que funciona en producción es la API FS.consent() combinada con grabación diferida: el fragmento se carga con FullStory({ orgId: 'XXX', recordOnlyThisIFrame: false }) y se llama inmediatamente a FS.shutdown(), luego se llama a FS.restart() y FS.consent(true) solo después de que el CMP señale que la categoría de reproducción de sesiones ha sido concedida. El patrón alternativo es la inyección de scripts condicional — el fragmento de FullStory se añade al DOM solo después de concederse el consentimiento — que es más limpio pero requiere que el operador pierda cualquier vinculación de identidad previa al consentimiento que FullStory de otro modo proporcionaría.
Las cookies y el almacenamiento que escribe FullStory
El fragmento de FullStory escribe los siguientes identificadores en la inicialización, todos los cuales son no esenciales y requieren consentimiento: fs_uid con una caducidad de varios años que contiene el identificador de visitante persistente, fs_lua con la marca de tiempo de última actividad del usuario, fs_session con el identificador de sesión, y los marcadores de estado de grabación que FullStory utiliza internamente. Retirar el consentimiento debe por tanto tanto caducar esas cookies como llamar a FS.consent(false) seguido de FS.shutdown() para detener la captura posterior, y el editor debe enviar una solicitud de eliminación a través del punto de conexión de privacidad de FullStory para las grabaciones anteriores del usuario.
Mapeo de FullStory a marcos de consentimiento
FullStory no implementa nativamente IAB TCF ni la Plataforma de Privacidad Global de IAB — es una plataforma de experiencia digital de primera parte, no un proveedor de tecnología publicitaria. Expone una API de consentimiento nativa y admite un modelo de enmascaramiento privado por defecto que opera independientemente del estado de consentimiento. El patrón que supera la revisión de un regulador trata cada módulo de FullStory como una puerta separada vinculada a una señal específica de CMP.
- La reproducción de sesiones y el flujo DOM completo se vinculan a una categoría dedicada de reproducción de sesiones o investigación que es distinta del análisis genérico. La guía del EDPB es explícita en este punto — el consentimiento de reproducción debe ser separado y granular, no agrupado con análisis o marketing.
- La captura de red se ubica detrás de una subpuerta más estricta dentro de la misma categoría porque captura cuerpos de respuesta HTTP que pueden contener datos personales no relacionados con la interfaz visible. La captura de red debe estar desactivada por defecto y habilitarse solo para rutas de aplicación específicas donde el operador haya confirmado que los cuerpos de respuesta no incluyen datos sensibles.
- La vinculación de identidad mediante FS.identify() puede funcionar con un identificador de sesión efímero bajo una base de interés legítimo cuando el usuario es anónimo, pero vincular la identificación a un identificador persistente de primera parte a través de sesiones requiere el mismo consentimiento que la reproducción de sesiones.
- Los mapas de calor y el análisis de conversión derivados del flujo de reproducción de sesiones heredan la puerta del flujo ascendente — no son superficies de consentimiento separadas, son productos descendentes de los mismos datos capturados.
El patrón de integración que funciona
La implementación de referencia tiene cuatro partes: un CMP que expone un evento de cambio de consentimiento en tiempo real, un arranque diferido que inicializa FullStory con la captura suprimida mediante FS.shutdown(), un oyente de consentimiento que llama a FS.consent(true) y FS.restart() cuando se abre la puerta de reproducción de sesiones, y una configuración de enmascaramiento privado por defecto que suprime duramente cada campo de entrada a menos que se habilite explícitamente.
Enmascaramiento privado por defecto
La capa de enmascaramiento de FullStory opera independientemente del consentimiento y debe configurarse de manera agresiva incluso cuando se ha concedido el consentimiento. La clase CSS fs-mask en cualquier elemento suprime el contenido de ese elemento de la grabación; la clase CSS fs-exclude excluye completamente el elemento del flujo DOM; la clase fs-block bloquea tanto el contenido como la estructura. Bajo las reglas de categorías especiales del GDPR y la definición de información personal sensible de la CCPA, cualquier campo que pudiera capturar información de salud, detalles financieros, identificadores gubernamentales, datos biométricos, geolocalización precisa o contenido de comunicaciones privadas debe usar los atributos de enmascaramiento independientemente del estado de consentimiento del usuario. La postura recomendada es aplicar fs-mask a nivel de formulario en lugar del nivel de campo — un desarrollador que añade un nuevo campo a un formulario existente es mucho menos probable que recuerde enmascararlo individualmente que si está operando dentro de un envoltorio de enmascaramiento a nivel de formulario que lo captura automáticamente.
Selección de región y residencia de datos
FullStory opera puntos de conexión de ingesta separados para EE. UU. y la UE. Para el tráfico del EEE y el Reino Unido, el punto de conexión de la UE es el valor predeterminado correcto — mantiene la ingesta, el procesamiento y el almacenamiento dentro del EEE y reduce la exposición de Schrems II que llevaría cualquier implementación de reproducción de sesiones en la región de EE. UU. El punto de conexión se configura por organización de FullStory y no puede cambiarse retroactivamente, por lo que la elección de región debe hacerse antes de escalar y documentarse en el aviso de privacidad para que la cadena de base jurídica sea limpia desde la recopilación hasta el almacenamiento.
Validación de la integración y el rastro de auditoría
El paso de validación es lo que verifican los reguladores y lo que los editores con más frecuencia omiten en las herramientas de reproducción de sesiones. Una implementación de FullStory correctamente integrada debe pasar cuatro pruebas en secuencia. Primero, una sesión de navegador limpia con el banner mostrado pero sin ninguna elección hecha debe producir cero solicitudes a rs.fullstory.com más allá de la descarga del archivo SDK y cero cookies fs_ en document.cookie. Segundo, rechazar el consentimiento de reproducción de sesiones debe mantener ese estado — sin captura, sin identificador, sin grabación. Tercero, aceptar el consentimiento de reproducción de sesiones debe producir la cookie fs_uid esperada, un único evento FS.consent(true) y el flujo DOM fluyendo al punto de conexión de región configurado, con campos enmascarados confirmados para capturar solo el marcador de posición de la máscara. Cuarto, retirar el consentimiento debe detener inmediatamente la captura posterior, caducar las cookies fs_ y activar una solicitud de eliminación a través del punto de conexión de privacidad de FullStory para las grabaciones anteriores del usuario.
La expectativa del rastro de auditoría es donde las herramientas de reproducción de sesiones enfrentan el escrutinio más estricto. Las directrices del banner de cookies del EDPB de 2023 y las prioridades renovadas del grupo de trabajo 2026 son explícitas en que el editor debe poder demostrar, para cualquier grabación de sesión específica en el proyecto de FullStory, que el usuario que la generó había dado un consentimiento válido de reproducción de sesiones en el momento de la captura. El patrón estándar es establecer la versión de consentimiento y la marca de tiempo como variables de usuario en el identificador de FullStory mediante FS.setUserVars({ consent_version: 'v3', consent_ts: ts }) para que cualquier grabación individual sea rastreable hasta una entrada de registro de consentimiento específica. Una implementación correctamente controlada, combinada con atributos de enmascaramiento que por defecto son privados y una ruta de eliminación que se activa al retirar el consentimiento, es lo que convierte la cobertura de FullStory de un riesgo de concentración regulatoria en una parte defendible de la pila de experiencia digital de un editor.