Lección 9 de 32Eventos y Conversiones

Eventos automáticos y enhanced measurement

Aprovecha los eventos que GA4 captura automáticamente.

15 minutos

Enhanced Measurement es una de las funciones más poderosas de GA4, permitiéndote trackear interacciones importantes sin escribir una sola línea de código. En esta lección exploraremos a fondo cada evento automático y cómo configurarlos óptimamente.

¿Qué es Enhanced Measurement?

Enhanced Measurement es un conjunto de eventos que GA4 puede recopilar automáticamente detectando interacciones del usuario en tu sitio web. A diferencia de Universal Analytics, donde necesitabas implementar código para cada interacción, GA4 usa su script base para detectar y enviar estos eventos.

Acceder a la configuración

  1. Ve a Admin > Data Streams
  2. Selecciona tu web stream
  3. En la sección Enhanced measurement, haz clic en el ícono de engranaje

Verás un panel con todos los eventos disponibles y toggles para activar/desactivar cada uno.

Page views (Vistas de página)

Cómo funciona

El evento page_view se envía automáticamente cada vez que:

  • Se carga una página nueva
  • El historial del navegador cambia (para SPAs)

Parámetros recopilados

Parámetro Descripción Ejemplo
page_location URL completa https://ejemplo.com/productos?cat=zapatos
page_title Título de la página Zapatos - Mi Tienda
page_referrer URL anterior https://google.com

Configuración especial para SPAs

Si tu sitio es una Single Page Application (React, Vue, Angular), GA4 detecta cambios de historial automáticamente usando:

  • history.pushState()
  • history.replaceState()
  • Evento popstate
// GA4 detecta esto automáticamente
history.pushState({}, '', '/nueva-pagina');

Cuándo desactivar

  • Si manejas pageviews manualmente en tu código
  • Si tienes problemas de pageviews duplicados en SPAs

Tip: Antes de desactivar, usa DebugView para entender exactamente cuándo se disparan los pageviews en tu sitio.

Scrolls (Desplazamiento)

Cómo funciona

El evento scroll se envía una vez cuando el usuario hace scroll hasta el 90% de la altura de la página.

Parámetros

Parámetro Valor
percent_scrolled Siempre 90

Limitaciones importantes

  • Solo se envía al 90%, no a otros porcentajes
  • Solo se envía una vez por página
  • Puede no ser útil para páginas muy largas

Cuándo desactivar

  • Si necesitas tracking de scroll más granular (10%, 25%, 50%, 75%, 100%)
  • Si implementarás scroll tracking personalizado

Alternativa: Scroll tracking personalizado

Para tracking más detallado, implementa manualmente:

// Tracking de scroll personalizado con GTM o código directo
let scrollThresholds = [25, 50, 75, 90, 100];
let triggeredThresholds = [];

window.addEventListener('scroll', function() {
  let scrollPercent = Math.round(
    (window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
  );

  scrollThresholds.forEach(threshold => {
    if (scrollPercent >= threshold && !triggeredThresholds.includes(threshold)) {
      gtag('event', 'scroll_depth', {
        percent_scrolled: threshold,
        page_path: window.location.pathname
      });
      triggeredThresholds.push(threshold);
    }
  });
});

Outbound clicks (Clics salientes)

Cómo funciona

El evento click se envía cuando un usuario hace clic en un enlace que lleva fuera de tu dominio.

Parámetros

Parámetro Descripción Ejemplo
link_url URL del enlace https://facebook.com/miempresa
link_domain Dominio de destino facebook.com
outbound Siempre true true
link_classes Clases CSS del enlace btn social-link
link_id ID del enlace fb-link

Qué se considera "saliente"

Un clic es saliente si el dominio del enlace es diferente al dominio actual. GA4 considera subdominios como el mismo dominio.

Tu sitio: ejemplo.com
- Clic a facebook.com → Outbound: Sí
- Clic a blog.ejemplo.com → Outbound: No
- Clic a ejemplo.com/otra-pagina → Outbound: No

Configurar dominios adicionales

Si tienes múltiples dominios que consideras "propios":

  1. Ve a Configure tag settings > Configure your domains
  2. Agrega dominios que NO deberían ser outbound

Site search (Búsqueda interna)

Cómo funciona

El evento view_search_results se envía cuando GA4 detecta un parámetro de búsqueda en la URL.

Parámetros

Parámetro Descripción
search_term Término buscado

Parámetros de búsqueda por defecto

GA4 busca estos parámetros automáticamente:

  • q
  • s
  • search
  • query
  • keyword

Agregar parámetros personalizados

Si tu sitio usa parámetros diferentes:

  1. En Enhanced Measurement, haz clic en Show advanced settings bajo Site search
  2. Agrega tus parámetros separados por comas

Ejemplo para URL mitienda.com?buscar=zapatos&tipo=hombre:

  • Agrega: buscar, tipo

Limitaciones

  • Requiere que el término esté en la URL
  • No funciona con búsquedas AJAX que no modifican la URL
  • No detecta autocompletado o sugerencias

Alternativa para búsquedas sin URL

Si tu buscador usa AJAX:

// Cuando el usuario busca
function onSearch(searchTerm) {
  gtag('event', 'search', {
    search_term: searchTerm
  });

  // Tu lógica de búsqueda AJAX aquí
}

Video engagement (Interacción con videos)

Cómo funciona

GA4 trackea automáticamente videos de YouTube embebidos con la API de JavaScript habilitada.

Eventos de video

Evento Cuándo se dispara
video_start El video comienza a reproducirse
video_progress Video alcanza 10%, 25%, 50%, 75%
video_complete Video termina

Parámetros

Parámetro Descripción
video_title Título del video
video_url URL del video
video_provider Siempre "youtube"
video_current_time Tiempo actual en segundos
video_duration Duración total
video_percent Porcentaje alcanzado
visible Si el video está visible

Requisito importante: API de JavaScript

Para que funcione, los embeds de YouTube deben tener la API habilitada:

<!-- NO funciona -->
<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>

<!-- SÍ funciona -->
<iframe src="https://www.youtube.com/embed/VIDEO_ID?enablejsapi=1"></iframe>

También funciona si el video tiene:

  • origin=tudominio.com en la URL
  • Está embebido via YouTube player API

Limitaciones

  • Solo YouTube (no Vimeo, Wistia, videos HTML5, etc.)
  • Requiere la API habilitada
  • No trackea videos en iframes cross-origin sin la API

Tracking de otros providers

Para Vimeo, Wistia u otros, necesitas implementación personalizada:

// Ejemplo para Vimeo usando su API
var player = new Vimeo.Player('vimeo-player');

player.on('play', function() {
  gtag('event', 'video_start', {
    video_provider: 'vimeo',
    video_title: 'Mi Video'
  });
});

File downloads (Descargas de archivos)

Cómo funciona

El evento file_download se envía cuando un usuario hace clic en un enlace que apunta a un archivo descargable.

Extensiones trackeadas

GA4 detecta estas extensiones por defecto:

pdf, xls, xlsx, doc, docx, txt, rtf, csv,
exe, key, pps, ppt, pptx, 7z, pkg, rar,
gz, zip, avi, mov, mp4, mpeg, wmv, midi, mp3, wav, wma

Parámetros

Parámetro Descripción Ejemplo
file_name Nombre del archivo guia-precios.pdf
file_extension Extensión pdf
link_url URL completa https://ejemplo.com/docs/guia-precios.pdf
link_text Texto del enlace Descargar guía

Limitaciones

  • Solo detecta enlaces directos a archivos
  • No funciona con descargas generadas dinámicamente
  • No trackea descargas iniciadas por JavaScript sin clic

Trackear extensiones adicionales

Si necesitas trackear tipos de archivo no incluidos, usa eventos personalizados:

// Para archivos .dwg (AutoCAD)
document.querySelectorAll('a[href$=".dwg"]').forEach(link => {
  link.addEventListener('click', function() {
    gtag('event', 'file_download', {
      file_name: this.href.split('/').pop(),
      file_extension: 'dwg',
      link_url: this.href
    });
  });
});

Form interactions (Interacciones con formularios)

Cómo funciona

GA4 detecta interacciones con formularios HTML:

Evento Cuándo se dispara
form_start Usuario interactúa por primera vez con un campo
form_submit Formulario es enviado

Parámetros

Parámetro Descripción
form_id ID del elemento <form>
form_name Atributo name del form
form_destination URL de action del form
form_submit_text Texto del botón de submit

Limitaciones importantes

  • Requiere elemento <form> HTML estándar
  • Puede no detectar formularios en SPAs
  • No trackea formularios creados dinámicamente
  • No detecta validación fallida (solo submits exitosos)

Mejores prácticas para formularios

  1. Usa elementos <form> estándar con id y name
  2. Define action aunque uses AJAX
  3. Para SPAs, considera tracking manual:
// Tracking manual de formulario
document.getElementById('miFormulario').addEventListener('submit', function(e) {
  gtag('event', 'form_submit', {
    form_id: 'miFormulario',
    form_name: 'contacto',
    form_destination: '/gracias'
  });
});

Matriz de decisión: Enhanced Measurement

Evento Activar si... Desactivar si...
Page views Tienes sitio tradicional Manejas pageviews en SPA manualmente
Scrolls Quieres métrica básica de engagement Necesitas scroll detallado
Outbound clicks Quieres saber a dónde van usuarios Ya trackeas con eventos propios
Site search Tu buscador usa parámetros URL Usas AJAX sin parámetros
Video engagement Tienes videos de YouTube Solo otros providers
File downloads Ofreces descargas directas Usas sistema de descargas dinámico
Form interactions Tienes forms HTML estándar SPA con forms complejos

Verificar eventos en DebugView

Para confirmar que Enhanced Measurement funciona:

  1. Agrega ?debug_mode=true a cualquier URL de tu sitio
  2. Ve a Admin > DebugView en GA4
  3. Navega tu sitio y realiza las acciones
  4. Verifica que los eventos aparecen con sus parámetros

Resumen

Enhanced Measurement te da tracking básico sin código:

  • Page views: Automático para sitios tradicionales y SPAs
  • Scrolls: Solo 90%, útil como métrica básica
  • Outbound clicks: Detecta salidas de tu dominio
  • Site search: Requiere parámetros en URL
  • Video engagement: Solo YouTube con API
  • File downloads: Extensiones comunes
  • Form interactions: Forms HTML estándar

Para necesidades más avanzadas, complementa con eventos personalizados que veremos en la próxima lección.

Completaste esta leccion?

Marca esta leccion como completada. Tu progreso se guardara en tu navegador.