Saltar al contenido principal

🤖 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-WFAcciónAPI Endpoint
SubWF-GA4Crear propiedad + Data Streamanalyticsadmin.googleapis.com/v1beta/properties
SubWF-GTMCrear contenedor + Importar JSONtagmanager.googleapis.com/v2/accounts/{id}/containers
SubWF-ReportClonar reporte Lookerdrive.googleapis.com/v3/files/{id}/copy
SubWF-SheetsRegistrar datossheets.googleapis.com/v4/spreadsheets/{id}/values:append
SubWF-JiraComentar ticketrest/api/3/issue/{key}/comment

Configuración GA4​

{
"displayName": "{{hotelName}}",
"industryCategory": "TRAVEL",
"timeZone": "America/Mexico_City",
"currencyCode": "MXN"
}

Variables de Contexto​

VariableDescripciónEjemplo
ticketTicket JiraIMPL-290
domainDominio del hotelelrebozohotel.com
hotelNameNombre del hotelEl Rebozo Hotel
measurementIdID GA4 generadoG-XXXXXXXX
publicIdID GTM generadoGTM-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​

Criterion8nPython
Setup inicialRápido (UI visual)Más lento (código)
CostoSuscripciónGratuito
ControlLimitadoTotal
TestingManualUnit/integration tests
CI/CDLimitadoCompleto
EscalabilidadModeradaAlta

⚙️ 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.edit
    • tagmanager.edit.containers
    • drive
    • spreadsheets

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​

FaseEntregable
1CLI funcional con GA4, GTM, Sheets
2Tests >80%, rollback automático
3Bot Telegram, Dashboard Streamlit
4Queue Redis, Docker, Cloud Run

📚 Referencias​