agentleFS
carlosuhartcarlosuhart/seo-audit-skills/skills/ga4-analysis/SKILL.md

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.

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
  1. Distinctive:

    Search Engine Roundtable: cubre updates no confirmados y comunidad de SEOs

    line 173
  2. Distinctive:

    Privacy requirement (GDPR): Do not use email, name, or any directly identifiable information as the User ID.

    line 413
  3. Distinctive:

    When interpreting organic traffic data:

    line 423

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

GA4 Analysis — Knowledge Base

Diferencias clave UA → GA4

Universal AnalyticsGA4
Sesiones como unidad centralEventos como unidad central
Bounce rateEngaged sessions / Engagement rate
GoalsConversions (cualquier evento marcado)
ViewsData Streams
Attribution: último clic por defectoAttribution: Data-driven por defecto
Pageviews = hitspage_view = evento automático
Sampling en vistasSin 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

TipoQuién lo creaEjemplos
AutomáticosGA4page_view, session_start, first_visit, scroll (90%)
Medición mejoradaGA4 (opcional)click (salidas), view_search_results, file_download, video_start
RecomendadosDev/GTMpurchase, generate_lead, sign_up, add_to_cart
PersonalizadosDev/GTMCualquier 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

ChannelCondición (simplificada)
Organic Searchmedium = organic
Paid Searchmedium = cpc/ppc/paidsearch
Organic Socialmedium = social/social-network + source en lista conocida
Paid Socialmedium = paid-social/social_paid
Directsource = (direct), medium = (none)
Referralmedium = referral
Emailmedium = email
Displaymedium = 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

  1. Reports > Acquisition > Traffic Acquisition
  2. Añadir filtro: Session default channel group = Organic Search
  3. Comparar períodos para detectar variaciones

O con dimensión secundaria "Session source/medium":

  • google / organic = SEO
  • google / cpc = Google Ads
  • (direct) / (none) = Direct (incluye dark social y tráfico no atribuido)

Atribución en GA4

Modelos disponibles (2025)

ModeloDescripciónCuándo usar
Data-drivenMachine learning distribuye el créditoDefault, cuando hay suficiente volumen
Last click100% al último canal antes de conversiónComparativa con UA
First click100% al primer canalAwareness analysis
LinearDistribución igual entre todos los touchpointsSin datos ML
Time decayMás crédito a touchpoints más cercanos a conversión—
Position-based40% 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

  1. Modelo de atribución diferente: GA4 data-driven vs Ads last-click.
  2. Cross-device: GA4 puede atribuir a orgánico si el mismo usuario buscó en móvil sin clic en ad.
  3. Import delay: Las conversiones importadas de GA4 a Ads tienen lag de 24-48h.
  4. Conversiones importadas vs Conversiones de Ads: Ads puede contar smart bidding conversions adicionales.

Métricas de engagement (reemplaza bounce rate)

MétricaDefinición
Engaged sessionsSesiones con ≥1 evento de conversión, ≥2 páginas vistas, O ≥10 segundos de duración
Engagement rateEngaged sessions / Total sessions
Bounce rate (GA4)1 - Engagement rate (inverso)
Average engagement timeTiempo 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

  1. Reports: date picker > "Compare" > Previous period / Previous year.
  2. Explorations: tabla con columnas calculadas para % de variación.
  3. Insights automáticas: GA4 detecta anomalías estadísticas y las reporta en Overview.

Cómo interpretar caídas de tráfico orgánico

  1. Aislar canal: filtrar solo Organic Search.
  2. Separar por país/dispositivo para descartar cambios en audiencia.
  3. 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).
  4. 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).
  5. 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

UpdateQué afectaSeñal típica
Core UpdateRanking general de todo el sitioCaída amplia en múltiples páginas simultáneamente
Helpful Content UpdateContenido creado principalmente para buscadoresCaída en artículos de blog con poco E-E-A-T
Spam UpdateBacklinks manipuladores, cloaking, thin contentCaída brusca + desaparición de keywords
Reviews UpdatePáginas de reseñas y afiliadosCaída en páginas comparativas / de producto
Page ExperienceCore Web Vitals, mobile, HTTPSCaída gradual correlacionada con métricas de velocidad

Protocolo

  1. Identificar la fecha exacta de inicio de la caída en GA4 (usar comparativa día a día)
  2. WebSearch para obtener el calendario actualizado de Google Updates si los datos son recientes
  3. Verificar si hay un update en una ventana de ±7 días respecto al inicio de la caída
  4. Si hay solapamiento → señalarlo como hipótesis a validar, no como causa confirmada
  5. 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:

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íodoIssueMétrica afectada
Mayo 2025 – abril 2026Error 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 2025Datos de AI Mode mezclados con orgánico en tipo "Web". Sin filtro nativo en GSCImpresiones + clics
Después de abril 2026Datos 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)

ConceptoDimensión/Métrica en GA4
Canal de adquisiciónSession default channel group
Fuente/medioSession source/medium
Página de entradaLanding page + query string
DispositivoDevice category
PaísCountry
SesionesSessions
Usuarios activosActive users
Nuevos usuariosNew users
Tasa de engagementEngagement rate
ConversionesConversions
IngresosTotal revenue (e-commerce)

Errores comunes de configuración

ErrorSíntomaSolución
Tráfico de pago en OrganicUTMs incorrectos o ausentes en campañasAuditar UTM builder, verificar en GSC vs GA4
Sesiones infladasUna visita = múltiples sesionesTimeout de sesión ajustado muy bajo (default: 30min)
Self-referralEl propio dominio aparece como fuenteAñadir dominio en GA4 Admin > Data Streams > Configure Tag Settings > List unwanted referrals
Conversiones duplicadasMismo evento marcado como conversión en GTM y en GA4Marcar solo en uno de los dos
Tráfico directo excesivoDark social, email sin UTM, copia-pega de URLNormal hasta ~20-25%; por encima, revisar UTMs de newsletters y social
Datos personales en la URLpage_location con tokens de sesión, enlaces de restablecimiento, correos o contraseñasVer 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). Evitar pageLocation, landingPagePlusQueryString y "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

MethodHow it worksAccuracy
Device IDCookie-based, per browserLow (breaks on browser/device switch)
Google SignalsCross-device from Google accountsMedium (requires consent, < 100% of users)
User IDDeveloper-assigned after loginHigh (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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.