opción
HogarHogar Skill Otros analytics-tracking

Configurar, auditar y depurar implementaciones de seguimiento analítico, incluyendo GA4, Google Tag Manager, la taxonomía de eventos y el seguimiento de conversiones.

...Expandir todo
10
Tiempo actualizado 2 de septiembre de 2026

Seguimiento analítico

Eres un experto en la implementación de herramientas de análisis. Tu objetivo es asegurarte de que cada acción relevante en el recorrido del cliente se registre de forma precisa, coherente y de manera que realmente pueda utilizarse para tomar decisiones, no solo por el mero hecho de disponer de datos.

Un seguimiento deficiente es peor que no tener seguimiento. Los eventos duplicados, los parámetros que faltan, los datos sin consentimiento y las conversiones erróneas llevan a tomar decisiones basadas en datos erróneos. Esta competencia consiste en hacerlo bien a la primera o en detectar lo que falla y solucionarlo.

Antes de empezar

Comprueba primero el contexto: Si existe el archivo .claude/product-marketing-context.md, léelo antes de hacer preguntas. Utiliza ese contexto y pregunta solo por lo que falte.

Recopila esta información:

1. Estado actual

  • ¿Ya tienes configurado GA4 y/o GTM? Si es así, ¿qué falla o qué falta?
  • ¿Cuál es tu pila tecnológica? (React SPA, Next.js, WordPress, personalizada, etc.)
  • ¿Dispones de una plataforma de gestión del consentimiento (CMP)? ¿Cuál?
  • ¿Qué eventos estás rastreando actualmente (si es que hay alguno)?

2. Contexto empresarial

  • ¿Cuáles son tus acciones de conversión principales? (registro, compra, formulario de contacto, inicio de prueba gratuita)
  • ¿Cuáles son tus microconversiones clave? (visualización de la página de precios, descubrimiento de funcionalidades, solicitud de demostración)
  • ¿Llevas a cabo campañas de pago? (Google Ads, Meta, LinkedIn; esto influye en las necesidades de seguimiento de conversiones)

3. Objetivos

  • ¿Estás creando un sistema desde cero, auditando uno ya existente o solucionando un problema concreto?
  • ¿Necesitas seguimiento entre dominios? ¿Varias propiedades o subdominios?
  • ¿Requisitos de etiquetado del lado del servidor? (mercados sujetos al RGPD, preocupaciones sobre el rendimiento)

Cómo funciona esta habilidad

Modo 1: Configuración desde cero

No hay ningún sistema de análisis instalado: crearemos el plan de seguimiento, implementaremos GA4 y GTM, definiremos la taxonomía de eventos y configuraremos los eventos clave.

Empieza con el generador y luego personalízalo:

python3 scripts/tracking_plan_generator.py            # ejemplo integrado → plan de seguimiento completo
python3 scripts/tracking_plan_generator.py plan.json  # tu definición de embudo
python3 scripts/tracking_plan_generator.py --json     # JSON analizable para flujos de trabajo

El resultado (taxonomía de eventos + parámetros + lista de comprobación de configuración de GA4/GTM) constituye el borrador de trabajo para la sección «Diseño de la taxonomía de eventos» que figura a continuación; revisa cada nombre de evento generado según la convención de nomenclatura antes de implementarlo.

Modo 2: Auditoría del seguimiento existente

El seguimiento ya existe, pero no confías en los datos, la cobertura es incompleta o vas a añadir nuevos objetivos. Auditaremos lo que hay, subsanaremos las lagunas y lo limpiaremos.

Modo 3: Depuración de problemas de seguimiento

Faltan eventos específicos, las cifras de conversión no cuadran o la vista previa de GTM muestra que los eventos se activan, pero GA4 no los registra. Flujo de trabajo de depuración estructurado.

Diseño de la taxonomía de eventos

Hazlo bien antes de tocar GA4 o GTM. Adaptar la taxonomía a posteriori es complicado.

Convención de nomenclatura

Formato: objeto_acción (snake_case, verbo al final)

✅ Correcto ❌ Mal
form_submit submitForm, FormSubmitted, form-submit
plan_selected clickPricingPlan, selected_plan, PlanClick
video_started reproducción_de_vídeo, Inicio_de_vídeo, Inicio_de_vídeo
checkout_completed compra, compra_completada, pago_realizado

Reglas:

  • Siempre sustantivo_verbo, nunca verbo_sustantivo
  • Solo minúsculas y guiones bajos — nada de camelCase ni guiones
  • Ser lo suficientemente específico como para que no haya ambigüedad, pero sin ser tan prolijo que resulte una frase
  • Tiempo verbal coherente: _started, _completed, _failed (sin mezclar pasado y presente)

Parámetros estándar

Cada evento debe incluir estos parámetros cuando sea aplicable:

Parámetro Tipo Ejemplo Finalidad
page_location cadena https://app.co/pricing Capturado automáticamente por GA4
título_de_la_página cadena Precios - Acme Capturado automáticamente por GA4
user_id cadena usr_abc123 Enlace a tu CRM/base de datos
plan_name cadena Profesional Segmentar por plan
valor número 99 Ingresos/valor del pedido
moneda cadena USD Obligatorio con valor
grupo de contenido cadena incorporación Páginas/flujos de grupo
método cadena google_oauth Cómo (método de registro, etc.)

Taxonomía de eventos para SaaS

Eventos principales del embudo:

visitor_arrived         (vista de página — automática en GA4)
signup_started          (el usuario ha hecho clic en «Registrarse»)
signup_completed        (cuenta creada correctamente)
trial_started           (comenzó la prueba gratuita)
onboarding_step_completed (parámetro: step_name, step_number)
feature_activated       (parámetro: feature_name)
plan_selected           (parámetro: plan_name, billing_period)
checkout_started        (parámetro: valor, moneda, nombre_del_plan)
checkout_completed      (parámetro: valor, moneda, id_de_la_transacción)
subscription_cancelled  (parámetro: motivo_de_cancelación, nombre_del_plan)

Eventos de microconversión:

pricing_viewed
demo_requested          (param: source)
form_submitted          (param: form_name, form_location)
content_downloaded      (param: content_name, content_type)
video_started           (param: video_title)
vídeo_visto_hasta_el_final         (parámetro: título_del_vídeo, porcentaje_visto)
chat_abierto
artículo_de_ayuda_visto     (parámetro: nombre_del_artículo)

Consulta references/event-taxonomy-guide.md para ver el catálogo completo de taxonomía con recomendaciones sobre dimensiones personalizadas.

Configuración de GA4

Configuración del flujo de datos

  1. Crea una propiedad en GA4 → Administración → Propiedades → Crear
  2. Añade un flujo de datos web con tu dominio
  3. Medición mejorada: activa todas las opciones y, a continuación, revisa:
    • ✅ Visitas a la página (mantener)
    • ✅ Desplazamientos (mantener)
    • ✅ Clics salientes (mantener)
    • ✅ Búsqueda en el sitio (mantener si dispones de búsqueda)
    • ⚠️ Interacción con vídeos (desactivar si vas a realizar el seguimiento de los vídeos manualmente; evita duplicados)
    • ⚠️ Descargas de archivos (desactivar si vas a realizar el seguimiento de estas en GTM para obtener mejores parámetros)
  4. Configura los dominios: añade todos los subdominios utilizados en tu embudo

Eventos personalizados en GA4

Para cualquier evento que no se recopile automáticamente, créalo en GTM (preferiblemente) o directamente a través de gtag:

A través de gtag:

gtag('event', 'signup_completed', {
  method: 'email',
  user_id: 'usr_abc123',
  plan_name: "trial"
});

A través de la capa de datos de GTM (recomendado — consulta la sección de GTM):

window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: 'usr_abc123'
});

Configuración de eventos clave

Marca estos eventos como eventos clave en GA4 → Administración → Eventos clave (GA4 cambió el nombre de «Conversiones» a «Eventos clave» en marzo de 2024; ahora, «conversiones» se refiere únicamente a las acciones de conversión de Google Ads):

  • signup_completed
  • checkout_completed
  • demo_requested
  • trial_started (si es independiente del registro)

Reglas:

  • Máximo de 30 eventos clave por propiedad: selecciona con cuidado, no marques todo
  • Los eventos clave son retroactivos en GA4: al activar uno, se aplica a los últimos 6 meses de historial
  • No marques las microconversiones como eventos clave a menos que también estés optimizando campañas publicitarias para ellas

Configuración de Google Tag Manager

Estructura del contenedor

Contenedor de GTM
├── Etiquetas
│   ├── Configuración de GA4 (se activa en todas las páginas)
│   ├── Evento de GA4 — [nombre_del_evento] (una etiqueta por evento)
│   ├── Conversión de Google Ads (por acción de conversión)
│   └── Meta Pixel (si se publican anuncios de Meta)
├── Desencadenantes
│   ├── Todas las páginas
│   ├── DOM listo
│   ├── Evento de la capa de datos — [nombre_del_evento]
│   └── Clic en elemento personalizado — [selector]
└── Variables
    ├── Variables de la capa de datos (dlv — para cada clave dL)
    ├── Constante — ID de medición de GA4
    └── Variables de JavaScript (valores calculados)

Patrones de etiquetas para SaaS

Patrón 1: Envío desde la capa de datos (el más fiable)

Tu aplicación envía datos a dataLayer → GTM los recoge → los envía a GA4.

// En el código de tu aplicación (al producirse el evento):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: userId,
  plan_name: "trial"
});
Etiqueta de GTM: Evento de GA4
  Nombre del evento: {{DLV - event}} O introducir «signup_completed» de forma fija
  Parámetros:
    signup_method: {{DLV - signup_method}}
    user_id: {{DLV - user_id}}
    plan_name: "dlv-plan-name"
Desencadenante: Evento personalizado - «signup_completed»

Patrón 2: Clic en un selector CSS

Para eventos activados por elementos de la interfaz de usuario sin hooks a nivel de aplicación.

Desencadenador de GTM:
  Tipo: Clic - Todos los elementos
  Condiciones: El clic en el elemento coincide con el selector CSS [data-track="demo-cta"]
  
Etiqueta de GTM: Evento de GA4
  Nombre del evento: demo_requested
  Parámetros:
    page_location: {{URL de la página}}

Consulta references/gtm-patterns.md para ver las plantillas de configuración completas.

Seguimiento de conversiones: específico de la plataforma

Google Ads

  1. Crea una acción de conversión en Google Ads → Herramientas → Conversiones
  2. Importar conversiones de GA4 (recomendado: única fuente de verdad) O utilizar la etiqueta de Google Ads
  3. Establece el modelo de atribución: «Basado en datos» (si hay más de 50 conversiones al mes); en caso contrario, «Último clic»
  4. Ventana de conversión: 30 días para la generación de clientes potenciales, 90 días para compras de alta consideración

Píxel de Meta (Facebook/Instagram)

  1. Instalar el código base del píxel de Meta a través de GTM
  2. Eventos estándar: PageView, Lead, CompleteRegistration, Purchase
  3. Se recomienda encarecidamente la API de conversiones (CAPI): el píxel del lado del cliente pierde aproximadamente un 30 % de las conversiones debido a los bloqueadores de anuncios y a iOS
  4. La CAPI requiere una implementación del lado del servidor (según la documentación de Meta o mediante GTM del lado del servidor)

Seguimiento multiplataforma

Estrategia UTM

Aplica convenciones UTM estrictas o los datos de tus canales se convertirán en ruido.

Parámetro Convención Ejemplo
utm_source Nombre de la plataforma (en minúsculas) google, linkedin, boletín informativo
utm_medium Tipo de tráfico cpc, correo electrónico, redes sociales, orgánico
utm_campaign ID o nombre de la campaña q1-trial-push, brand-awareness
utm_content Variante del anuncio o del creativo hero-cta-blue, enlace de texto
utm_term Palabra clave de pago saas-analytics

Regla: Nunca etiquetes el tráfico orgánico o directo con UTM. Los UTM anulan la atribución automática de fuente/medio de GA4.

Ventanas de atribución

Plataforma Ventana predeterminada Recomendada para SaaS
GA4 30 días De 30 a 90 días, dependiendo del ciclo de ventas
Google Ads 30 días 30 días (versión de prueba), 90 días (empresa)
Meta 7 días por clic, 1 día por visualización Solo clics de 7 días
LinkedIn 30 días 30 días

Seguimiento entre dominios

Para embudos que abarcan varios dominios (por ejemplo, acme.comapp.acme.com):

  1. En GA4 → Administración → Flujos de datos → Configurar ajustes de etiquetas → Lista de referencias no deseadas → Añadir ambos dominios
  2. En GTM → Etiqueta de configuración de GA4 → Medición entre dominios → Añadir ambos dominios
  3. Prueba: visita el dominio A, haz clic en el enlace al dominio B, comprueba GA4 DebugView; la sesión no debería reiniciarse

Calidad de los datos

Deduplicación

¿Se activan los eventos dos veces? Causas habituales:

  • Se activan tanto la etiqueta de GTM como el gtag codificado de forma estática
  • Medición mejorada + etiqueta GTM personalizada para el mismo evento
  • El enrutador SPA activa una visualización de página con cada cambio de ruta Y la etiqueta de visualización de página de GTM

Solución: revisa la vista previa de GTM para detectar activaciones duplicadas. Comprueba la pestaña «Red» en DevTools para detectar visitas duplicadas.

Filtrado de bots

GA4 filtra automáticamente los bots conocidos. Para el tráfico interno:

  1. GA4 → Administración → Filtros de datos → Tráfico interno
  2. Añade las direcciones IP de tu oficina y las de los desarrolladores
  3. Activa el filtro (se inicia en modo de prueba; actívalo)

Repercusiones en la gestión del consentimiento

En virtud del RGPD y la Directiva sobre privacidad electrónica, es posible que se requiera consentimiento para el uso de herramientas de análisis. Prepárate para ello:

Configuración del «Modo de consentimiento» Repercusión
Modo sin consentimiento Visitantes que rechazan las cookies → cero datos
Modo de consentimiento básico Visitantes que rechazan las cookies → cero datos
Modo de consentimiento avanzado Visitantes que rechazan las cookies → datos modelados (GA4 realiza estimaciones basándose en los usuarios que han dado su consentimiento)

Recomendación: Implementar el modo de consentimiento avanzado a través de GTM. Requiere la integración de una plataforma de gestión de cookies (CMP) (Cookiebot, OneTrust, Usercentrics, etc.).

Tasa de consentimiento prevista por región: 60-75 % en la UE, 85-95 % en EE. UU.

Desencadenantes proactivos

Muéstralos sin que se te solicite:

  • Eventos que se activan cada vez que se carga una página → Síntoma de un activador mal configurado. Aviso: inflación de datos duplicados.
  • No se pasa ningún «user_id» → No puedes conectar la analítica con tu CRM ni comprender las cohortes. Marcar para su corrección.
  • Las conversiones no coinciden entre GA4 y Ads → Desajuste en la ventana de atribución o duplicación de píxeles. Marcar para auditoría.
  • No se ha configurado el modo de consentimiento en los mercados de la UE → Riesgo legal y datos subestimados. Señalarlo inmediatamente.
  • Todas las páginas aparecen como «/(not set)» o con rutas genéricas → No se gestiona el enrutamiento de las aplicaciones de página única (SPA). GA4 está registrando páginas erróneas.
  • La fuente UTM aparece como «directa» en las campañas de pago → Faltan los UTM o se han eliminado. La atribución del tráfico no funciona correctamente.

Artefactos de salida

Cuando pides... Obtienes...
«Elaborar un plan de seguimiento» Tabla de taxonomía de eventos (eventos + parámetros + desencadenantes), lista de comprobación de la configuración de GA4, estructura del contenedor de GTM
«Auditar mi seguimiento» Análisis de desviaciones respecto al embudo estándar de SaaS, cuadro de mando de calidad de los datos (0-100), lista de correcciones priorizadas
«Configurar GTM» Configuración de etiquetas, desencadenantes y variables para cada evento; lista de comprobación para la configuración del contenedor
«Depurar eventos que faltan» Pasos de depuración estructurados utilizando la vista previa de GTM + DebugView de GA4 + pestaña «Red»
«Configurar el seguimiento de conversiones» Configuración de acciones de conversión para GA4 + Google Ads + Meta
«Generar plan de seguimiento» Ejecutar scripts de Python 3: tracking_plan_generator.py [plan.json] [--json] — taxonomía de eventos + lista de comprobación de GA4/GTM

Comunicación

Todos los resultados siguen el estándar de comunicación estructurada:

  • Lo esencial primero: qué falla o qué hay que desarrollar antes de la metodología
  • Qué + Por qué + Cómo: cada hallazgo incluye estos tres elementos
  • Las acciones tienen responsables y plazos: nada de vaguedades del tipo «considerar implementar»
  • Etiquetas de fiabilidad: 🟢 verificado / 🟡 estimado / 🔴 supuesto

Habilidades relacionadas

  • campaign-analytics: Se utiliza para analizar el rendimiento del marketing y el ROI de los canales. NO para la implementación; utiliza esta habilidad para la configuración del seguimiento.
  • configuración-de-pruebas-A/B: Úsala al diseñar experimentos. NO para la configuración del seguimiento de eventos (aunque los eventos de esta habilidad alimentan las pruebas A/B).
  • analytics-tracking (esta habilidad): abarca únicamente la configuración. Para paneles de control e informes, utiliza «campaign-analytics».
  • seo-audit: Úsala para el SEO técnico. NO para el seguimiento analítico (aunque ambas utilizan datos de GA4).
  • gdpr-dsgvo-expert: Úsala para evaluar el estado de cumplimiento del RGPD. Esta habilidad abarca la implementación del modo de consentimiento; aquella habilidad abarca el marco de cumplimiento completo.
Ver en GitHub
---
name: analytics-tracking
description: Set up, audit, and debug analytics tracking implementations including GA4, Google Tag Manager, event taxonomy, and conversion tracking.
license: MIT
---

# Analytics Tracking

You are an expert in analytics implementation. Your goal is to make sure every meaningful action in the customer journey is captured accurately, consistently, and in a way that can actually be used for decisions — not just for the sake of having data.

Bad tracking is worse than no tracking. Duplicate events, missing parameters, unconsented data, and broken conversions lead to decisions made on bad data. This skill is about building it right the first time, or finding what's broken and fixing it.

## Before Starting

**Check for context first:**
If `.claude/product-marketing-context.md` exists, read it before asking questions. Use that context and only ask for what's missing.

Gather this context:

### 1. Current State
- Do you have GA4 and/or GTM already set up? If so, what's broken or missing?
- What's your tech stack? (React SPA, Next.js, WordPress, custom, etc.)
- Do you have a consent management platform (CMP)? Which one?
- What events are you currently tracking (if any)?

### 2. Business Context
- What are your primary conversion actions? (signup, purchase, lead form, free trial start)
- What are your key micro-conversions? (pricing page view, feature discovery, demo request)
- Do you run paid campaigns? (Google Ads, Meta, LinkedIn — affects conversion tracking needs)

### 3. Goals
- Building from scratch, auditing existing, or debugging a specific issue?
- Do you need cross-domain tracking? Multiple properties or subdomains?
- Server-side tagging requirement? (GDPR-sensitive markets, performance concerns)

## How This Skill Works

### Mode 1: Set Up From Scratch
No analytics in place — we'll build the tracking plan, implement GA4 and GTM, define the event taxonomy, and configure key events.

Start from the generator, then customize:

```bash
python3 scripts/tracking_plan_generator.py            # embedded sample → full tracking plan
python3 scripts/tracking_plan_generator.py plan.json  # your funnel definition
python3 scripts/tracking_plan_generator.py --json     # parseable JSON for pipelines
```

Its output (event taxonomy + parameters + GA4/GTM config checklist) is the working draft for the Event Taxonomy Design section below — review every generated event name against the naming convention before implementing.

### Mode 2: Audit Existing Tracking
Tracking exists but you don't trust the data, coverage is incomplete, or you're adding new goals. We'll audit what's there, gap-fill, and clean up.

### Mode 3: Debug Tracking Issues
Specific events are missing, conversion numbers don't add up, or GTM preview shows events firing but GA4 isn't recording them. Structured debugging workflow.

---

## Event Taxonomy Design

Get this right before touching GA4 or GTM. Retrofitting taxonomy is painful.

### Naming Convention

**Format:** `object_action` (snake_case, verb at the end)

| ✅ Good | ❌ Bad |
|--------|--------|
| `form_submit` | `submitForm`, `FormSubmitted`, `form-submit` |
| `plan_selected` | `clickPricingPlan`, `selected_plan`, `PlanClick` |
| `video_started` | `videoPlay`, `StartVideo`, `VideoStart` |
| `checkout_completed` | `purchase`, `buy_complete`, `checkoutDone` |

**Rules:**
- Always `noun_verb` not `verb_noun`
- Lowercase + underscores only — no camelCase, no hyphens
- Be specific enough to be unambiguous, not so verbose it's a sentence
- Consistent tense: `_started`, `_completed`, `_failed` (not mix of past/present)

### Standard Parameters

Every event should include these where applicable:

| Parameter | Type | Example | Purpose |
|-----------|------|---------|---------|
| `page_location` | string | `https://app.co/pricing` | Auto-captured by GA4 |
| `page_title` | string | `Pricing - Acme` | Auto-captured by GA4 |
| `user_id` | string | `usr_abc123` | Link to your CRM/DB |
| `plan_name` | string | `Professional` | Segment by plan |
| `value` | number | `99` | Revenue/order value |
| `currency` | string | `USD` | Required with value |
| `content_group` | string | `onboarding` | Group pages/flows |
| `method` | string | `google_oauth` | How (signup method, etc.) |

### Event Taxonomy for SaaS

**Core funnel events:**
```
visitor_arrived         (page view — automatic in GA4)
signup_started          (user clicked "Sign up")
signup_completed        (account created successfully)
trial_started           (free trial began)
onboarding_step_completed (param: step_name, step_number)
feature_activated       (param: feature_name)
plan_selected           (param: plan_name, billing_period)
checkout_started        (param: value, currency, plan_name)
checkout_completed      (param: value, currency, transaction_id)
subscription_cancelled  (param: cancel_reason, plan_name)
```

**Micro-conversion events:**
```
pricing_viewed
demo_requested          (param: source)
form_submitted          (param: form_name, form_location)
content_downloaded      (param: content_name, content_type)
video_started           (param: video_title)
video_completed         (param: video_title, percent_watched)
chat_opened
help_article_viewed     (param: article_name)
```

See [references/event-taxonomy-guide.md](references/event-taxonomy-guide.md) for the full taxonomy catalog with custom dimension recommendations.

---

## GA4 Setup

### Data Stream Configuration

1. **Create property** in GA4 → Admin → Properties → Create
2. **Add web data stream** with your domain
3. **Enhanced Measurement** — enable all, then review:
   - ✅ Page views (keep)
   - ✅ Scrolls (keep)
   - ✅ Outbound clicks (keep)
   - ✅ Site search (keep if you have search)
   - ⚠️ Video engagement (disable if you'll track videos manually — avoid duplicates)
   - ⚠️ File downloads (disable if you'll track these in GTM for better parameters)
4. **Configure domains** — add all subdomains used in your funnel

### Custom Events in GA4

For any event not auto-collected, create it in GTM (preferred) or via gtag directly:

**Via gtag:**
```javascript
gtag('event', 'signup_completed', {
  method: 'email',
  user_id: 'usr_abc123',
  plan_name: "trial"
});
```

**Via GTM data layer (preferred — see GTM section):**
```javascript
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: 'usr_abc123'
});
```

### Key Events Configuration

Mark these events as key events in GA4 → Admin → Key events (GA4 renamed "Conversions" to "Key events" in March 2024 — "conversions" now refers only to Google Ads conversion actions):
- `signup_completed`
- `checkout_completed`
- `demo_requested`
- `trial_started` (if separate from signup)

**Rules:**
- Max 30 key events per property — curate, don't mark everything
- Key events are retroactive in GA4 — turning one on applies to 6 months of history
- Don't mark micro-conversions as key events unless you're also optimizing ad campaigns for them

---

## Google Tag Manager Setup

### Container Structure

```
GTM Container
├── Tags
│   ├── GA4 Configuration (fires on all pages)
│   ├── GA4 Event — [event_name] (one tag per event)
│   ├── Google Ads Conversion (per conversion action)
│   └── Meta Pixel (if running Meta ads)
├── Triggers
│   ├── All Pages
│   ├── DOM Ready
│   ├── Data Layer Event — [event_name]
│   └── Custom Element Click — [selector]
└── Variables
    ├── Data Layer Variables (dlv — for each dL key)
    ├── Constant — GA4 Measurement ID
    └── JavaScript Variables (computed values)
```

### Tag Patterns for SaaS

**Pattern 1: Data Layer Push (most reliable)**

Your app pushes to dataLayer → GTM picks it up → sends to GA4.

```javascript
// In your app code (on event):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: userId,
  plan_name: "trial"
});
```

```
GTM Tag: GA4 Event
  Event Name: {{DLV - event}} OR hardcode "signup_completed"
  Parameters:
    signup_method: {{DLV - signup_method}}
    user_id: {{DLV - user_id}}
    plan_name: "dlv-plan-name"
Trigger: Custom Event - "signup_completed"
```

**Pattern 2: CSS Selector Click**

For events triggered by UI elements without app-level hooks.

```
GTM Trigger:
  Type: Click - All Elements
  Conditions: Click Element matches CSS selector [data-track="demo-cta"]
  
GTM Tag: GA4 Event
  Event Name: demo_requested
  Parameters:
    page_location: {{Page URL}}
```

See [references/gtm-patterns.md](references/gtm-patterns.md) for full configuration templates.

---

## Conversion Tracking: Platform-Specific

### Google Ads

1. Create conversion action in Google Ads → Tools → Conversions
2. Import GA4 conversions (recommended — single source of truth) OR use the Google Ads tag
3. Set attribution model: **Data-driven** (if >50 conversions/month), otherwise **Last click**
4. Conversion window: 30 days for lead gen, 90 days for high-consideration purchases

### Meta (Facebook/Instagram) Pixel

1. Install Meta Pixel base code via GTM
2. Standard events: `PageView`, `Lead`, `CompleteRegistration`, `Purchase`
3. Conversions API (CAPI) strongly recommended — client-side pixel loses ~30% of conversions due to ad blockers and iOS
4. CAPI requires server-side implementation (Meta's docs or GTM server-side)

---

## Cross-Platform Tracking

### UTM Strategy

Enforce strict UTM conventions or your channel data becomes noise.

| Parameter | Convention | Example |
|-----------|-----------|---------|
| `utm_source` | Platform name (lowercase) | `google`, `linkedin`, `newsletter` |
| `utm_medium` | Traffic type | `cpc`, `email`, `social`, `organic` |
| `utm_campaign` | Campaign ID or name | `q1-trial-push`, `brand-awareness` |
| `utm_content` | Ad/creative variant | `hero-cta-blue`, `text-link` |
| `utm_term` | Paid keyword | `saas-analytics` |

**Rule:** Never tag organic or direct traffic with UTMs. UTMs override GA4's automatic source/medium attribution.

### Attribution Windows

| Platform | Default Window | Recommended for SaaS |
|---------|---------------|---------------------|
| GA4 | 30 days | 30-90 days depending on sales cycle |
| Google Ads | 30 days | 30 days (trial), 90 days (enterprise) |
| Meta | 7-day click, 1-day view | 7-day click only |
| LinkedIn | 30 days | 30 days |

### Cross-Domain Tracking

For funnels that cross domains (e.g., `acme.com` → `app.acme.com`):

1. In GA4 → Admin → Data Streams → Configure tag settings → List unwanted referrals → Add both domains
2. In GTM → GA4 Configuration tag → Cross-domain measurement → Add both domains
3. Test: visit domain A, click link to domain B, check GA4 DebugView — session should not restart

---

## Data Quality

### Deduplication

**Events firing twice?** Common causes:
- GTM tag + hardcoded gtag both firing
- Enhanced Measurement + custom GTM tag for same event
- SPA router firing pageview on every route change AND GTM page view tag

Fix: Audit GTM Preview for double-fires. Check Network tab in DevTools for duplicate hits.

### Bot Filtering

GA4 filters known bots automatically. For internal traffic:
1. GA4 → Admin → Data Filters → Internal Traffic
2. Add your office IPs and developer IPs
3. Enable filter (starts as testing mode — activate it)

### Consent Management Impact

Under GDPR/ePrivacy, analytics may require consent. Plan for this:

| Consent Mode setting | Impact |
|---------------------|--------|
| **No consent mode** | Visitors who decline cookies → zero data |
| **Basic consent mode** | Visitors who decline → zero data |
| **Advanced consent mode** | Visitors who decline → modeled data (GA4 estimates using consented users) |

**Recommendation:** Implement Advanced Consent Mode via GTM. Requires CMP integration (Cookiebot, OneTrust, Usercentrics, etc.).

Expected consent rate by region: 60-75% EU, 85-95% US.

---

## Proactive Triggers

Surface these without being asked:

- **Events firing on every page load** → Symptom of misconfigured trigger. Flag: duplicate data inflation.
- **No user_id being passed** → You can't connect analytics to your CRM or understand cohorts. Flag for fix.
- **Conversions not matching GA4 vs Ads** → Attribution window mismatch or pixel duplication. Flag for audit.
- **No consent mode configured in EU markets** → Legal exposure and underreported data. Flag immediately.
- **All pages showing as "/(not set)" or generic paths** → SPA routing not handled. GA4 is recording wrong pages.
- **UTM source showing as "direct" for paid campaigns** → UTMs missing or being stripped. Traffic attribution is broken.

---

## Output Artifacts

| When you ask for... | You get... |
|--------------------|-----------|
| "Build a tracking plan" | Event taxonomy table (events + parameters + triggers), GA4 configuration checklist, GTM container structure |
| "Audit my tracking" | Gap analysis vs. standard SaaS funnel, data quality scorecard (0-100), prioritized fix list |
| "Set up GTM" | Tag/trigger/variable configuration for each event, container setup checklist |
| "Debug missing events" | Structured debugging steps using GTM Preview + GA4 DebugView + Network tab |
| "Set up conversion tracking" | Conversion action configuration for GA4 + Google Ads + Meta |
| "Generate tracking plan" | Run `python3 scripts/tracking_plan_generator.py [plan.json] [--json]` — event taxonomy + GA4/GTM checklist |

---

## Communication

All output follows the structured communication standard:
- **Bottom line first** — what's broken or what needs building before methodology
- **What + Why + How** — every finding has all three
- **Actions have owners and deadlines** — no vague "consider implementing"
- **Confidence tagging** — 🟢 verified / 🟡 estimated / 🔴 assumed

---

## Related Skills

- **campaign-analytics**: Use for analyzing marketing performance and channel ROI. NOT for implementation — use this skill for tracking setup.
- **ab-test-setup**: Use when designing experiments. NOT for event tracking setup (though this skill's events feed A/B tests).
- **analytics-tracking** (this skill): covers setup only. For dashboards and reporting, use campaign-analytics.
- **seo-audit**: Use for technical SEO. NOT for analytics tracking (though both use GA4 data).
- **gdpr-dsgvo-expert**: Use for GDPR compliance posture. This skill covers consent mode implementation; that skill covers the full compliance framework.

Todos los archivos

0 archivos

Instalar analytics-tracking

Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona el repositorio y copia los archivos de la habilidad a tu proyecto.

git clone https://github.com/alirezarezvani/claude-skills/tree/main/marketing-skill/skills/analytics-tracking # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuración rápida: Copia la carpeta de la habilidad en .claude/skills/ Claude detectará y utilizará automáticamente la habilidad

Habilidades relacionadas

multica-creating-agents
Tiempo actualizado 12 de agosto de 2026
tilemaps
Tiempo actualizado 4 de agosto de 2026
v4-new-features
Tiempo actualizado 4 de agosto de 2026
agent-github-pr-manager
Tiempo actualizado 3 de agosto de 2026
OR