Caso de uso · agencia digital · Ciudad de México

Reporte de marketing PDF automático:
de 3 horas por cliente a 8 segundos

Una agencia digital en CDMX con 60+ clientes activos genera reportes mensuales de Google Ads, Meta Ads y Analytics en PDF — con gráficas, tablas, KPIs y el logo de cada cliente — usando una sola llamada a la API de Reportia. Sin PowerPoint. Sin copy-paste. Sin intervención manual.

60+
clientes activos
8s
por reporte generado
98%
reducción de tiempo
$9
USD/mes plan Pro

El problema: reportes de marketing manuales en México

Cada fin de mes, el equipo de Estrategia 360 — una agencia de marketing digital en Colonia Nápoles, CDMX — enfrentaba el mismo cuello de botella: generar reportes individuales para cada uno de sus clientes.

El proceso manual:

  1. Abrir Google Ads Manager y exportar el informe del mes por cliente (cada cuenta tiene su propio login).
  2. Repetir en Meta Ads Manager para campañas de Facebook e Instagram.
  3. Abrir Google Analytics 4 para datos de tráfico orgánico y conversiones web.
  4. Consolidar todo en una hoja de Excel compartida.
  5. Copiar los números al template de presentación en PowerPoint con el logo del cliente.
  6. Crear los gráficos manualmente: barras de gasto, líneas de conversiones, ROAS mensual.
  7. Escribir el resumen ejecutivo interpretando los resultados.
  8. Exportar a PDF y enviar por email al cliente.

Por cliente, el proceso tomaba entre 2.5 y 4 horas. Con 60 clientes activos, el equipo dedicaba más de 180 horas al mes solo a reportes. Tres personas durante tres días completos — sin poder atender nuevos proyectos.

La solución: API de reportes JSON a PDF

Con Reportia, el flujo completo se automatizó en 4 pasos que se ejecutan solos:

1

Extracción automática de métricas

Un script en Python corre el último día del mes. Consulta la API de Google Ads, Meta Marketing API y Google Analytics Data API para cada cliente. Consolida impresiones, clics, CPC, conversiones, ROAS y gasto total en un JSON estructurado por cliente.

2

Plantilla única, branding por cliente

La agencia diseñó una plantilla maestra en el builder visual de Reportia: portada con logo, sección de KPIs clave, tabla de campañas por canal, gráfica de tendencia mensual y sección de recomendaciones. Variables como {{logo_url}}, {{color_primario}} y {{cliente_nombre}} personalizan cada instancia automáticamente.

3

Una llamada API = un reporte PDF

Por cada cliente, el script hace un POST /v1/render a Reportia con el template_id y el JSON de métricas del mes. Reportia renderiza el HTML con los datos reales, genera las gráficas SVG y devuelve un PDF profesional de 5-8 páginas en menos de 8 segundos — sin intervención humana.

4

Entrega automática el 1° de cada mes

El script descarga el PDF y lo adjunta a un email automático al contacto del cliente. El asunto incluye los 3 KPIs principales del mes: "Reporte Mayo: ROAS 3.4x · 1,240 conversiones · CPC $8.20 MXN". El cliente lo recibe a las 9am del 1° de cada mes, sin que nadie en la agencia tenga que hacer nada.

Código de ejemplo: de las APIs de Google/Meta al PDF

Así se ve el script simplificado que extrae métricas de Google Ads y genera el reporte con Reportia:

import requests

REPORTIA_KEY = "rep_live_tu_api_key"
REPORTIA_URL = "https://reportia.4l3.org/v1/render"

def generar_reporte_cliente(cliente: dict, metricas: dict) -> bytes:
    """
    cliente = {
        "nombre": "Restaurante El Palacio",
        "logo_url": "https://storage.example.com/logos/el-palacio.png",
        "color_primario": "#c8102e",
        "contacto_email": "[email protected]"
    }
    metricas = {
        "periodo": "Mayo 2026",
        "gasto_total_mxn": 48500,
        "impresiones": 142000,
        "clics": 8900,
        "cpc_mxn": 5.45,
        "conversiones": 1240,
        "roas": 3.4,
        "campanas": [
            {"nombre": "Google Search - Marca", "gasto": 18000, "conv": 580},
            {"nombre": "Meta - Prospección", "gasto": 22000, "conv": 420},
            {"nombre": "Google Display - Remarketing", "gasto": 8500, "conv": 240}
        ]
    }
    """
    payload = {
        "template": "reporte_marketing_agencia",
        "format": "pdf",
        "data": {
            "cliente": cliente,
            "metricas": metricas
        },
        "options": {
            "page": "A4",
            "orientation": "portrait",
            "margin": "20px 24px"
        }
    }
    resp = requests.post(
        REPORTIA_URL,
        headers={"Authorization": f"Bearer {REPORTIA_KEY}"},
        json=payload,
        timeout=30
    )
    resp.raise_for_status()
    return resp.content  # PDF binario


# Iterar todos los clientes y generar reportes en batch
clientes = cargar_clientes_desde_crm()  # tu lógica de negocio

for cliente in clientes:
    metricas = extraer_metricas_mes(cliente["google_ads_id"], cliente["meta_account_id"])
    pdf_bytes = generar_reporte_cliente(cliente, metricas)

    # Guardar localmente
    nombre_archivo = f"reporte_{cliente['slug']}_{metricas['periodo'].replace(' ','_')}.pdf"
    with open(nombre_archivo, "wb") as f:
        f.write(pdf_bytes)

    # Enviar por email
    enviar_reporte_email(
        to=cliente["contacto_email"],
        subject=f"Tu reporte de {metricas['periodo']} — ROAS {metricas['roas']}x",
        pdf_path=nombre_archivo
    )

print(f"✓ {len(clientes)} reportes generados y enviados")

El script completo, incluyendo la extracción de datos de Google Ads API v19 y Meta Marketing API v20, está disponible en la documentación de Reportia.

Antes vs después: horas de trabajo por mes

Tarea Antes (manual) Con Reportia
Extraer datos de plataformas ~90 min/cliente 2 min total (script)
Consolidar en hoja de cálculo ~45 min/cliente 0 min (automático)
Crear gráficas en PowerPoint ~30 min/cliente 0 min (template)
Generar PDF ~15 min/cliente 8 seg/cliente
Enviar al cliente ~10 min/cliente 0 min (automático)
Total para 60 clientes ~190 horas/mes <1 hora/mes

Integración con n8n: flujo completamente automatizado

Si prefieres no escribir código, el mismo flujo funciona en n8n. El workflow tiene 5 nodos:

01
Cron trigger — el 1° de cada mes a las 7am
02
Google Sheets — lee lista de clientes con sus IDs de cuenta
03
HTTP Request (x2) — extrae datos de Google Ads API y Meta Marketing API
04
HTTP Request → Reportia /v1/render — genera el PDF con los datos del cliente
05
Gmail / SendGrid — adjunta el PDF y lo envía al contacto del cliente

Ver cómo integrar Reportia con Google Sheets para el paso 2 del flujo.

Preguntas frecuentes

¿Reportia puede generar gráficas dentro del PDF?

Sí. Incluyes las gráficas directamente en tu plantilla HTML usando SVG inline o Chart.js. Reportia renderiza el HTML completo — incluyendo gráficas dinámicas con los datos reales de cada cliente — y lo convierte a PDF de alta calidad. No necesitas librerías externas ni configuración adicional.

¿Cuánto cuesta para una agencia con 60 clientes en México?

Con 60 reportes mensuales, el plan Pro a $9 USD/mes es más que suficiente (incluye 1,000 reportes/mes). Son menos de $0.15 USD por reporte, sin marca de agua. Para empezar puedes usar el free tier (50 reportes/mes) sin tarjeta y sin commitment.

¿Puedo usar una plantilla diferente por cliente?

Sí. Cada cliente puede tener su propio template_id con diseño diferente. O puedes usar una plantilla base con variables de marca (logo_url, color_primario, nombre_empresa) — más eficiente si tus reportes tienen la misma estructura.

¿Funciona con n8n o Make?

Sí. Reportia es una API REST estándar. En n8n usa el nodo HTTP Request: método POST, URL https://reportia.4l3.org/v1/render, header Authorization: Bearer tu_key, body JSON con template y datos. El PDF llega como binario que puedes adjuntar directamente a un nodo de email.

¿Puedo conectar Reportia directo a Google Ads o Meta Ads?

Reportia recibe datos via JSON — no se conecta directamente a Google/Meta. Tu script (Python, Node, n8n) extrae los datos de sus APIs y los pasa a Reportia. Esto es una ventaja: tienes control total sobre qué métricas incluir, cómo calcular KPIs personalizados y qué período reportar.

¿Tu agencia genera reportes PDF manualmente?

Empieza con 50 reportes gratis, sin tarjeta. Configura tu primera plantilla en el builder visual en menos de 10 minutos.

Más casos de uso y plantillas relacionadas