Lección 25 de 36Dashboard de Marketing

Construyendo el dashboard paso a paso

Implementación guiada del dashboard de marketing.

30 minutos

Ahora que dominas las métricas clave de marketing, es momento de construir un dashboard profesional en Power BI. En esta lección crearemos un dashboard completo con modelo de datos optimizado, medidas DAX robustas y visualizaciones efectivas.

Vista Previa del Dashboard Final

Antes de comenzar, veamos qué construiremos:

┌─────────────────────────────────────────────────────────────────────────────┐
│                    DASHBOARD DE MARKETING DIGITAL                           │
│  Período: [Ene 2026 ▼]    Canal: [Todos ▼]    Campaña: [Todas ▼]          │
├─────────────────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐            │
│ │   GASTO     │ │   ROAS      │ │   CAC       │ │  CLIENTES   │            │
│ │  $125.4K    │ │   4.2:1     │ │   $278      │ │    451      │            │
│ │  ▲ +12%     │ │   ▲ +0.3    │ │   ▼ -8%     │ │   ▲ +18%    │            │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘            │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌──────────────────────────────┐  ┌────────────────────────────────────┐  │
│  │   FUNNEL DE CONVERSIÓN       │  │  RENDIMIENTO POR CANAL             │  │
│  │                              │  │                                    │  │
│  │  ████████████████████ 2.5M   │  │  Google  ████████████ $52K  4.5:1  │  │
│  │  Impresiones                 │  │  Meta    ██████████   $41K  3.8:1  │  │
│  │                              │  │  LinkedIn ████        $18K  2.9:1  │  │
│  │  █████████████ 45K           │  │  Email   █████        $14K  6.2:1  │  │
│  │  Clics (1.8% CTR)            │  │                                    │  │
│  │                              │  │                                    │  │
│  │  ██████ 1.8K                 │  │                                    │  │
│  │  Leads (4% conv)             │  │                                    │  │
│  │                              │  │                                    │  │
│  │  ██ 451                      │  │                                    │  │
│  │  Clientes (25% conv)         │  │                                    │  │
│  └──────────────────────────────┘  └────────────────────────────────────┘  │
│                                                                             │
├─────────────────────────────────────────────────────────────────────────────┤
│  ┌────────────────────────────────────────────────────────────────────────┐ │
│  │                    TENDENCIA DE ROAS Y GASTO                           │ │
│  │     Gasto ▬▬▬       ROAS ---                                          │ │
│  │                                                                        │ │
│  │          ╭──╮                       ╭───╮                              │ │
│  │     ╭───╯    ╰───╮             ╭───╯     ╰──╮                          │ │
│  │  ──╯              ╰───────────╯             ╰───                       │ │
│  │   Ene   Feb   Mar   Abr   May   Jun   Jul   Ago   Sep   Oct   Nov     │ │
│  └────────────────────────────────────────────────────────────────────────┘ │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Parte 1: Modelo de Datos para Marketing

Un buen dashboard comienza con un modelo de datos bien estructurado.

Estructura de Tablas

Para marketing analytics necesitamos estas tablas principales:

                    ┌──────────────┐
                    │  Calendario  │
                    │ (Dim_Fecha)  │
                    └──────┬───────┘
                           │
                           │ 1:N
                           ▼
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│   Canales    │◄───│  Campañas    │───►│   Costos     │
│ (Dim_Canal)  │    │(Fact_Métricas)│    │ Operativos  │
└──────────────┘    └──────┬───────┘    └──────────────┘
                           │
                           │ 1:N
                           ▼
                    ┌──────────────┐
                    │   Funnel     │
                    │ (Fact_Funnel)│
                    └──────────────┘

Tabla 1: Dim_Calendario

La tabla de calendario es esencial para análisis temporales.

// Código Power Query para crear tabla de calendario
let
    FechaInicio = #date(2024, 1, 1),
    FechaFin = #date(2026, 12, 31),
    Duracion = Duration.Days(FechaFin - FechaInicio) + 1,
    ListaFechas = List.Dates(FechaInicio, Duracion, #duration(1, 0, 0, 0)),
    TablaFechas = Table.FromList(ListaFechas, Splitter.SplitByNothing(), {"Fecha"}),
    TipoCambiado = Table.TransformColumnTypes(TablaFechas, {{"Fecha", type date}}),
    AgregarAño = Table.AddColumn(TipoCambiado, "Año", each Date.Year([Fecha]), Int64.Type),
    AgregarMes = Table.AddColumn(AgregarAño, "Mes", each Date.Month([Fecha]), Int64.Type),
    AgregarNombreMes = Table.AddColumn(AgregarMes, "Nombre_Mes",
        each Date.ToText([Fecha], "MMMM", "es-ES"), type text),
    AgregarTrimestre = Table.AddColumn(AgregarNombreMes, "Trimestre",
        each "Q" & Text.From(Date.QuarterOfYear([Fecha])), type text),
    AgregarSemana = Table.AddColumn(AgregarTrimestre, "Semana",
        each Date.WeekOfYear([Fecha]), Int64.Type),
    AgregarAñoMes = Table.AddColumn(AgregarSemana, "Año_Mes",
        each Date.ToText([Fecha], "yyyy-MM"), type text)
in
    AgregarAñoMes

Tabla 2: Dim_Canal

Define los canales de marketing:

Canal_ID Canal Categoria Tipo
1 Google Ads - Search Paid Search Pagado
2 Google Ads - Display Display Pagado
3 Facebook Ads Social Paid Pagado
4 Instagram Ads Social Paid Pagado
5 LinkedIn Ads Social Paid Pagado
6 Email Marketing Email Propio
7 Orgánico Google SEO Orgánico
8 Referidos Referral Orgánico

Tabla 3: Fact_Metricas_Campañas

La tabla principal con datos diarios de campañas:

Fecha Canal_ID Campaña Impresiones Clics Gasto Leads Clientes Ingresos
2026-01-01 1 Black Friday 125000 2500 1250 75 8 4800
2026-01-01 3 Retargeting 85000 1200 600 45 5 2750
... ... ... ... ... ... ... ... ...

Tabla 4: Fact_Funnel (opcional pero recomendada)

Para análisis detallado del embudo:

Fecha Canal_ID Etapa Cantidad
2026-01-01 1 Visitas 2500
2026-01-01 1 Leads 75
2026-01-01 1 MQLs 30
2026-01-01 1 SQLs 15
2026-01-01 1 Oportunidades 10
2026-01-01 1 Clientes 8

Configurar Relaciones

En Power BI, establece estas relaciones:

  1. Dim_Calendario[Fecha]Fact_Metricas[Fecha] (1:N)
  2. Dim_Canal[Canal_ID]Fact_Metricas[Canal_ID] (1:N)
  3. Dim_Calendario[Fecha]Fact_Funnel[Fecha] (1:N)
  4. Dim_Canal[Canal_ID]Fact_Funnel[Canal_ID] (1:N)

Importante: Marca la tabla Dim_Calendario como "Tabla de fechas" en Power BI: Selecciona la tabla → Herramientas de tabla → Marcar como tabla de fechas.

Parte 2: Creando las Medidas DAX

Ahora crearemos todas las medidas necesarias. Organízalas en una carpeta llamada "Métricas Marketing".

Medidas Base

// Totales básicos
Total Gasto = SUM(Fact_Metricas[Gasto])

Total Impresiones = SUM(Fact_Metricas[Impresiones])

Total Clics = SUM(Fact_Metricas[Clics])

Total Leads = SUM(Fact_Metricas[Leads])

Total Clientes = SUM(Fact_Metricas[Clientes])

Total Ingresos = SUM(Fact_Metricas[Ingresos])

Métricas de Eficiencia

// CPM - Costo por Mil Impresiones
CPM =
DIVIDE(
    [Total Gasto],
    [Total Impresiones],
    0
) * 1000

// CPC - Costo por Clic
CPC =
DIVIDE(
    [Total Gasto],
    [Total Clics],
    0
)

// CTR - Click Through Rate
CTR =
DIVIDE(
    [Total Clics],
    [Total Impresiones],
    0
) * 100

// CPL - Costo por Lead
CPL =
DIVIDE(
    [Total Gasto],
    [Total Leads],
    0
)

// CAC - Costo de Adquisición de Cliente
CAC =
DIVIDE(
    [Total Gasto],
    [Total Clientes],
    0
)

// ROAS - Return on Ad Spend
ROAS =
DIVIDE(
    [Total Ingresos],
    [Total Gasto],
    0
)

// ROAS Texto (para mostrar como ratio)
ROAS Texto =
VAR RoasValor = [ROAS]
RETURN
    FORMAT(RoasValor, "0.0") & ":1"

Métricas de Conversión

// Tasa de Conversión Clic a Lead
Tasa Click Lead =
DIVIDE(
    [Total Leads],
    [Total Clics],
    0
) * 100

// Tasa de Conversión Lead a Cliente
Tasa Lead Cliente =
DIVIDE(
    [Total Clientes],
    [Total Leads],
    0
) * 100

// Tasa de Conversión Total
Tasa Conversion Total =
DIVIDE(
    [Total Clientes],
    [Total Clics],
    0
) * 100

Métricas de Comparación (vs Período Anterior)

// Gasto del período anterior (mes)
Gasto Mes Anterior =
CALCULATE(
    [Total Gasto],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

// Variación de Gasto vs Mes Anterior
Variación Gasto MoM =
VAR GastoActual = [Total Gasto]
VAR GastoAnterior = [Gasto Mes Anterior]
RETURN
DIVIDE(
    GastoActual - GastoAnterior,
    GastoAnterior,
    0
)

// ROAS del período anterior
ROAS Mes Anterior =
CALCULATE(
    [ROAS],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

// Variación ROAS
Variación ROAS MoM = [ROAS] - [ROAS Mes Anterior]

// Clientes del período anterior
Clientes Mes Anterior =
CALCULATE(
    [Total Clientes],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

// Variación Clientes
Variación Clientes MoM =
VAR ClientesActual = [Total Clientes]
VAR ClientesAnterior = [Clientes Mes Anterior]
RETURN
DIVIDE(
    ClientesActual - ClientesAnterior,
    ClientesAnterior,
    0
)

Métricas Acumuladas (YTD)

// Gasto acumulado del año
Gasto YTD =
CALCULATE(
    [Total Gasto],
    DATESYTD(Dim_Calendario[Fecha])
)

// Ingresos acumulados del año
Ingresos YTD =
CALCULATE(
    [Total Ingresos],
    DATESYTD(Dim_Calendario[Fecha])
)

// ROAS acumulado del año
ROAS YTD =
DIVIDE(
    [Ingresos YTD],
    [Gasto YTD],
    0
)

Métricas con Objetivos

// ROAS vs Target
ROAS vs Target =
VAR RoasActual = [ROAS]
VAR Target = 4  // Objetivo de ROAS 4:1
RETURN
RoasActual - Target

// Estado ROAS (para formato condicional)
Estado ROAS =
VAR Diferencia = [ROAS vs Target]
RETURN
SWITCH(
    TRUE(),
    Diferencia >= 1, "Excelente",
    Diferencia >= 0, "En objetivo",
    Diferencia >= -0.5, "Precaución",
    "Crítico"
)

// CAC vs Objetivo
CAC vs Objetivo =
VAR CACActual = [CAC]
VAR Objetivo = 300  // CAC objetivo de $300
RETURN
Objetivo - CACActual  // Positivo = mejor que objetivo

Parte 3: Construyendo las Visualizaciones

Sección 1: KPIs Principales (Tarjetas)

Crea 4 tarjetas en la parte superior del dashboard:

Tarjeta 1: Gasto Total

  • Valor: [Total Gasto]
  • Formato: Moneda, sin decimales
  • Subtítulo: [Variación Gasto MoM] con formato porcentaje

Tarjeta 2: ROAS

  • Valor: [ROAS Texto]
  • Color: Condicional basado en [Estado ROAS]
  • Subtítulo: [Variación ROAS MoM]

Tarjeta 3: CAC

  • Valor: [CAC]
  • Formato: Moneda
  • Subtítulo: Comparación con mes anterior

Tarjeta 4: Clientes Nuevos

  • Valor: [Total Clientes]
  • Subtítulo: [Variación Clientes MoM] con formato porcentaje

Configuración de Formato Condicional

Para el color de las tarjetas según rendimiento:

  1. Selecciona la tarjeta
  2. Formato → Valor del relleno → Formato condicional
  3. Basado en campo: [Estado ROAS]
  4. Reglas:
    • "Excelente" → Verde (#2ECC71)
    • "En objetivo" → Azul (#3498DB)
    • "Precaución" → Amarillo (#F1C40F)
    • "Crítico" → Rojo (#E74C3C)

Sección 2: Visualización del Funnel

Opción A: Gráfico de Embudo Nativo

  1. Inserta un visual de tipo Embudo
  2. Grupo: Crea una columna calculada con el orden del funnel
// Columna calculada en Fact_Funnel
Orden Etapa =
SWITCH(
    Fact_Funnel[Etapa],
    "Impresiones", 1,
    "Clics", 2,
    "Leads", 3,
    "MQLs", 4,
    "SQLs", 5,
    "Oportunidades", 6,
    "Clientes", 7,
    99
)
  1. Valores: SUM(Fact_Funnel[Cantidad])
  2. Ordenar por: [Orden Etapa] ascendente

Opción B: Gráfico de Barras Horizontal Personalizado

Si prefieres más control visual:

  1. Gráfico de barras horizontal
  2. Eje Y: Etapa del funnel
  3. Eje X: Cantidad
  4. Ordenar por orden personalizado
  5. Agregar etiquetas de datos con tasa de conversión

Medida para etiqueta con tasa:

Etiqueta Funnel =
VAR Cantidad = SUM(Fact_Funnel[Cantidad])
VAR CantidadAnterior =
    CALCULATE(
        SUM(Fact_Funnel[Cantidad]),
        FILTER(
            ALL(Fact_Funnel[Etapa]),
            Fact_Funnel[Orden Etapa] = MAX(Fact_Funnel[Orden Etapa]) - 1
        )
    )
VAR Tasa = DIVIDE(Cantidad, CantidadAnterior, 1) * 100
RETURN
FORMAT(Cantidad, "#,##0") & " (" & FORMAT(Tasa, "0.0") & "%)"

Sección 3: Rendimiento por Canal

Tabla Matriz con ROAS y Gasto

  1. Inserta una Matriz

  2. Filas: Dim_Canal[Canal]

  3. Valores:

    • [Total Gasto]
    • [Total Clientes]
    • [ROAS]
    • [CAC]
  4. Aplica formato condicional en la columna ROAS:

    • Barras de datos
    • Color según valor (verde = alto, rojo = bajo)

Gráfico de Barras Comparativo

  1. Gráfico de barras agrupadas
  2. Eje Y: Dim_Canal[Canal]
  3. Eje X: [Total Gasto] y [Total Ingresos]
  4. Leyenda para diferenciar Gasto vs Ingresos

Sección 4: Análisis de Tendencias

Gráfico Combinado: Gasto y ROAS en el Tiempo

  1. Inserta un Gráfico de líneas y columnas agrupadas
  2. Eje X compartido: Dim_Calendario[Año_Mes]
  3. Columnas: [Total Gasto] (eje Y izquierdo)
  4. Línea: [ROAS] (eje Y derecho)
  5. Configura ejes:
    • Eje Y izquierdo: Moneda
    • Eje Y derecho: Rango 0-8 para ROAS

Configuración del visual:

Eje X: Año_Mes (ordenado cronológicamente)
Valores de columna: Total Gasto
Valores de línea: ROAS
Eje Y secundario: Activado para ROAS

Línea de Tendencia con Pronóstico

Power BI puede agregar líneas de tendencia y pronóstico:

  1. Selecciona el gráfico de líneas
  2. Panel Análisis (icono de lupa con gráfico)
  3. Activa "Línea de tendencia"
  4. Activa "Pronóstico" (próximos 3 meses)
  5. Intervalo de confianza: 95%

Sección 5: Segmentadores (Filtros)

Segmentador de Período

  1. Inserta un segmentador
  2. Campo: Dim_Calendario[Año_Mes]
  3. Tipo: Desplegable o lista
  4. Título: "Período"

Segmentador de Canal

  1. Inserta un segmentador
  2. Campo: Dim_Canal[Canal]
  3. Tipo: Desplegable con opción "Seleccionar todo"
  4. Título: "Canal"

Segmentador de Campaña

  1. Inserta un segmentador
  2. Campo: Fact_Metricas[Campaña]
  3. Tipo: Desplegable
  4. Título: "Campaña"

Parte 4: Mejoras Avanzadas

Tooltips Personalizados

Crea una página de tooltip para información adicional al hacer hover:

  1. Agrega nueva página

  2. Tamaño de página: Información sobre herramientas (ancho 320px, alto 240px)

  3. Agrega visuales compactos:

    • Mini gráfico de tendencia de los últimos 6 meses
    • Comparación MoM
    • Top 3 campañas del canal
  4. En el visual principal, configura:

    • Formato → Información sobre herramientas → Página = tu página de tooltip

Detalle Drill-Through

Crea una página de detalle para profundizar en un canal:

  1. Nueva página llamada "Detalle Canal"
  2. Agrega un campo drill-through: Dim_Canal[Canal]
  3. Visuales en esta página:
    • Tendencia histórica del canal
    • Desglose por campaña
    • Métricas detalladas
    • Tabla de datos diarios

Bookmarks para Vistas

Crea diferentes vistas del mismo dashboard:

  1. Vista Ejecutiva: Solo KPIs y funnel
  2. Vista Detallada: Todas las visualizaciones
  3. Vista por Canal: Enfocada en comparación de canales

Configura botones para navegar entre vistas.

Parte 5: Layout Final y Diseño

Paleta de Colores Sugerida

Elemento Color Uso
Fondo #F5F7FA Fondo del dashboard
Tarjetas #FFFFFF Fondo de visuales
Primario #AE4291 Acentos, botones (Tooldata)
Secundario #35286B Headers, títulos (Tooldata)
Positivo #2ECC71 Métricas buenas
Negativo #E74C3C Métricas malas
Neutro #95A5A6 Texto secundario

Estructura de Página

┌────────────────────────────────────────────────────────────────┐
│  HEADER (50px)                                                 │
│  Logo + Título + Fecha de actualización                        │
├────────────────────────────────────────────────────────────────┤
│  FILTROS (60px)                                                │
│  [Período ▼] [Canal ▼] [Campaña ▼] [Botones de vista]         │
├──────────────┬─────────────────────────────────────────────────┤
│  KPIs        │  KPIs                                           │
│  (150px)     │  4 tarjetas horizontales                        │
├──────────────┴─────────────────────────────────────────────────┤
│  ┌────────────────────┐  ┌───────────────────────────────┐    │
│  │  FUNNEL            │  │  CANAL PERFORMANCE             │    │
│  │  (40% ancho)       │  │  (60% ancho)                   │    │
│  │  Alto: 300px       │  │  Alto: 300px                   │    │
│  └────────────────────┘  └───────────────────────────────┘    │
├────────────────────────────────────────────────────────────────┤
│  ┌──────────────────────────────────────────────────────────┐ │
│  │  TENDENCIA (100% ancho, 250px alto)                      │ │
│  │  Gasto + ROAS en el tiempo                               │ │
│  └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘

Tips de Diseño

  1. Alineación: Usa las guías de Power BI para alinear todos los elementos
  2. Espaciado: Mantén 10-15px de margen entre visuales
  3. Consistencia: Misma altura para visuales en la misma fila
  4. Jerarquía: KPIs más importantes arriba y a la izquierda
  5. Respiración: No sobrecargues; deja espacio en blanco

Puntos Clave de esta Lección

  1. El modelo de datos es fundamental: Tablas de dimensiones (Calendario, Canal) y hechos (Métricas) bien relacionadas

  2. Las medidas DAX se organizan en categorías: Base, Eficiencia, Conversión, Comparación, Acumuladas

  3. El funnel visualiza el embudo de conversión: Desde impresiones hasta clientes

  4. La comparación por canal identifica oportunidades: Dónde invertir más, dónde optimizar

  5. Las tendencias revelan patrones: Gasto vs ROAS en el tiempo muestra estacionalidad

  6. Los filtros dan control al usuario: Período, canal y campaña como mínimo

  7. El diseño profesional aumenta el impacto: Colores consistentes, alineación, jerarquía visual

Próxima Lección

En la siguiente lección, pondrás todo en práctica con un proyecto completo. Tendrás un dataset de marketing real con el cual construirás un dashboard de campaña digital desde cero.


Quiz de Comprensión

Pregunta 1

¿Cuál es la ventaja de usar DATEADD en las medidas de comparación MoM?

A) Es más rápido que otras funciones B) Permite comparar automáticamente con el mismo período del mes anterior C) Solo funciona con meses D) Requiere menos memoria

Ver respuesta

Respuesta: B) Permite comparar automáticamente con el mismo período del mes anterior

DATEADD con parámetro -1, MONTH desplaza el contexto de fecha un mes atrás automáticamente, respetando los filtros actuales. Esto hace que la comparación sea dinámica según la selección del usuario.

Pregunta 2

¿Por qué es importante marcar la tabla de calendario como "Tabla de fechas" en Power BI?

A) Mejora el rendimiento de las consultas B) Habilita funciones de inteligencia de tiempo como DATESYTD C) Permite usar colores en los gráficos D) Es obligatorio para crear relaciones

Ver respuesta

Respuesta: B) Habilita funciones de inteligencia de tiempo como DATESYTD

Marcar una tabla como tabla de fechas permite que Power BI use funciones de Time Intelligence (DATESYTD, SAMEPERIODLASTYEAR, DATEADD, etc.) correctamente. Sin esto, algunas funciones pueden no funcionar como se espera.

Pregunta 3

¿Cuál es el orden correcto de las secciones en un dashboard de marketing según la jerarquía visual?

A) Tendencias → KPIs → Filtros → Funnel B) Filtros → KPIs → Funnel/Canal → Tendencias C) Funnel → Tendencias → KPIs → Filtros D) KPIs → Filtros → Tendencias → Funnel

Ver respuesta

Respuesta: B) Filtros → KPIs → Funnel/Canal → Tendencias

La jerarquía visual correcta coloca primero los filtros (para que el usuario establezca contexto), luego los KPIs principales (información más importante), después las visualizaciones de detalle (funnel, canales), y finalmente las tendencias que muestran evolución histórica.

Completaste esta leccion?

Marca esta leccion como completada. Tu progreso se guardara en tu navegador.