El canal de tráfico IA que configuraste en un post anterior clasifica tu adquisición. Para segmentar, comparar y crear audiencias necesitas más: marcar la sesión con un evento personalizado, sus parámetros y sus dimensiones. Aquí lo montas paso a paso.

La distinción importa. La configuración del canal agrupa de dónde vino la sesión — adquisición, al configurar un regex sobre el referente. Un evento personalizado (custom event) te permitirá marcar las sesiones de tus usuarios dentro de Google Analytics 4 (GA4) para exploraciones, comparaciones y audiencias — y puede usar señales que la sola identificación del canal de donde vienen no contempla, como la página de destino (landing page) o una etiqueta UTM.

El problema de raíz sigue siendo el mismo que abrió esta serie de posts: buena parte del tráfico de IA se esconde como «Directo». Ya cubrimos la capa servidor; esta guía cierra el par con la capa del lado cliente.

Canal vs evento personalizado: cuándo el canal no basta

El canal personalizado clasifica cada sesión según su fuente — es una vista de adquisición y ahí es excelente. Lo que no hace: no marca sesiones por página de destino ni por parámetros de URL arbitrarios, y la dimensión de canal no siempre es cómoda para audiencias o exploraciones granulares en los reportes personalizados.

Según Google, los eventos personalizados te permiten recoger información que GA4 no recoge por sí solo — tú defines el nombre, los parámetros y la condición que lo dispara. La señal la eliges tú, no el grupo de canales.

Hay además una asimetría de tiempo que conviene conocer antes de empezar. Según Google, los grupos de canales personalizados se aplican de forma retroactiva a los datos históricos; un evento, en cambio, solo existe desde que lo implementas — y según Google, sus dimensiones solo se llenan con los datos recogidos después del registro. Cada semana sin tu evento configurado es información histórica que no vas a recuperar — implementa cuanto antes.

Suscríbete al newsletter de Madbotz para recibir el próximo análisis directo en tu correo. Sin spam, sin ruido — solo posts nuevos.

Suscríbete

Las señales que delatan una sesión de IA

Del lado cliente hay tres señales utilizables — y un caso sin señal. La primera es el referente (referrer) leído por JavaScript: según MDN, document.referrer devuelve el URI de la página que enlazó a la actual, así que basta compararlo contra una lista de dominios de asistentes. La lista es la misma que vive en el regex del canal — no hace falta duplicarla.

La segunda es la etiqueta UTM que algunas fuentes añaden solas. Según Search Engine Roundtable, OpenAI añade utm_source=chatgpt.com a los enlaces salientes de ChatGPT y en 2025 extendió el etiquetado a más enlaces para mejorar la medición. Es una señal precisa mientras la fuente la mantenga — si el formato cambia, tu detección cambia con él.

La tercera señal es la página de destino delatora: una URL que casi nadie encuentra por Google ni por redes porque solo circula en respuestas de IA — por ejemplo, una landing que creaste para que los asistentes la citen. Si una sesión aterriza justo ahí, lo más probable es que venga de un asistente. Es una señal de apoyo: úsala para reforzar el referente o la UTM, no como única evidencia.

Tabla 1 — señales para detectar una sesión de IA del lado cliente. La última columna, «Fiabilidad — cuándo usarla», es la respuesta corta de cada señal.

SeñalDónde se leeCómo dispara el eventoFiabilidad — cuándo usarla
Referente (document.referrer)JavaScript en el navegadorVariable de GTM que compara contra la lista de dominios de IAAlta cuando la fuente pasa referente (Perplexity, Gemini, Copilot…)
UTM y parámetros de URLLa URL de la página de destinoActivador sobre el parámetro de consulta (utm_source=chatgpt.com)Alta cuando la fuente los añade — frágil si el formato cambia
Página de destinoLa ruta de aterrizaje del usuarioActivador sobre el path de la URLMedia — señal de apoyo; combínala con referente o UTM
Sin señal (Atlas y similares)No hay nada que leer del lado clienteNo se puede dispararNula del lado cliente — capa servidor

El cuarto caso — sin señal — no se marca desde el navegador; lo retomamos al final de esta guía.

Monta el evento ai_session (pasos 1-3)

Seis pasos en total, en dos bloques: montar el evento (1-3) y llevarlo del parámetro al informe (4-6).

Paso 1: define la taxonomía del evento

Nuestra sugerencia: un evento ai_session con dos parámetros — ai_source (chatgpt, perplexity, gemini, copilot…) y ai_detection_method (referrer, utm, landing). El naming es convención nuestra, no un estándar de GA4 — nómbralo como quieras mientras respetes las reglas de nombres. Según Google, los nombres de evento deben tener menos de 40 caracteres, empezar con letra y usar solo letras, números y guiones bajos.

Los parámetros también tienen un límite. Según Google, cada evento admite hasta 25 parámetros y la mayoría de los valores se corta a los 100 caracteres — de sobra para una taxonomía de dos parámetros, pero conviene saberlo antes de crecer.

Paso 2: implementa la detección en GTM o gtag

Con Google Tag Manager (GTM) la detección vive en una variable de JavaScript personalizado — una pieza reutilizable que GTM ejecuta en cada página para calcular un valor y que después usarás como condición en tus activadores. Para crearla, entra a tagmanager.google.com, abre el contenedor de tu sitio y ve a Variables en el menú lateral. En «Variables definidas por el usuario» haz clic en Nueva, elige el tipo «JavaScript personalizado», nómbrala — por ejemplo, JS - ai_detection_method — y pega este código:

// Variable GTM — devuelve el método de detección o 'none'
function() {
  var fuentesIA = /chatgpt\.com|perplexity\.ai|gemini\.google\.com|claude\.ai|copilot\.microsoft\.com/;
  if (fuentesIA.test(document.referrer)) return 'referrer';
  var utm = new URLSearchParams(location.search).get('utm_source') || '';
  if (fuentesIA.test(utm)) return 'utm';
  return 'none';
}

Es un ejemplo ilustrativo, no una implementación completa — la lista completa de dominios vive en el regex del canal y conviene mantenerla en un solo lugar para no actualizar dos listas. Repite el proceso para una segunda variable gemela que devuelva la fuente (chatgpt, perplexity…) en lugar del método — con ella llenarás el parámetro ai_source.

Sin GTM, la misma lógica funciona con gtag directo en tu plantilla:

// gtag — dispara el evento solo si hay señal
if (metodo !== 'none') {
  gtag('event', 'ai_session', {
    ai_source: fuente,
    ai_detection_method: metodo
  });
}

Paso 3: dispara el evento en la primera página vista

El evento debe salir en la página de aterrizaje — es donde vive la señal. En GTM eso se arma con dos piezas: una etiqueta que envía el evento y un activador (trigger) que decide cuándo dispararla.

Primero la etiqueta: en el menú lateral ve a Etiquetas → Nueva y elige el tipo «Google Analytics: evento de GA4». Escribe ai_session como nombre del evento y añade los dos parámetros, llenando cada valor con las variables del Paso 2 — ai_detection_method con {{JS - ai_detection_method}} y ai_source con {{JS - ai_source}}.

Ahora el activador: en Activadores → Nueva elige el tipo «Vista de página». Según Google, los activadores de página vista (page view triggers) disparan cuando el navegador empieza a cargar una página. Marca «Algunas vistas de página» y pon la condición: {{JS - ai_detection_method}} no es igual a none — así la etiqueta solo dispara cuando hay señal de IA.

El detalle que importa: el referente solo existe en la página de entrada. Si esperas a la segunda página vista, la señal ya se fue — por eso el activador va sobre la primera página vista de la sesión. Asigna el activador a la etiqueta, guarda y publica el contenedor.

Del parámetro al informe: registra, valida y explota (pasos 4-6)

Paso 4: registra las dimensiones personalizadas

El paso que casi todos olvidan. GA4 recoge los parámetros de tu evento desde el primer disparo, pero no los muestra en ningún informe hasta que le dices que existen — eso es registrarlos como dimensiones personalizadas (custom dimensions). Sin este registro, ai_source llega a GA4 en cada evento y aun así no aparece por ningún lado.

Según Google, el registro se hace en Administrar → Visualización de datos → Definiciones personalizadas → Crear dimensión personalizada. Ahí llenas tres campos: el nombre visible de la dimensión (por ejemplo, «AI Source»), el ámbito — elige Evento (event-scoped), porque el parámetro viaja en un evento — y el parámetro de evento, escrito exactamente como llega: ai_source, mayúsculas incluidas. Un desajuste de una letra produce valores vacíos sin ningún error visible.

Repite el proceso para la segunda dimensión: «AI Detection Method» sobre ai_detection_method. Son dos registros de una sola vez cada uno — dos minutos de trabajo que separan un evento invisible de uno explotable.

Dos límites que importan de esa misma documentación: una propiedad estándar admite hasta 50 dimensiones personalizadas de ámbito evento, y los valores solo se llenan para los datos recogidos después del registro — el histórico no se rellena. Según Simo Ahava, los parámetros que exceden las cuotas siguen pasando al export de BigQuery — un salvavidas si llegas tarde al registro, pero no un sustituto de hacerlo a tiempo.

Paso 5: valida en DebugView y Tiempo real

DebugView es el inspector en vivo de GA4: muestra, hit a hit, los eventos que llegan desde un navegador en modo de depuración. Lo encuentras en Administrar → Visualización de datos → DebugView, y la forma más simple de activarlo es la Vista previa de GTM — al entrar a tu sitio desde ahí, tus visitas se marcan automáticamente como depurables.

Ahora simula la visita: en esa misma ventana de vista previa, abre tu sitio con ?utm_source=chatgpt.com añadido a la URL — o entra desde un asistente real. En la línea de tiempo de DebugView debería aparecer ai_session; haz clic sobre el evento y verifica que trae sus dos parámetros con los valores esperados (ai_detection_method: utm, ai_source: chatgpt).

Segunda verificación en Informes → Tiempo real: busca ai_session en la tarjeta de eventos y confirma que el conteo sube con cada visita simulada. DebugView valida el detalle de una visita; Tiempo real valida que el flujo completo llega a la propiedad.

Si el parámetro llega vacío o como (not set), revisa el registro del Paso 4. Y paciencia con los informes estándar: los datos de una dimensión recién registrada pueden tardar hasta 48 horas en reflejarse — que no aparezcan hoy en un informe no significa que el evento esté roto.

Paso 6: explota la dimensión en informes y audiencias

Aquí está el retorno de todo el montaje: tres usos, cada uno con su pregunta de negocio.

Exploraciones — el laboratorio de análisis de GA4. Ve a Explorar, crea una exploración en blanco y añade «AI Source» como dimensión junto a tus métricas de siempre (sesiones, conversiones, ingresos). Responde: ¿qué asistente me trae más sesiones y qué hacen esas visitas en el sitio?

Comparaciones — filtros que se superponen sobre tus informes estándar. En cualquier informe, haz clic en Añadir comparación y crea una con la condición «AI Detection Method» distinto de (not set) — es decir, sesiones marcadas por el evento — junto a otra con todos los usuarios. Responde: ¿el tráfico de IA se comporta distinto que mi tráfico orgánico?

Audiencias — grupos de usuarios reutilizables en informes y campañas. En Administrar → Audiencias, crea una nueva con la condición de haber disparado ai_session; GA4 la irá llenando desde ese momento. Responde: ¿cómo analizo — o re-impacto — a quienes llegaron desde un asistente?

Qué marca de verdad — y qué no

Honestidad antes que humo — la misma regla que aplicamos al canal. El evento marca las sesiones que dejan alguna señal: referente, UTM o página de destino. Ayuda a marcar; no garantiza identificar el 100% del tráfico de IA.

Si el navegador no manda nada, el lado cliente está ciego. Según MDN, document.referrer devuelve una cadena vacía cuando no hay página que enlace — y ChatGPT Atlas es exactamente ese caso: sin referente y sin UTM, no hay condición que evaluar ni evento que disparar.

Ese tráfico se trabaja en la capa servidor que ya cubrimos en esta serie. El puente es directo: el Measurement Protocol puede disparar el mismo evento ai_session desde tu servidor, con la misma taxonomía — cliente y servidor alimentan una sola dimensión.

Cómo lo usamos en Madbotz — y una nota de privacidad

La nota de privacidad, breve pero no opcional. Según Google, está prohibido enviar información personal identificable (PII) a Analytics — nada de correos, nombres ni identificadores personales en tus parámetros. Una taxonomía como ai_source=chatgpt no toca datos personales, pero si tu detección crece hacia identificadores, la LFPDPPP (Ley Federal de Protección de Datos Personales en Posesión de los Particulares) en México y el GDPR (Reglamento General de Protección de Datos) en Europa entran en juego — y eso lo valida tu equipo legal, no tu contenedor de GTM. La privacidad de la medición IA merece su propio post; está en la lista.

📩
Agenda una llamada — si tu setup necesita una taxonomía a medida (multi-dominio, server-side, data layer complejo), agenda una llamada y lo vemos contigo.

Preguntas frecuentes

¿El evento personalizado reemplaza al canal de IA de GA4?

No — se complementan. El canal agrupa de dónde vino la sesión en tus informes de adquisición; el evento marca la sesión con parámetros propios para exploraciones, comparaciones y audiencias, y puede usar señales que el canal no contempla, como la página de destino.

¿Puedo marcar el tráfico de ChatGPT Atlas con un evento personalizado?

Solo si deja alguna señal. Atlas no pasa referente y sus visitas no traen UTM, así que del lado cliente no hay nada que detectar. Ese tráfico se trabaja con medición del lado del servidor, como explicamos en el post de server-side de esta serie.

¿Por qué no veo mis parámetros en los informes de GA4?

Casi siempre falta registrar la dimensión personalizada en Administrar → Definiciones personalizadas. Sin ese registro los parámetros se recogen pero no aparecen en los informes, y tras registrarla los datos pueden tardar hasta 48 horas en reflejarse.

¿El evento marca sesiones pasadas?

No. Un evento solo existe desde que lo implementas y sus dimensiones solo se llenan con los datos recogidos después del registro. Es la asimetría con los grupos de canales personalizados, que sí se aplican de forma retroactiva a los datos históricos.

Cierre

El evento ai_session es la pieza de granularidad de esta serie: el canal te dice de dónde vino el tráfico; el evento te deja segmentarlo, compararlo y convertirlo en audiencias.

Tres ideas para llevarte:

  • El canal agrupa la adquisición; el evento marca la sesión — se complementan, no compiten.
  • El paso que casi todos olvidan es registrar las dimensiones: sin registro, los parámetros se recogen pero no se ven.
  • Los eventos no son retroactivos: cada semana sin implementarlos es histórico que pierdes.

Y la causa antes que la medición: las sesiones de IA nacen de tu presencia en las respuestas de los modelos. Antes de afinar el marcado, asegúrate de que la IA te ve y te cita — eso lo mides con el AI Visibility Score, el mismo motor de 130+ check items con el que evaluamos nuestro propio sitio.

🤖
Analiza tu sitio gratis — ingresa una URL y obtén tu AI Visibility Score en menos de 60 segundos.