Setup técnico
5 pasos para tener GA4 en vivo
El setup técnico de GA4 es el más prolijo de los 4 que vamos a ver — Google es muy estricto con permisos. Pero una vez configurado, es el más estable.
Google Cloud ConsoleIAM & AdminJSON key file
Andás a Google Cloud Console → IAM & Admin → Service Accounts → Create. Le ponés un nombre (ej: edh-ga4@tu-proyecto). Click en la cuenta → Keys → Add key → JSON. Te descarga un archivo. Ese archivo es tu credencial — guardalo seguro, nunca commitealo a un repo.
Pro tip
El email de la service account (algo tipo edh-ga4@tu-proyecto.iam.gserviceaccount.com) es lo que después invitás a la propiedad GA4. Anotálo.
GA4 → AdminProperty Access ManagementRole: Viewer
GA4 → ⚙️ Admin → Property → Property Access Management → +. Pegás el email de la service account. Le das rol Viewer (suficiente para leer datos). Desmarcá notificar por email — es service account, no recibe emails.
Qué se desbloquea
Ya podés ejecutar queries de la GA4 Data API desde tu código usando esa service account. Authentication: hecho.
Property ID = numérico (12345)Measurement ID = G-XXXXXXEl numérico es el que usa la API
Este es el error más común. El Measurement ID (formato G-XXXXXXXX) es lo que va en el código del sitio (script de gtag). El Property ID (numérico, ej: 536083124) es lo que necesitás para hacer queries en la Data API. Si los confundís, los reportes vuelven vacíos sin error claro y no entendés por qué.
Dónde encontrarlo
GA4 → Admin → Property Settings → arriba de todo aparece como 'Property ID'. Copialo y guardalo en tu config.
runReportmetrics: sessions, ecommercePurchasesdimensions: date, sessionDefaultChannelGroup
La query más útil al principio: sessions y compras (ecommercePurchases) por día y por canal. Con esas dos métricas reconstruís el CR (purchases / sessions). Lo importante: nunca promediar el CR. Si querés CR mensual = total_compras_mes / total_sessions_mes. Promediar CRs diarios miente — un día con 1 sesión y 1 venta da CR 100%, lo cual destruye el promedio.
El error del "promedio del promedio": aplicá esta regla a TODAS las métricas que son ratios — ROAS, CPC, ticket promedio, % cierre carritos. NO promediar valores diarios. Reconstruir cada métrica como numerador_total / denominador_total. Esto vale para reportes mensuales, anuales, y cualquier agregado. Sin esta disciplina, los números mienten en sutil.
Decisión típica
Si CR cae >20% día a día, hay alerta. Primer paso: ¿bajó el tráfico (sessions) o la conversión (purchases)? La respuesta cambia todo el diagnóstico.
Admin → Custom definitionsEventos clave (antes Conversions)Audiencias para análisis
Las custom dimensions te dejan filtrar por cosas que TÚ definís. En EDH usamos una llamada resource que captura qué guía/landing pidió el lead — eso permite ver "qué recurso convierte mejor" sin reportes ad-hoc. En Wayfarer usamos otras para segmentar campaña interna, modelo del producto, etc.
Cómo crear una custom dimension: Admin → Custom definitions → Create custom dimension. Le ponés Nombre (lo que ves en reportes), Scope (Event para parámetros de evento, User para datos del usuario), y Parámetro (el nombre técnico que el evento envía). Una vez creada, GA4 tarda 24hs en empezar a procesar — y solo se "despierta" cuando se dispara al menos un evento real con ese parámetro.
Eventos Clave (antes "Conversions"): Admin → Key Events → Mark as key event. Cualquier evento custom que dispares puede marcarse así. En el sitio EDH tenemos lead_submit, lead_form_open, video_play, book_buy_click — cada uno te dice algo distinto sobre intención del usuario.
Para qué
Análisis cruzado en cualquier reporte. 'Cuántos lead_submit del recurso X tuvimos en mayo' o 'Cuántos sessions vinieron de IG y completaron el form'. Sin esto, los reportes son superficiales.