ga4-analysis
Skill6 starsChanged 14 days agoMITView on GitHub
Análisis de GA4: orgánico frente a pagado, atribución, channel groupings, DebugView, adquisición, engagement y comparación de períodos, con cruce con GSC y Google Ads. Usar al interpretar tráfico, caídas o fuentes de adquisición.
In this repository40 other files it gives its agents.
- accesibilidad-wcagSkill
- cache-headersSkill
- canonicalSkill
- ccpaSkill
- core-web-vitalsSkill
- ga4-ai-trafficSkill
- geo-ai-discoverabilitySkill
- google-tag-managerSkill
- hreflangSkill
- image-optimizationSkill
- javascript-seoSkill
- ley-25326Skill
- ley-datos-chileSkill
- lfpdpppSkill
- lgpdSkill
- mineria-de-impresionesSkill
- nfadpSkill
- on-page-fundamentalsSkill
- prestashop-seoSkill
- privacidadSkill
- redirectsSkill
- rgpdSkill
- robots-txtSkill
- schema-markupSkill
- screaming-frogSkill
- semrushSkill
- seo-educacionSkill
- seo-gsc-diagnosticsSkill
- seo-interlinkingSkill
- seo-negativoSkill
- seo-quoteSkill
- se-rankingSkill
- sitemapSkill
- ssl-httpsSkill
- third-party-scriptsSkill
- uk-gdprSkill
- ux-heuristicaSkill
- wordpress-diviSkill
- wordpress-elementorSkill
- wordpress-hidden-errorsSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 173
Search Engine Roundtable: cubre updates no confirmados y comunidad de SEOs
- Distinctive: line 413
Privacy requirement (GDPR): Do not use email, name, or any directly identifiable information as the User ID.
- Distinctive: line 423
When interpreting organic traffic data:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
GA4 Analysis — Knowledge Base
Diferencias clave UA → GA4
| Universal Analytics | GA4 |
| Sesiones como unidad central | Eventos como unidad central |
| Bounce rate | Engaged sessions / Engagement rate |
| Goals | Conversions (cualquier evento marcado) |
| Views | Data Streams |
| Attribution: último clic por defecto | Attribution: Data-driven por defecto |
| Pageviews = hits | page_view = evento automático |
| Sampling en vistas | Sin sampling (BigQuery para volumen) |
Estructura de datos en GA4
Jerarquía
Account → Property → Data Stream (web / iOS / Android)Un Data Stream = un snippet de medición (gtag.js o GTM).
Tipos de eventos
| Tipo | Quién lo crea | Ejemplos |
| Automáticos | GA4 | page_view, session_start, first_visit, scroll (90%) |
| Medición mejorada | GA4 (opcional) | click (salidas), view_search_results, file_download, video_start |
| Recomendados | Dev/GTM | purchase, generate_lead, sign_up, add_to_cart |
| Personalizados | Dev/GTM | Cualquier nombre no reservado |
Activar medición mejorada: GA4 Admin > Data Streams > Enhance Measurement.
Orgánico vs Pagado — Análisis de adquisición
Ruta en GA4
Reports > Acquisition > Traffic Acquisition
- Dimension principal: Session default channel group
- Dimension secundaria: Session source / Session medium / Session campaign
Channel groups relevantes
| Channel | Condición (simplificada) |
| Organic Search | medium = organic |
| Paid Search | medium = cpc/ppc/paidsearch |
| Organic Social | medium = social/social-network + source en lista conocida |
| Paid Social | medium = paid-social/social_paid |
| Direct | source = (direct), medium = (none) |
| Referral | medium = referral |
| medium = email | |
| Display | medium = display/banner/cpm |
Problema habitual: UTMs mal configurados en campañas de pago → tráfico de pago cae en Organic Search o en "Unassigned". Verificar siempre los UTMs de campañas activas cuando el tráfico orgánico sube repentinamente.
Cómo separar orgánico de pago en un informe
- Reports > Acquisition > Traffic Acquisition
- Añadir filtro: Session default channel group = Organic Search
- Comparar períodos para detectar variaciones
O con dimensión secundaria "Session source/medium":
google / organic= SEOgoogle / cpc= Google Ads(direct) / (none)= Direct (incluye dark social y tráfico no atribuido)
Atribución en GA4
Modelos disponibles (2025)
| Modelo | Descripción | Cuándo usar |
| Data-driven | Machine learning distribuye el crédito | Default, cuando hay suficiente volumen |
| Last click | 100% al último canal antes de conversión | Comparativa con UA |
| First click | 100% al primer canal | Awareness analysis |
| Linear | Distribución igual entre todos los touchpoints | Sin datos ML |
| Time decay | Más crédito a touchpoints más cercanos a conversión | — |
| Position-based | 40% primero, 40% último, 20% resto | — |
Cambio de modelo: GA4 Admin > Attribution Settings > Reporting attribution model.
Lookback windows
- Adquisición (first user): 30 días por defecto.
- Engagement (otras conversiones): 30 días clic, 1 día visualización por defecto.
- Modificables en Attribution Settings.
Por qué GA4 y Google Ads muestran cifras distintas
- Modelo de atribución diferente: GA4 data-driven vs Ads last-click.
- Cross-device: GA4 puede atribuir a orgánico si el mismo usuario buscó en móvil sin clic en ad.
- Import delay: Las conversiones importadas de GA4 a Ads tienen lag de 24-48h.
- Conversiones importadas vs Conversiones de Ads: Ads puede contar smart bidding conversions adicionales.
Métricas de engagement (reemplaza bounce rate)
| Métrica | Definición |
| Engaged sessions | Sesiones con ≥1 evento de conversión, ≥2 páginas vistas, O ≥10 segundos de duración |
| Engagement rate | Engaged sessions / Total sessions |
| Bounce rate (GA4) | 1 - Engagement rate (inverso) |
| Average engagement time | Tiempo activo en primer plano (no tiempo en página pasivo) |
Una sesión con un único pageview y 15 segundos = sesión engaged (>10s). UA la contaría como bounce.
Comparativa de períodos
Herramientas en GA4
- Reports: date picker > "Compare" > Previous period / Previous year.
- Explorations: tabla con columnas calculadas para % de variación.
- Insights automáticas: GA4 detecta anomalías estadísticas y las reporta en Overview.
Cómo interpretar caídas de tráfico orgánico
- Aislar canal: filtrar solo Organic Search.
- Separar por país/dispositivo para descartar cambios en audiencia.
- Verificar si la caída es en sesiones o en usuarios (si solo caen sesiones, puede ser cambio en comportamiento de regreso, no en adquisición).
- Cruzar con Google Search Console:
- GSC muestra impresiones + clics reales de Google. Si bajan en paralelo → problema de visibilidad.
- Si GA4 baja pero GSC no → problema de tracking (GTM, Consent Mode).
- Cruzar con fechas de Google Algorithm Updates (ver sección abajo).
Google Algorithm Updates — cruce con caídas de tráfico
Cuando GA4 muestra una caída de tráfico orgánico, siempre cruzar las fechas con el historial de updates de Google antes de concluir una causa.
Tipos de update a verificar
| Update | Qué afecta | Señal típica |
| Core Update | Ranking general de todo el sitio | Caída amplia en múltiples páginas simultáneamente |
| Helpful Content Update | Contenido creado principalmente para buscadores | Caída en artículos de blog con poco E-E-A-T |
| Spam Update | Backlinks manipuladores, cloaking, thin content | Caída brusca + desaparición de keywords |
| Reviews Update | Páginas de reseñas y afiliados | Caída en páginas comparativas / de producto |
| Page Experience | Core Web Vitals, mobile, HTTPS | Caída gradual correlacionada con métricas de velocidad |
Protocolo
- Identificar la fecha exacta de inicio de la caída en GA4 (usar comparativa día a día)
- WebSearch para obtener el calendario actualizado de Google Updates si los datos son recientes
- Verificar si hay un update en una ventana de ±7 días respecto al inicio de la caída
- Si hay solapamiento → señalarlo como hipótesis a validar, no como causa confirmada
- Buscar evidencia adicional: ¿los competidores también cayeron? ¿El contenido afectado tiene señales de thin content o E-E-A-T débil?
Fuentes para el historial de updates:
- Google Search Status Dashboard: https://status.search.google.com/products/rGHU1u87FJnkbvfe/history
- Search Engine Roundtable: cubre updates no confirmados y comunidad de SEOs
Cómo reportar
- Caída coincide con Core Update confirmado → "La caída del [fecha] coincide con el Core Update de [mes]. Hipótesis: el sitio fue afectado por los cambios en criterios de calidad de contenido. Requiere análisis de E-E-A-T en las páginas afectadas."
- Caída sin update conocido → "No hay update de Google en el período. Investigar causas técnicas: cambios en el sitio, pérdida de backlinks, problemas de indexación."
- Caída previa a un update → No atribuir al update aunque sea temporal.
Integración GA4 + Google Search Console
Calidad de datos GSC — períodos afectados (2025-2026)
Antes de interpretar cualquier dato de GSC, verificar el período:
| Período | Issue | Métrica afectada |
| Mayo 2025 – abril 2026 | Error de registro de Google: impresiones infladas 30-50% | Impresiones |
| Antes de sep. 2025 (adicional) | Herramientas SEO con parámetro &num=100 generaban impresiones falsas para posiciones >10. Eliminado 10-14 sep. 2025 → caída brusca de impresiones 20-50% | Impresiones |
| Desde junio 2025 | Datos de AI Mode mezclados con orgánico en tipo "Web". Sin filtro nativo en GSC | Impresiones + clics |
| Después de abril 2026 | Datos limpios. Mejor período para análisis de impresiones | — |
Regla operativa: En períodos afectados, priorizar clics sobre impresiones. Las impresiones solo son útiles como referencia relativa entre queries, no como valor absoluto. Los clics no están afectados por ninguno de estos issues.
Caída brusca de impresiones en septiembre 2025: si el sitio muestra una caída de
impresiones del 20-50% entre el 10 y el 14 de septiembre de 2025, es el efecto de la
eliminación del &num=100. No es una penalización de Google ni un problema del sitio.
Requisitos
GA4 Admin > Property Settings > Search Console linking. El usuario de GA4 debe tener permisos en GSC.
Qué datos aparecen
Reports > Acquisition > Search Console:
- Google organic search queries
- Google organic search traffic (landing pages)
Limitación importante: Los datos de GSC en GA4 son para sesiones que vinieron de Google orgánico Y donde GA4 registró la sesión. Si Consent Mode bloquea GA4 para algunos usuarios, habrá discrepancia con los datos directos en GSC.
Integración GA4 + Google Ads
Setup
GA4 Admin > Google Ads linking.
Una vez vinculado:
- Las conversiones de GA4 se pueden importar a Google Ads.
- Los datos de Ads aparecen en GA4 Reports > Acquisition.
- Remarketing audiences de GA4 disponibles en Ads.
Análisis orgánico vs pagado en GA4 con Ads vinculado
Exploration > Free Form:
- Dimensión: Session default channel group
- Métricas: Sessions, Conversions, Revenue (si e-commerce)
- Filtro: incluir solo "Organic Search" y "Paid Search"
Permite ver ROAS efectivo de pago vs tráfico orgánico side-by-side.
DebugView
Ruta: GA4 Admin > DebugView
Activar
Opción 1 — GTM: En GA4 Configuration Tag, añadir Field debug_mode = true.
Opción 2 — Chrome Extension: "Google Analytics Debugger" activa debug automáticamente.
Opción 3 — URL param: ?_gl=debug (no documentado oficialmente).
Qué muestra
- Eventos en tiempo real (< 1 minuto).
- Parámetros de cada evento expandibles.
- Device ID para seguir un usuario específico.
- Errores de validación de parámetros (p.ej., parámetro excede 100 caracteres).
Casos de uso
- Verificar que un evento de GTM llega correctamente antes de publicar.
- Confirmar parámetros de e-commerce (items array, transaction_id, value).
- Diagnosticar por qué una conversión no se registra.
Informes más útiles para SEO
Organic landing pages
Reports > Engagement > Landing Page Filtrar: Session default channel group = Organic Search Ordenar por: Sessions desc
Muestra qué páginas reciben más tráfico orgánico. Útil para identificar páginas en declive.
Organic queries (vía Search Console)
Reports > Acquisition > Search Console > Google organic search queries Muestra queries con clics, impresiones, CTR, posición promedio en el mismo informe de GA4.
Páginas con alta tasa de rebote orgánico
Explorations > Free Form:
- Dimensión: Landing page + query string
- Métricas: Sessions, Bounce rate, Average engagement time
- Filtro: Organic Search
- Ordenar por: Bounce rate desc + Sessions > umbral mínimo (ej. >100)
Identifica páginas donde los usuarios orgánicos llegan y se van — señal de mismatch entre intent de búsqueda y contenido.
Dimensiones y métricas clave (referencia rápida)
| Concepto | Dimensión/Métrica en GA4 |
| Canal de adquisición | Session default channel group |
| Fuente/medio | Session source/medium |
| Página de entrada | Landing page + query string |
| Dispositivo | Device category |
| País | Country |
| Sesiones | Sessions |
| Usuarios activos | Active users |
| Nuevos usuarios | New users |
| Tasa de engagement | Engagement rate |
| Conversiones | Conversions |
| Ingresos | Total revenue (e-commerce) |
Errores comunes de configuración
| Error | Síntoma | Solución |
| Tráfico de pago en Organic | UTMs incorrectos o ausentes en campañas | Auditar UTM builder, verificar en GSC vs GA4 |
| Sesiones infladas | Una visita = múltiples sesiones | Timeout de sesión ajustado muy bajo (default: 30min) |
| Self-referral | El propio dominio aparece como fuente | Añadir dominio en GA4 Admin > Data Streams > Configure Tag Settings > List unwanted referrals |
| Conversiones duplicadas | Mismo evento marcado como conversión en GTM y en GA4 | Marcar solo en uno de los dos |
| Tráfico directo excesivo | Dark social, email sin UTM, copia-pega de URL | Normal hasta ~20-25%; por encima, revisar UTMs de newsletters y social |
| Datos personales en la URL | page_location con tokens de sesión, enlaces de restablecimiento, correos o contraseñas | Ver sección siguiente |
Datos personales en la cadena de consulta — exportar sin query string
En sitios con login, registro o aplicaciones (portales de clientes, cotizadores, SaaS) es frecuente que las URL completas que guarda GA4 contengan tokens de inicio de sesión y de restablecimiento, códigos de validación, correos e incluso contraseñas en la cadena de consulta. En una auditoría real, 13 archivos de datos de trabajo (exportaciones para informes y análisis de conversión) acumularon más de 1.200 apariciones de esos valores, una contraseña incluida, y se sincronizaban a diario a una nube.
Regla al extraer por API o exportar:
- Usar
pagePath/landingPage(sin cadena de consulta). EvitarpageLocation,landingPagePlusQueryStringy "Landing page + query string" salvo que sea imprescindible. - Si hace falta la cadena (UTMs, parámetros de filtro), quitar los valores de los parámetros sensibles antes de guardar el archivo.
- Revisar los extractores existentes antes de volver a correrlos; los archivos ya generados se limpian o eliminan.
- Reportarlo al cliente como hallazgo de seguridad informativo (qué se ve, sin copiar ningún valor en el informe). El arreglo de fondo es del lado de la aplicación (no pasar credenciales por GET) y de GA4 (redacción de datos en el flujo web).
Cambios de medición — marcar la fecha antes de comparar períodos
Un banner de cookies, Consent Mode, un cambio de etiquetas, de eventos de conversión o de filtros mueve sesiones, conversiones y leads atribuidos sin que cambie el negocio real.
- Antes de publicar un cambio así: avisar la fecha al equipo que reporta KPIs y al de Ads, con la lista de indicadores que pueden moverse y si el total real (p. ej. leads en el CRM) cambia o no.
- Anotar la fecha en GA4 (anotaciones del informe).
- En todo informe que compare períodos a ambos lados de esa fecha, marcarla como cambio de medición y no atribuir la variación a SEO, a un update de Google ni al negocio.
- Separar en la entrega los cambios que tocan la medición de los que no, para que los segundos no esperen al aviso.
Cross-device tracking and User ID
Why cross-device matters for SEO analysis
A user who searches on mobile, abandons, then converts on desktop appears as two separate sessions in GA4 by default. This inflates session counts and distorts channel attribution — the mobile organic session may not be credited for the eventual conversion.
GA4 identity resolution — three methods
| Method | How it works | Accuracy |
| Device ID | Cookie-based, per browser | Low (breaks on browser/device switch) |
| Google Signals | Cross-device from Google accounts | Medium (requires consent, < 100% of users) |
| User ID | Developer-assigned after login | High (only for logged-in users) |
Blended identity (default in GA4): GA4 uses all available signals to merge sessions into users. More accurate than UA was, still not 100%.
Google Signals
Google Signals uses data from users signed into Google accounts who have Ad Personalization enabled. When active, GA4 can attribute sessions across devices to the same user.
Enable: GA4 Admin > Data Settings > Data Collection > Google Signals: On
Consent requirement: Google Signals only uses data from users who consent to
ad storage (ad_storage: granted). With Consent Mode active, signals are limited.
Threshold: GA4 applies data thresholds to prevent identifying individual users. Reports based on Signals may show "data has been aggregated" when user counts are low.
User ID implementation
For sites with user accounts (e-commerce, membership, SaaS), User ID provides the most accurate cross-device attribution.
// After user logs in, set user_id in GA4
gtag('config', 'G-XXXXXXXXXX', {
user_id: 'USER_DATABASE_ID' // Use a hashed/anonymized ID, not email
});
// Or via GTM dataLayer
dataLayer.push({
event: 'login',
user_id: 'HASHED_USER_ID'
});Privacy requirement (GDPR): Do not use email, name, or any directly identifiable information as the User ID. Use an internal database ID or a one-way hash.
Where to see cross-device data: GA4 > Reports > User > User Explorer (requires User ID or Signals) GA4 > Explorations > Path Exploration > User scope (vs Session scope)
Impact on SEO analysis
When interpreting organic traffic data:
- Without cross-device: A user who searched on mobile and converted on desktop looks like two users, with the desktop session attributed to Direct.
- With User ID + Signals: GA4 can merge the journey and attribute the conversion back to the original organic mobile session.
For SEO audits, cross-device tracking primarily affects:
- Conversion rate attributed to organic (may be higher than reported)
- Mobile vs desktop split in organic (may be more balanced than reported)
- Attribution of assisted conversions from organic
Exportación a BigQuery
GA4 Admin > BigQuery linking (gratuito para GA4 standard).
Exporta crudos de eventos diarios. Útil para:
- Análisis histórico sin sampling.
- Combinación con otras fuentes de datos.
- Informes personalizados sin límites de GA4 UI.
Tablas: events_YYYYMMDD y events_intraday_YYYYMMDD.
Referencias
- GA4 Help Center: https://support.google.com/analytics
- GA4 Dimensions & Metrics: https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema
- Attribution Settings: https://support.google.com/analytics/answer/10597962
- GA4 + Search Console: https://support.google.com/analytics/answer/10737381
- BigQuery Export schema: https://support.google.com/analytics/answer/7029846
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

