Herramienta en Python para extraer reportes de Universal Analytics (Google Analytics Reporting API v4) y exportarlos a CSV/Excel. Organizada en capas (domain · usecases · controller · infrastructure · view) para mantener la lógica de negocio separada del cliente de Google y de la presentación.
⚠️ Universal Analytics fue descontinuado por Google en 2024. Este proyecto sirve como referencia de integración con la Reporting API v4 y de exportación de datos analíticos.
src/
├── domain/models.py # AnalyticsReport (entidad de configuración del reporte)
├── usecases/analytics_usecase.py # Orquesta la obtención del reporte
├── controller/analytics_controller.py # Coordina fetch + exportación a CSV/Excel
├── infrastructure/
│ └── google_analytics_client.py # Cliente de la Reporting API v4 (service account)
└── view/console_view.py # Salida por consola
main.py # Punto de entrada (configura y ejecuta un reporte)
scripts/ # Utilidades sueltas (combinar CSVs, reestructurar carpetas)
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCrea un service account en Google Cloud con acceso a la Reporting API y dale permiso de lectura sobre la vista de Analytics. Luego:
cp src/controller/credentials.example.json src/controller/credentials.json
# pega el JSON real de tu service account en credentials.json (está en .gitignore)Ajusta VIEW_ID, fechas, métricas y dimensiones en build_report() dentro de
main.py, y corre:
python main.pyEl reporte se exporta a backup/<group>/<type>/<name>.csv.
pip install pytest
pytestCubren la entidad AnalyticsReport y el caso de uso (con cliente simulado), sin
necesidad de credenciales ni de red. Corren en GitHub Actions.
Las credenciales reales (src/controller/credentials.json) están en .gitignore.
Sólo se versiona la plantilla credentials.example.json. El entorno virtual y los
reportes generados (backup/) tampoco se versionan.
Python 3.12 · google-api-python-client · google-auth · pandas ·
openpyxl · pyfiglet
MIT