🤖 Automatización GA4/GTM/Looker
Sistema de orquestación para crear cuentas de análisis web de hoteles automáticamente.
📋 Contexto
El proceso manual de crear propiedades GA4, contenedores GTM, reportes Looker y registrar todo en Jira consume ~30 min por hotel. Se requiere automatización para escalar operaciones.
🎯 Objetivo
Reducir a < 2 minutos el tiempo de configuración de nuevos hoteles mediante automatización con n8n o Python.
📦 Alcance
Incluye:
- Creación de propiedad GA4 con Web Data Stream
- Creación e importación de contenedor GTM
- Clonado de reporte Looker Studio
- Registro en Google Sheets maestro
- Comentario en ticket Jira
Excluye:
- Configuración manual de dominios de referencia
- Personalización avanzada de reportes
🏛️ Arquitectura
Flujo de Proceso
┌─────────────────┐
│ Telegram Trigger│
└────────┬────────┘
│
▼
┌─────────────────┐
│ WF-Main │
└────────┬────────┘
│
┌────┴────┬────────┬─────────┬────────┐
▼ ▼ ▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ GA4 │ │ GTM │ │Looker│ │Sheets│ │ Jira │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘
Formato de Comando
IMPL-290 | domain=elrebozohotel.com | name="El Rebozo Hotel" | accountId=XXX
🔧 Implementación n8n
Sub-workflows
| Sub-WF | Acción | API Endpoint |
|---|---|---|
| SubWF-GA4 | Crear propiedad + Data Stream | analyticsadmin.googleapis.com/v1beta/properties |
| SubWF-GTM | Crear contenedor + Importar JSON | tagmanager.googleapis.com/v2/accounts/{id}/containers |
| SubWF-Report | Clonar reporte Looker | drive.googleapis.com/v3/files/{id}/copy |
| SubWF-Sheets | Registrar datos | sheets.googleapis.com/v4/spreadsheets/{id}/values:append |
| SubWF-Jira | Comentar ticket | rest/api/3/issue/{key}/comment |
Configuración GA4
{
"displayName": "{{hotelName}}",
"industryCategory": "TRAVEL",
"timeZone": "America/Mexico_City",
"currencyCode": "MXN"
}
Variables de Contexto
| Variable | Descripción | Ejemplo |
|---|---|---|
ticket | Ticket Jira | IMPL-290 |
domain | Dominio del hotel | elrebozohotel.com |
hotelName | Nombre del hotel | El Rebozo Hotel |
measurementId | ID GA4 generado | G-XXXXXXXX |
publicId | ID GTM generado | GTM-XXXXXX |
🐍 Implementación Python
Estructura del Proyecto
revenatium-automation/
├── config/
│ ├── settings.py
│ └── templates/gtm_template.json
├── src/
│ ├── models/hotel.py
│ ├── services/
│ │ ├── ga4.py
│ │ ├── gtm.py
│ │ ├── sheets.py
│ │ └── jira.py
│ └── orchestrator.py
├── cli.py
└── requirements.txt
Modelo de Datos
class HotelConfig(BaseModel):
ticket_key: str # IMPL-###
domain: str
hotel_name: str
timezone: str = "America/Mexico_City"
currency: str = "MXN"
CLI
# Validar configuración
python cli.py validate
# Crear cuenta (dry-run)
python cli.py create --ticket IMPL-290 \
--domain elrebozohotel.com \
--name "El Rebozo Hotel" \
--dry-run
# Crear cuenta (real)
python cli.py create --ticket IMPL-290 \
--domain elrebozohotel.com \
--name "El Rebozo Hotel"
# Ver estado
python cli.py status IMPL-290
📊 Comparativa: n8n vs Python
| Criterio | n8n | Python |
|---|---|---|
| Setup inicial | Rápido (UI visual) | Más lento (código) |
| Costo | Suscripción | Gratuito |
| Control | Limitado | Total |
| Testing | Manual | Unit/integration tests |
| CI/CD | Limitado | Completo |
| Escalabilidad | Moderada | Alta |
⚙️ Requisitos
Google Cloud
- Proyecto con APIs habilitadas: Analytics Admin, Tag Manager, Drive, Sheets
- Service account con permisos: GA4 Editor, GTM Admin, Drive Editor
- OAuth scopes:
analytics.edittagmanager.edit.containersdrivespreadsheets
Jira
- Token API v3
- Permisos para comentar en tickets
Variables de Entorno (.env)
GOOGLE_CREDENTIALS_PATH=/path/to/service-account.json
GA4_PARENT_ACCOUNT=accounts/123456789
GTM_PARENT_ACCOUNT=accounts/987654321
MASTER_SHEET_ID=1ABC...XYZ
JIRA_BASE_URL=https://revenatium.atlassian.net
JIRA_API_TOKEN=ATATT...
✅ Checklist de Implementación
- Crear proyecto Google Cloud y service account
- Compartir cuenta GTM con service account
- Configurar credenciales en n8n o
.env - Importar workflows/subir código
- Ejecutar prueba con dominio sandbox
- Verificar creación en GA4, GTM, Looker
- Confirmar registro en Sheets y Jira
🚀 Roadmap
| Fase | Entregable |
|---|---|
| 1 | CLI funcional con GA4, GTM, Sheets |
| 2 | Tests >80%, rollback automático |
| 3 | Bot Telegram, Dashboard Streamlit |
| 4 | Queue Redis, Docker, Cloud Run |