Plan de Tracking · v1.0

NutriFlow — Analytics Tracking Plan

Plan completo de seguimiento: eventos, UTMs, conversiones y compliance RGPD

Herramientas GA4 + GTM + PostHog
Generado 16 Jun 2026
Versión MVP (3 semanas)
Objetivo Free→Pro 8% en 6 meses
Contexto de negocio
Conversión objetivo
8%
Free → Pro en 6 meses
Eventos a implementar
23
MVP tracking plan
Conversiones GA4
6
Marcadas como objetivos
Plazo implementación
3 sem
Dev full-stack in-house
Plan de eventos

Eventos por capa

🌐

Web Marketing (Astro)

GA4 + GTM
Evento Descripción Propiedades Trigger Conversión
page_viewed Vista de página (GA4 enhanced) page_title page_location Automático
cta_clicked Click en cualquier CTA principal button_text location plan Click en .cta-btn
pricing_viewed Scroll a sección de precios page_referrer Intersection Observer
signup_started Clic en "Crear cuenta gratis" source_page plan_intent Click en botón signup
signup_completed Registro completado con éxito method plan source POST /api/auth/register 200 ✓ Conversión
demo_requested Formulario de demo enviado company_size role Form submit #demo-form ✓ Conversión
blog_article_read Artículo leído al 75% de scroll article_slug category read_time_s Scroll depth 75%

App (React SPA) — PostHog + GA4

PostHog GA4
Evento Descripción Propiedades Trigger Conversión
onboarding_step_completed Paso del onboarding completado step_number step_name time_spent_s Progreso onboarding
onboarding_completed Onboarding 100% completado total_time_s skipped_steps Último paso completado ✓ Conversión
patient_created Primer paciente añadido is_first POST /api/patients 201
diet_plan_generated Plan dietético generado con IA patient_id_hashed plan_type POST /api/diet-plans 201
feature_used Feature premium utilizada feature_name plan_type is_first_use Click en feature
paywall_shown Paywall mostrado al usuario Free feature_name user_plan Modal paywall abierto
upgrade_clicked Click en "Mejorar plan" desde paywall source feature_trigger plan_target Click botón upgrade
subscription_started Pago completado con éxito plan billing_period value Webhook Stripe success ✓ Conversión
subscription_cancelled Cancelación de suscripción plan reason months_active Webhook Stripe cancelled
report_exported Informe de paciente exportado format patient_count Click export

Free → Pro Conversion Funnel

Basado en benchmarks SaaS nutrición. Actualizar con datos reales en 30 días.

Visita web
page_viewed
100%
~4.200/mes
Ve precios
pricing_viewed
38%
~1.596/mes
Inicia registro
signup_started
18%
~756/mes
Registro completado
signup_completed
14%
~588/mes
Onboarding OK
onboarding_completed
10%
~420/mes
Ve paywall
paywall_shown
7%
~294/mes
Convierte a Pro
subscription_started
3%
~126/mes
⚠ Objetivo: pasar de 3% a 8% Free→Pro. Gap de +5pp a cubrir con mejoras de onboarding y paywall.

Custom Dimensions GA4

DimensiónScopeParámetro
user_plan User user_plan
account_type User account_type
signup_method User method
feature_name Event feature_name
onboarding_step Event step_name
plan_target Event plan_target

6 Conversion Goals

  • signup_completed — Registro nuevo usuario (1/sesión)
  • demo_requested — Solicitud demo B2B (1/sesión)
  • onboarding_completed — Onboarding 100% (1/usuario)
  • subscription_started — Pago Pro/Clínica (1/sesión)
  • upgrade_clicked — Intención de upgrade (todas)
  • patient_created — Activación (1/usuario)
Implementación técnica

Snippets de implementación

GTM — DataLayer (web)

// CTA click → signup_started document.querySelectorAll('.cta-btn') .forEach(btn => { btn.addEventListener('click', (e) => { window.dataLayer.push({ 'event': 'signup_started', 'button_text': btn.textContent, 'location': btn.dataset.loc, 'plan_intent': btn.dataset.plan }); }); });

PostHog — In-app events

// React hook reutilizable const useTrack = () => { const { user } = useAuth(); return useCallback( (event, props = {}) => { posthog.capture(event, { ...props, user_plan: user?.plan, account_type: user?.type, }); }, [user] ); };

GA4 — Consent Mode v2

// Antes del gtag.js window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push(arguments); } gtag('consent', 'default', { analytics_storage: 'denied', ad_storage: 'denied', wait_for_update: 2000 }); // Cookiebot callback: Cookiebot.onaccept = () => { gtag('consent', 'update', { analytics_storage: 'granted' }); }
Parámetros UTM

Estrategia de UTMs

Convención de nombres

ParámetroFormatoEjemplo
utm_source Nombre plataforma google / meta / brevo / linkedin
utm_medium Tipo de canal cpc / email / social / organic
utm_campaign nombre_campana_mes nutricionistas_pro_jun26
utm_content variante_ubicacion hero_cta_v2 / blog_footer
utm_term Solo paid search software+nutricionista

URLs de ejemplo

Email Newsletter → Blog
nutriflow.app/blog/dietas-veganas?utm_source=brevo&utm_medium=email&utm_campaign=newsletter_jun26&utm_content=blog_vegano
Google Ads → Pricing
nutriflow.app/precios?utm_source=google&utm_medium=cpc&utm_campaign=nutricionistas_pro_jun26&utm_content=search_exact&utm_term=software+nutricionista
Meta Ads → Home
nutriflow.app/?utm_source=meta&utm_medium=social&utm_campaign=awareness_nutricionistas&utm_content=video_testimonio_v1
Compliance RGPD

Privacidad y compliance

🍪
Consent Mode v2
GA4 respeta elección de usuario antes de recopilar
🔒
Sin PII en eventos
IDs de paciente hasheados con SHA-256
🌍
IP Anonymization
GA4 anonimiza IP por defecto (GA4 ya cumple)
📅
Retención 14 meses
Ajustar en GA4 Admin → Data Retention
Cookiebot ya integrado — Solo falta conectar el callback de Cookiebot.onaccept con gtag('consent','update'). PostHog en modo opt-out por defecto para usuarios EU. Ver snippet arriba.

Plan de implementación

Semana 1 · 16-20 Jun
Infraestructura base
Crear contenedor GTM, conectar GA4, activar enhanced measurement, implementar Consent Mode v2, configurar DataLayer en Astro.
Semana 2 · 23-27 Jun
Eventos web + conversiones
Implementar 7 eventos web, marcar 6 conversiones en GA4, crear dimensiones custom, validar con GTM Preview + DebugView.
Semana 3 · 30 Jun-4 Jul
PostHog in-app + UTMs
Integrar PostHog en React SPA, implementar hook useTrack(), configurar UTMs en todas las campañas activas, crear dashboard en PostHog con funnel Free→Pro.

Checklist de QA pre-launch

  • Plan de eventos documentado y aprobado
  • Naming convention definida (object_action)
  • !
    GTM publicado en staging — pendiente
  • Eventos firing en GA4 DebugView
  • Propiedades de evento correctas (sin nulos)
  • Sin eventos duplicados en sesión de test
  • Conversiones registradas correctamente
  • Test en Chrome + Safari + móvil
  • Consent Mode: sin datos antes de aceptar
  • Verificar 0 PII en eventos (email, nombre)
  • UTMs rastreados en GA4 → Traffic Acquisition
  • PostHog funnel Free→Pro configrado