Eventos automáticos y enhanced measurement
Aprovecha los eventos que GA4 captura automáticamente.
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
- Ve a Admin > Data Streams
- Selecciona tu web stream
- 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":
- Ve a Configure tag settings > Configure your domains
- 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:
qssearchquerykeyword
Agregar parámetros personalizados
Si tu sitio usa parámetros diferentes:
- En Enhanced Measurement, haz clic en Show advanced settings bajo Site search
- 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.comen 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
- Usa elementos
<form>estándar conidyname - Define
actionaunque uses AJAX - 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:
- Agrega
?debug_mode=truea cualquier URL de tu sitio - Ve a Admin > DebugView en GA4
- Navega tu sitio y realiza las acciones
- 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.