# Marketing Informe PDF

> Generador de Informe de Marketing en PDF

- Skill: `victorperez22/marketing-informe-pdf` (Agent Skill)
- Install (CLI): `npx skillmds@latest add victorperez22/marketing-informe-pdf`
- Raw SKILL.md: https://api.skillmd.com/api/skills/victorperez22/marketing-informe-pdf/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: victorperez22 (https://skillmd.com/u/victorperez22)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/victorperez22/marketing-informe-pdf

---

# Generador de Informe de Marketing en PDF

## Proposito de la skill

Generar un informe de marketing profesional y visualmente cuidado en PDF usando el script Python `scripts/generar_informe_pdf.py`. La skill recoge toda la data disponible de auditorias, la estructura en el JSON esperado, invoca el script y produce un PDF con marca, medidores de score, barras, tablas comparativas, hallazgos y plan de accion priorizado.

## Cuando usarla

- El usuario quiere version PDF del informe (no solo Markdown)
- El usuario prepara un entregable para presentacion a cliente
- El usuario pide un informe "pulido", "listo para cliente" o en PDF
- Se activa con `/marketing informe-pdf` o `/marketing informe-pdf <dominio>`

## Cuando usar PDF vs Markdown

| Formato      | Mejor para                                                   | Pros                                                          | Contras                                |
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------- | -------------------------------------- |
| **PDF**      | Presentaciones a cliente, adjunto en email, sales collateral | Aspecto profesional, formato consistente, graficos, printable | Mas dificil de editar, requiere script |
| **Markdown** | Uso interno, referencia rapida, edicion iterativa, git       | Facil de editar, legible en cualquier editor, git-friendly    | Menos pulido visual, sin graficos      |

**Regla:** si el informe va a cliente o prospecto, usa PDF. Para interno o edicion posterior, Markdown.

## Como ejecutarla

### Paso 1: Recoger toda la data disponible

Revisa archivos de skills previas en el directorio del proyecto:

**Fuentes primarias:**

- `AUDITORIA-MARKETING.md` — auditoria global
- `LANDING-CRO.md` — analisis CRO
- `AUDITORIA-SEO.md` — hallazgos SEO
- `VOZ-MARCA.md` — analisis de voz de marca
- `INFORME-COMPETIDORES.md` — comparativa competitiva
- `ANALISIS-FUNNEL.md` — analisis de funnel
- `CALENDARIO-REDES.md` — auditoria de redes
- `SECUENCIAS-EMAIL.md` — auditoria de email
- `CAMPANAS-ADS.md` — auditoria de ads

**Si no hay data previa:**

1. Recomienda ejecutar antes `/marketing auditoria <url>`
2. Si el usuario insiste, analiza la URL directamente y construye la data desde cero
3. Usa `scripts/analizar_pagina.py` para recoger datos automaticos: `python3 scripts/analizar_pagina.py <url>`

### Paso 2: Construir la estructura JSON

El script `scripts/generar_informe_pdf.py` espera un JSON con esta estructura exacta:

```json
{
  "url": "https://ejemplo.com",
  "date": "1 de marzo de 2026",
  "brand_name": "Ejemplo S.L.",
  "overall_score": 62,
  "executive_summary": "Resumen de 2-4 frases sobre salud de marketing, oportunidades clave e impacto estimado de implementar las recomendaciones.",
  "categories": {
    "Contenido y Mensaje": {
      "score": 68,
      "weight": "25%"
    },
    "Optimizacion de Conversion": {
      "score": 52,
      "weight": "25%"
    },
    "SEO y Descubrimiento": {
      "score": 74,
      "weight": "15%"
    },
    "Posicionamiento Competitivo": {
      "score": 48,
      "weight": "15%"
    },
    "Marca y Confianza": {
      "score": 70,
      "weight": "10%"
    },
    "Crecimiento y Estrategia": {
      "score": 55,
      "weight": "10%"
    }
  },
  "findings": [
    {
      "severity": "Critico",
      "finding": "Descripcion del hallazgo mas importante"
    },
    {
      "severity": "Alto",
      "finding": "Descripcion de hallazgo de alta prioridad"
    },
    {
      "severity": "Medio",
      "finding": "Descripcion de hallazgo de prioridad media"
    },
    {
      "severity": "Bajo",
      "finding": "Descripcion de hallazgo menor"
    }
  ],
  "quick_wins": ["Primer quick win", "Segundo quick win", "Tercer quick win"],
  "medium_term": [
    "Primera accion medio plazo",
    "Segunda accion medio plazo",
    "Tercera accion medio plazo"
  ],
  "strategic": [
    "Primera accion estrategica",
    "Segunda accion estrategica",
    "Tercera accion estrategica"
  ],
  "competitors": [
    {
      "name": "Competidor A",
      "positioning": "Posicion en el mercado",
      "pricing": "Modelo de pricing",
      "social_proof": "Senales de confianza",
      "content": "Enfoque de contenido"
    },
    {
      "name": "Competidor B",
      "positioning": "Posicion en el mercado",
      "pricing": "Modelo de pricing",
      "social_proof": "Senales de confianza",
      "content": "Enfoque de contenido"
    }
  ]
}
```

### Paso 3: Guia campo a campo

#### `url` (string, obligatorio)

URL completa con protocolo.

#### `date` (string, obligatorio)

Fecha de generacion. Formato: "DD de Mes de AAAA" (ej. "1 de marzo de 2026").

#### `brand_name` (string, obligatorio)

Nombre de la empresa/marca. Aparece en headers de la tabla competitiva.

#### `overall_score` (entero, 0-100, obligatorio)

Media ponderada de las 6 categorias. Calculo:

```
overall_score = (contenido * 0,25) + (conversion * 0,25) + (seo * 0,15) + (competitivo * 0,15) + (marca * 0,10) + (crecimiento * 0,10)
```

**Justificacion de pesos:** priorizamos conversion sobre SEO porque la mayoria de webs B2B en Espana viven de trafico de pago + outbound, no de SEO organico.

#### `executive_summary` (string, obligatorio)

2-4 frases cubriendo:

- Estado actual del marketing
- Top 1-2 hallazgos de mayor impacto
- Impacto estimado en ingresos de implementar
- Primer paso recomendado

Breve y potente. Aparece en portada debajo del gauge.

#### `categories` (object, obligatorio)

Exactamente 6 categorias:

| Categoria                   | Que mide                                                                                       | Guia de scoring                                                                                          |
| --------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Contenido y Mensaje         | Calidad de copy, value prop, claridad de headline, texto de CTAs, consistencia de voz de marca | 80+: claro, orientado a beneficio, especifico. 60-79: correcto pero generico. <60: vago, feature-focused |
| Optimizacion de Conversion  | Social proof, formularios, ubicacion de CTAs, gestion de objeciones, urgencia                  | 80+: multiples pruebas, forms optimizados, CTAs claros. 60-79: algunos elementos. <60: faltan criticos   |
| SEO y Descubrimiento        | Titles, meta, headers, schema, linking interno, velocidad                                      | 80+: optimizado. 60-79: presente con gaps. <60: issues mayores o ausencias                               |
| Posicionamiento Competitivo | Diferenciacion, transparencia de pricing, contenido comparativo, conciencia de mercado         | 80+: posicion clara, comparativas. 60-79: algo de diferenciacion. <60: sin posicionamiento               |
| Marca y Confianza           | Calidad de diseno, trust badges, indicadores de seguridad, aspecto profesional                 | 80+: diseno moderno, senales de confianza. 60-79: diseno correcto. <60: desfasado                        |
| Crecimiento y Estrategia    | Captura de leads, email marketing, estrategia de contenido, canales de adquisicion             | 80+: estrategia multicanal. 60-79: algunos canales activos. <60: sin estrategia clara                    |

#### `findings` (array, obligatorio)

Array de hallazgos con `severity` y `finding`.

**Niveles de severidad:**

- `Critico` — perdida directa de ingresos o clientes. Corregir ya.
- `Alto` — impacto significativo en crecimiento. 1-2 semanas.
- `Medio` — oportunidad relevante. 1 mes.
- `Bajo` — nice-to-have. Cuando haya tiempo.

**Como escribir hallazgos efectivos:**

- Concreto: "El headline de home dice 'Bienvenido a nuestra plataforma'" no "el headline necesita mejora"
- Cuantifica: "Faltan meta descriptions en 8 de 12 landings"
- Usa benchmarks: "Tiempo de carga 4,2s (benchmark: <2s)"
- Incluye evidencia: "Sin testimonios en home, pricing ni signup"

5-10 hallazgos. Ordena de mas a menos severo.

#### `quick_wins` (array, obligatorio)

3-5 acciones ejecutables en una semana con esfuerzo minimo. Cada una concreta y accionable.

**Buen quick win:** "Reescribir el headline de home de 'Bienvenido a nuestra plataforma' a 'Reduce tu tiempo de reporting un 75% — analytics automatico para equipos de growth'"

**Mal quick win:** "Mejorar el headline" (demasiado vago)

#### `medium_term` (array, obligatorio)

3-5 acciones de 1-3 meses.

#### `strategic` (array, obligatorio)

3-5 acciones de 3-6 meses. Cambios de fundacion.

#### `competitors` (array, opcional)

Hasta 3 competidores para la tabla comparativa. Si no hay data, omite el campo y el script se salta la seccion.

### Paso 4: Guardar el JSON

Escribe la data en un fichero JSON temporal:

```bash
cat > /tmp/datos_informe.json << 'JSONEOF'
{
  ... JSON ensamblado ...
}
JSONEOF
```

### Paso 5: Invocar el generador de PDF

**Check de requisitos:**
Verifica que `reportlab` esta instalado:

```bash
python3 -c "import reportlab" 2>/dev/null || pip3 install reportlab
```

**Generar el informe:**

```bash
python3 scripts/generar_informe_pdf.py /tmp/datos_informe.json "INFORME-MARKETING-<dominio>.pdf"
```

Sustituye `<dominio>` por el dominio del cliente (sin protocolo ni www), usando guiones en vez de puntos. Ejemplos:

- `ejemplo.com` -> `INFORME-MARKETING-ejemplo-com.pdf`
- `miapp.io` -> `INFORME-MARKETING-miapp-io.pdf`

**Modo demo (sin argumentos):**
Ejecutar el script sin argumentos genera un informe de ejemplo con placeholders:

```bash
python3 scripts/generar_informe_pdf.py
# Genera: INFORME-MARKETING-ejemplo.pdf
```

### Paso 6: Verificar el output

Comprueba que el PDF se genero:

```bash
ls -la "INFORME-MARKETING-<dominio>.pdf"
```

Reporta la ruta y el tamano al usuario.

### Paso 7: Limpieza

Borra el JSON temporal:

```bash
rm /tmp/datos_informe.json
```

## Contenido del PDF

El PDF generado incluye:

### Pagina 1: Portada

- Titulo: "Informe de Auditoria de Marketing"
- URL objetivo
- Fecha de generacion
- Gauge con score global (visualizacion circular con color)
- Letra de calificacion (A+ hasta F)
- Parrafo de resumen ejecutivo

### Pagina 2: Desglose de scores

- Barra horizontal con las 6 categorias y color
- Tabla con nombre, score, peso y estado
- Colores: verde (80+), azul (60-79), amarillo (40-59), rojo (<40)

### Pagina 3: Hallazgos clave

- Tabla con severidad y descripcion
- Indicadores de severidad por color (Critico=rojo, Alto=naranja, Medio=amarillo, Bajo=azul)
- Ordenados de mas a menos severo

### Pagina 4: Plan de accion priorizado

- Quick Wins (esta semana)
- Medio plazo (1-3 meses)
- Estrategicas (3-6 meses)
- Items numerados en cada tier

### Pagina 5: Panorama competitivo (si hay data)

- Tabla comparativa cliente vs hasta 3 competidores
- Filas: Posicionamiento, Pricing, Social Proof, Contenido

### Pagina final: Metodologia

- Explicacion de scoring
- Pesos y criterios
- Footer: "Generado con Marketing Claude Code"

## Paleta de colores

Paleta profesional del PDF:

| Elemento                       | Color       | Hex     |
| ------------------------------ | ----------- | ------- |
| Primario (headers, titulos)    | Azul oscuro | #1B2A4A |
| Acento (enlaces, highlights)   | Azul        | #2D5BFF |
| Highlight (atencion)           | Naranja     | #FF6B35 |
| Exito (scores altos)           | Verde       | #00C853 |
| Advertencia (scores medios)    | Ambar       | #FFB300 |
| Danger (scores bajos, critico) | Rojo        | #FF1744 |
| Fondo claro                    | Gris claro  | #F5F7FA |
| Texto body                     | Gris oscuro | #2C3E50 |
| Texto secundario               | Gris medio  | #7F8C9B |
| Bordes                         | Borde claro | #E0E6ED |

## Mapeo score-color

- 80-100: Verde (#00C853) — performance solida
- 60-79: Azul (#2D5BFF) — correcta con margen
- 40-59: Ambar (#FFB300) — requiere atencion
- 0-39: Rojo (#FF1744) — critico

## Troubleshooting

| Issue                                              | Solucion                                                                                              |
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `ModuleNotFoundError: No module named 'reportlab'` | `pip3 install reportlab`                                                                              |
| Script genera PDF vacio                            | Revisa que el JSON tiene todos los campos obligatorios                                                |
| Gauge no renderiza                                 | `overall_score` debe ser un numero 0-100                                                              |
| Tabla de competidores ausente                      | Asegura que `competitors` tiene `name`, `positioning`, `pricing`, `social_proof`, `content`           |
| PDF de una sola pagina                             | Revisa errores de parseo JSON: `python3 -c "import json; json.load(open('/tmp/datos_informe.json'))"` |
| Fuentes raras                                      | El script usa Helvetica (nativa de reportlab). Sin fuentes custom.                                    |

## Integracion con otras skills

Mejor workflow combinado:

1. `/marketing auditoria <url>` — data de auditoria completa
2. `/marketing competidores <url>` — data comparativa
3. `/marketing seo <url>` — hallazgos SEO detallados
4. `/marketing landing <url>` — analisis CRO
5. `/marketing informe-pdf <url>` — compila todo en PDF

La skill del PDF busca automaticamente los outputs de estas skills e incorpora la data al JSON.

## Output

- **Archivo:** `INFORME-MARKETING-<dominio>.pdf`
- **Ubicacion:** raiz del proyecto
- **Tamano tipico:** 200-500 KB segun contenido
- **Paginas:** 5-7 segun datos de competidores y extras

## Principios clave

- El PDF es el entregable mas orientado a cliente del toolkit. La calidad importa.
- Verifica que el JSON esta completo y correcto antes de generar. Basura dentro, basura fuera.
- Usa el PDF para primeras impresiones y conversaciones de venta. El Markdown va despues para detalles.
- Todo score debe ser justificable. Si el cliente pregunta "por que saco 52 en Conversion", los hallazgos tienen que explicarlo.
- Redondea a enteros. Los decimales fingen precision.
- Resumen ejecutivo ajustado: 2-4 frases maximo. Los decisores solo escanean.
- Si es para prospecto, el informe es herramienta de venta. Oportunidades compelling, plan alcanzable.

