Crear análisis de cohorts en GA4 y Sheets
Construye tu propio análisis de retención.
Ahora que entiendes qué son los cohorts y por qué son importantes, es momento de crear tu propio análisis. En esta lección aprenderás a construir análisis de cohorts tanto en Google Analytics 4 como en Google Sheets, con plantillas que podrás usar inmediatamente.
Parte 1: Análisis de cohorts en GA4
Google Analytics 4 incluye una herramienta de exploración de cohorts bastante poderosa.
Paso 1: Acceder a Explorar
1. Abre Google Analytics 4
2. En el menú izquierdo, haz clic en "Explorar"
3. Selecciona "Exploración de cohorte" de las plantillas
O crea una exploración en blanco y selecciona "Cohorte" como técnica
Paso 2: Configurar el cohort
En el panel de configuración (izquierda):
Tipo de inclusión de cohorte:
| Opción | Uso |
|---|---|
| Primera visita | Usuarios nuevos (más común) |
| Primera transacción | Compradores nuevos |
| Cualquier evento | Evento personalizado |
Granularidad del cohort:
| Opción | Cuándo usar |
|---|---|
| Diario | Análisis de corto plazo |
| Semanal | Balance entre detalle y overview |
| Mensual | Análisis de tendencias largas |
Paso 3: Seleccionar métrica de retorno
En "Criterios de retorno", elige qué define que un usuario "volvió":
Opciones comunes para e-commerce:
- Cualquier evento (visita)
- purchase (compra)
- add_to_cart (engagement)
- page_view de /checkout (intención de compra)
Paso 4: Agregar métricas
Arrastra las métricas que quieres ver:
| Métrica | Descripción |
|---|---|
| Usuarios activos | Cuántos volvieron |
| Retención de usuarios | % que volvió |
| Transacciones | Compras realizadas |
| Ingresos | Dinero generado |
| Retención de usuarios acumulada | % que volvió al menos una vez |
Paso 5: Agregar segmentos (opcional)
Para comparar cohorts de diferentes fuentes:
1. En "Segmentos", clic en "+"
2. Crea segmentos como:
- "Usuarios de Google Ads"
- "Usuarios de orgánico"
- "Usuarios móviles vs desktop"
3. Arrastra los segmentos a "Comparación de segmentos"
Ejemplo de configuración en GA4
Tipo de cohort: Primera transacción
Granularidad: Semanal
Criterio de retorno: purchase
Métricas: Retención de usuarios, Ingresos
Período: Últimas 12 semanas
Resultado esperado:
| Cohort | Semana 0 | Semana 1 | Semana 2 | Semana 3 | Semana 4 |
|---|---|---|---|---|---|
| Sem 1 | 100% | 15% | 10% | 8% | 7% |
| Sem 2 | 100% | 18% | 12% | 9% | - |
| Sem 3 | 100% | 16% | 11% | - | - |
| Sem 4 | 100% | 17% | - | - | - |
Limitaciones de GA4 para cohorts
⚠️ Limitaciones a considerar:
- Máximo 12 períodos de retención
- No muestra datos a nivel de usuario individual
- No puedes exportar fácilmente para análisis adicional
- Puede haber muestreo en cuentas con mucho tráfico
Parte 2: Análisis de cohorts en Google Sheets
Para mayor flexibilidad y análisis personalizados, Google Sheets es ideal.
Preparar los datos
Necesitas una tabla con transacciones que incluya:
| Campo | Descripción | Ejemplo |
|---|---|---|
| cliente_id | Identificador único | "C-12345" |
| fecha_transaccion | Fecha de compra | "2025-01-15" |
| valor | Monto de la compra | 85.50 |
Ejemplo de datos de entrada:
| cliente_id | fecha_transaccion | valor |
|---|---|---|
| C-001 | 2025-01-05 | 120 |
| C-002 | 2025-01-08 | 85 |
| C-001 | 2025-02-12 | 65 |
| C-003 | 2025-01-22 | 200 |
| C-002 | 2025-03-05 | 95 |
Paso 1: Calcular fecha de primera compra
En una nueva hoja, crea la tabla de primera compra por cliente:
=QUERY(Transacciones!A:C,
"SELECT A, MIN(B)
WHERE A IS NOT NULL
GROUP BY A
LABEL MIN(B) 'primera_compra'")
Resultado:
| cliente_id | primera_compra |
|---|---|
| C-001 | 2025-01-05 |
| C-002 | 2025-01-08 |
| C-003 | 2025-01-22 |
Paso 2: Asignar cohort mensual
Añade una columna para el cohort (mes de primera compra):
=TEXT(B2, "YYYY-MM")
O para cohort semanal:
=TEXT(B2 - WEEKDAY(B2, 2) + 1, "YYYY-MM-DD")
Paso 3: Calcular período relativo
Para cada transacción, calcula cuántos períodos han pasado desde la primera compra:
Fórmula para meses relativos:
=DATEDIF(primera_compra, fecha_transaccion, "M")
Tabla resultante:
| cliente_id | fecha_transaccion | cohort | mes_relativo |
|---|---|---|---|
| C-001 | 2025-01-05 | 2025-01 | 0 |
| C-001 | 2025-02-12 | 2025-01 | 1 |
| C-002 | 2025-01-08 | 2025-01 | 0 |
| C-002 | 2025-03-05 | 2025-01 | 2 |
Paso 4: Crear tabla dinámica de cohorts
Opción A: Con tabla dinámica
1. Selecciona los datos
2. Insertar > Tabla dinámica
3. Configurar:
- Filas: cohort
- Columnas: mes_relativo
- Valores: cliente_id (COUNTUNIQUE)
Opción B: Con fórmulas QUERY
=QUERY(DatosExpandidos!A:D,
"SELECT C, COUNT(DISTINCT A)
WHERE D = 0
GROUP BY C
ORDER BY C")
Paso 5: Calcular retención porcentual
Una vez tienes los conteos absolutos:
| Cohort | Mes 0 | Mes 1 | Mes 2 | Mes 3 |
|---|---|---|---|---|
| 2025-01 | 500 | 165 | 95 | 70 |
| 2025-02 | 550 | 187 | 110 | - |
| 2025-03 | 480 | 168 | - | - |
Convierte a porcentajes con:
=B2/$B2 (para Mes 0, siempre será 100%)
=C2/$B2 (Mes 1 / Mes 0)
=D2/$B2 (Mes 2 / Mes 0)
Resultado final:
| Cohort | Mes 0 | Mes 1 | Mes 2 | Mes 3 |
|---|---|---|---|---|
| 2025-01 | 100% | 33% | 19% | 14% |
| 2025-02 | 100% | 34% | 20% | - |
| 2025-03 | 100% | 35% | - | - |
Plantilla completa de fórmulas
Hoja 1: Datos de transacciones
Columnas: cliente_id | fecha | valor
Hoja 2: Primera compra
A1: cliente_id
B1: primera_compra
A2: =UNIQUE(Transacciones!A:A)
B2: =MINIFS(Transacciones!B:B, Transacciones!A:A, A2)
Hoja 3: Datos expandidos
A1: cliente_id
B1: fecha_transaccion
C1: cohort
D1: periodo_relativo
C2: =TEXT(VLOOKUP(A2, PrimeraCompra!A:B, 2, FALSE), "YYYY-MM")
D2: =DATEDIF(VLOOKUP(A2, PrimeraCompra!A:B, 2, FALSE), B2, "M")
Hoja 4: Tabla de cohorts
Usa tabla dinámica o fórmulas QUERY como se mostró arriba
Crear cohort de ingresos
Además de retención, puedes crear cohorts de ingresos acumulados.
Estructura
| Cohort | Mes 0 | Mes 1 | Mes 2 | Mes 3 | Mes 6 | Mes 12 |
|---|---|---|---|---|---|---|
| Q1-25 | $50k | $62k | $71k | $78k | $92k | $115k |
| Q2-25 | $55k | $70k | $82k | $90k | $108k | - |
Fórmula para ingresos acumulados
=SUMIFS(Transacciones!C:C,
DatosExpandidos!C:C, "2025-01",
DatosExpandidos!D:D, "<="&COLUMN()-2)
Calcular CLV por cohort
CLV por cohort = Ingresos acumulados / Clientes en Mes 0
Ejemplo:
CLV cohort Q1 (12 meses) = $115,000 / 500 = $230
Visualizar cohorts
Mapa de calor
El formato más efectivo para cohorts es el mapa de calor.
En Google Sheets:
1. Selecciona la tabla de cohorts (solo %)
2. Formato > Formato condicional
3. Escala de color:
- Mínimo: Rojo (0%)
- Punto medio: Amarillo (50%)
- Máximo: Verde (100%)
Configuración de colores recomendada:
| Valor | Color |
|---|---|
| 0-10% | Rojo oscuro |
| 10-20% | Rojo claro |
| 20-30% | Amarillo |
| 30-40% | Verde claro |
| 40%+ | Verde oscuro |
Gráfico de líneas
Para ver tendencias de retención:
1. Selecciona filas de cohorts que quieres comparar
2. Insertar > Gráfico
3. Tipo: Líneas
4. Eje X: Período relativo (0, 1, 2, 3...)
5. Series: Cada cohort como una línea
Automatizar actualizaciones
Con Google Sheets + BigQuery
Si tienes datos en BigQuery:
-- Query para cohorts de retención
WITH primera_compra AS (
SELECT
user_id,
DATE_TRUNC(MIN(purchase_date), MONTH) as cohort
FROM transactions
GROUP BY user_id
),
transacciones_con_cohort AS (
SELECT
t.user_id,
t.purchase_date,
p.cohort,
DATE_DIFF(DATE_TRUNC(t.purchase_date, MONTH), p.cohort, MONTH) as periodo
FROM transactions t
JOIN primera_compra p ON t.user_id = p.user_id
)
SELECT
cohort,
periodo,
COUNT(DISTINCT user_id) as usuarios
FROM transacciones_con_cohort
GROUP BY cohort, periodo
ORDER BY cohort, periodo
Con Apps Script
function actualizarCohorts() {
// Obtener datos frescos de fuente
var datos = obtenerDatosDeAPI();
// Calcular cohorts
var cohorts = calcularCohorts(datos);
// Actualizar hoja
var hoja = SpreadsheetApp.getActiveSheet();
hoja.getRange("A1:M13").setValues(cohorts);
// Aplicar formato
aplicarFormatoCalor();
}
// Programar ejecución diaria
function crearTrigger() {
ScriptApp.newTrigger('actualizarCohorts')
.timeBased()
.everyDays(1)
.atHour(7)
.create();
}
Checklist de implementación
□ Definir qué acción define el cohort (primera compra, registro, etc.)
□ Elegir granularidad (diario, semanal, mensual)
□ Preparar datos con: ID cliente, fecha acción, valor (opcional)
□ Calcular fecha de primera acción por cliente
□ Asignar cohort a cada cliente
□ Calcular período relativo para cada transacción
□ Crear tabla dinámica o fórmulas
□ Convertir a porcentajes
□ Aplicar formato de mapa de calor
□ Documentar interpretación
Resumen
| Herramienta | Pros | Contras |
|---|---|---|
| GA4 | Fácil, automático, tiempo real | Limitado, no exportable |
| Google Sheets | Flexible, personalizable, gratis | Requiere preparar datos |
| BigQuery + Sheets | Escalable, potente | Requiere conocimientos SQL |
Próximos pasos
En la siguiente lección aprenderás a interpretar tablas de cohorts correctamente y a traducir los patrones que encuentres en acciones concretas para mejorar tu retención y CLV.
Quiz: Verifica tu comprensión
1. En GA4, ¿qué tipo de inclusión de cohort usarías para analizar compradores nuevos?
a) Primera visita b) Primera transacción c) Cualquier evento d) Última transacción
2. ¿Qué fórmula calcula meses entre dos fechas en Google Sheets?
a) =MONTH(B2-A2) b) =DATEDIF(A2, B2, "M") c) =MONTHS(A2, B2) d) =B2-A2
3. Para convertir el conteo de usuarios a porcentaje de retención, divides entre:
a) El total de todos los cohorts b) El conteo del período anterior c) El conteo del período 0 (Mes 0) del mismo cohort d) 100
4. El formato más efectivo para visualizar una tabla de cohorts es:
a) Gráfico de barras b) Gráfico de pie c) Mapa de calor d) Gráfico de dispersión
5. Para automatizar cohorts con datos grandes, la mejor opción es:
a) Actualizar manualmente cada día b) GA4 únicamente c) BigQuery + Google Sheets d) Excel desktop
6. ¿Cuál es una limitación del análisis de cohorts en GA4?
a) No puede mostrar retención b) Máximo 12 períodos de retención c) Solo funciona con datos de hace 1 año d) No permite segmentos
Respuestas: 1-b, 2-b, 3-c, 4-c, 5-c, 6-b
¿Completaste esta lección?
Marca esta lección como completada. Tu progreso se guardará en tu navegador.