Lección 26 de 36Dashboard de Marketing

Proyecto: Dashboard de campaña digital

Proyecto hands-on con datos reales de marketing.

45 minutos

Es momento de poner en práctica todo lo aprendido. En este proyecto construirás un dashboard de marketing digital completo para una empresa ficticia de e-commerce. Al finalizar, tendrás un dashboard profesional que podrás adaptar a tus propios datos.

Contexto del Proyecto

La Empresa: TechStore Digital

TechStore Digital es una tienda online de productos tecnológicos que invierte en múltiples canales de marketing digital. El equipo de marketing necesita un dashboard para:

  1. Monitorear el rendimiento de campañas en tiempo real
  2. Comparar canales para optimizar la distribución del presupuesto
  3. Identificar tendencias y estacionalidad
  4. Presentar resultados a la dirección de manera clara

Objetivos del Dashboard

Al finalizar este proyecto, tu dashboard debe responder estas preguntas:

  • ¿Cuánto estamos gastando y qué retorno obtenemos?
  • ¿Qué canal tiene el mejor ROAS?
  • ¿Cómo evolucionan nuestras métricas mes a mes?
  • ¿Cuál es nuestro costo de adquisición de cliente?
  • ¿Dónde están las oportunidades de mejora?

Parte 1: El Dataset

Descripción de los Datos

Para este proyecto, trabajarás con 3 archivos CSV que representan datos de marketing de TechStore Digital durante 2025:

Archivo 1: campañas_marketing.csv

Este archivo contiene métricas diarias de campañas publicitarias.

Columna Tipo Descripción
Fecha Date Fecha de la métrica (YYYY-MM-DD)
Canal_ID Integer Identificador del canal (1-6)
Campaña Text Nombre de la campaña
Impresiones Integer Número de veces que se mostró el anuncio
Clics Integer Número de clics en el anuncio
Gasto Decimal Inversión publicitaria en USD
Leads Integer Formularios completados
Ventas Integer Transacciones completadas
Ingresos Decimal Ingresos generados en USD

Muestra de datos:

Fecha,Canal_ID,Campaña,Impresiones,Clics,Gasto,Leads,Ventas,Ingresos
2025-01-01,1,Search_Generica,45000,1350,675.00,41,12,1440.00
2025-01-01,1,Search_Marca,28000,2100,420.00,63,22,2640.00
2025-01-01,2,Display_Remarketing,125000,875,187.50,18,5,600.00
2025-01-01,3,Facebook_Prospeccion,85000,1275,510.00,38,9,1080.00
2025-01-01,4,Instagram_Stories,62000,930,372.00,28,7,840.00
2025-01-01,5,LinkedIn_B2B,15000,225,337.50,12,3,450.00
2025-01-01,6,Email_Newsletter,0,2400,0.00,96,35,4200.00

Archivo 2: canales.csv

Tabla de dimensión con información de canales.

Canal_ID,Canal,Categoria,Tipo,Responsable
1,Google Search,Paid Search,Pagado,Ana García
2,Google Display,Display,Pagado,Ana García
3,Facebook Ads,Social Paid,Pagado,Carlos López
4,Instagram Ads,Social Paid,Pagado,Carlos López
5,LinkedIn Ads,Social Paid,Pagado,María Torres
6,Email Marketing,Email,Propio,Pedro Sánchez

Archivo 3: objetivos_mensuales.csv

Targets de marketing por mes.

Año_Mes,Gasto_Objetivo,ROAS_Objetivo,CAC_Objetivo,Clientes_Objetivo
2025-01,85000,4.0,280,300
2025-02,80000,4.0,275,290
2025-03,90000,4.2,260,345
2025-04,85000,4.0,270,315
...

Crear los Datos de Ejemplo

Si no tienes acceso a un archivo de datos real, puedes crear datos de ejemplo en Power Query.

Paso 1: Crea una nueva consulta en blanco y pega este código M:

let
    // Generar fechas de 2025
    FechaInicio = #date(2025, 1, 1),
    FechaFin = #date(2025, 12, 31),
    ListaFechas = List.Dates(FechaInicio, Duration.Days(FechaFin - FechaInicio) + 1, #duration(1,0,0,0)),

    // Canales
    Canales = {1, 2, 3, 4, 5, 6},

    // Campañas por canal
    CampanasPorCanal = [
        1 = {"Search_Generica", "Search_Marca", "Search_Productos"},
        2 = {"Display_Remarketing", "Display_Prospeccion"},
        3 = {"Facebook_Prospeccion", "Facebook_Remarketing", "Facebook_Lookalike"},
        4 = {"Instagram_Stories", "Instagram_Feed", "Instagram_Reels"},
        5 = {"LinkedIn_B2B", "LinkedIn_Awareness"},
        6 = {"Email_Newsletter", "Email_Promociones", "Email_Abandonos"}
    ],

    // Función para generar datos aleatorios con patrones
    GenerarFila = (fecha, canalId, campana) =>
        let
            // Estacionalidad: más alto en Q4 y días de semana
            MesFactor = if Date.Month(fecha) >= 10 then 1.5
                        else if Date.Month(fecha) >= 7 then 1.2
                        else 1.0,
            DiaSemana = Date.DayOfWeek(fecha, Day.Monday),
            DiaFactor = if DiaSemana < 5 then 1.0 else 0.7,

            // Base por canal
            BaseImpresiones = List.Sum({
                {45000, 125000, 85000, 62000, 15000, 0}
            }{canalId - 1}),
            BaseClics = List.Sum({
                {1500, 875, 1200, 930, 225, 2400}
            }{canalId - 1}),
            BaseCPM = List.Sum({
                {15, 1.5, 6, 6, 22.5, 0}
            }{canalId - 1}),
            BaseConversion = List.Sum({
                {0.03, 0.02, 0.025, 0.025, 0.04, 0.04}
            }{canalId - 1}),

            // Calcular métricas con variación
            Variacion = Number.RandomBetween(0.7, 1.3),
            Impresiones = if canalId = 6 then 0
                          else Number.RoundDown(BaseImpresiones * MesFactor * DiaFactor * Variacion),
            Clics = Number.RoundDown(BaseClics * MesFactor * DiaFactor * Variacion),
            Gasto = if canalId = 6 then 0
                    else Number.Round(Impresiones / 1000 * BaseCPM * Number.RandomBetween(0.9, 1.1), 2),
            Leads = Number.RoundDown(Clics * BaseConversion * Number.RandomBetween(0.8, 1.2)),
            Ventas = Number.RoundDown(Leads * 0.3 * Number.RandomBetween(0.7, 1.3)),
            Ingresos = Ventas * Number.RandomBetween(100, 150)
        in
            [
                Fecha = fecha,
                Canal_ID = canalId,
                Campaña = campana,
                Impresiones = Impresiones,
                Clics = Clics,
                Gasto = Gasto,
                Leads = Leads,
                Ventas = Ventas,
                Ingresos = Number.Round(Ingresos, 2)
            ],

    // Generar todas las combinaciones
    TodasLasCombinaciones = List.Generate(
        () => [i = 0, Datos = null],
        each [i] < List.Count(ListaFechas) * 12,  // Aproximado
        each [
            i = [i] + 1,
            FechaIdx = Number.RoundDown([i] / 12),
            CampanaIdx = Number.Mod([i], 12),
            Datos = null
        ]
    ),

    // Simplificación: crear tabla base
    TablaBase = Table.FromRecords(
        List.Transform(
            List.Generate(
                () => 0,
                each _ < List.Count(ListaFechas) * 6,
                each _ + 1
            ),
            each
                let
                    fechaIdx = Number.RoundDown(_ / 6),
                    canalIdx = Number.Mod(_, 6) + 1,
                    fecha = ListaFechas{fechaIdx},
                    campanas = Record.Field(CampanasPorCanal, Text.From(canalIdx)),
                    campana = campanas{Number.Mod(Number.RoundDown(fechaIdx / 10), List.Count(campanas))}
                in
                    GenerarFila(fecha, canalIdx, campana)
        )
    )
in
    TablaBase

Nota: Este código genera datos de ejemplo. En un proyecto real, cargarías tus propios archivos CSV o conectarías a tu plataforma de marketing.

Parte 2: Preparación de Datos

Paso 1: Cargar los Datos

  1. Abre Power BI Desktop
  2. Ve a InicioObtener datosTexto/CSV
  3. Carga los 3 archivos (o usa el código M de ejemplo)
  4. Haz clic en Transformar datos para abrir Power Query

Paso 2: Transformar campañas_marketing

En Power Query, aplica estas transformaciones:

let
    Origen = Csv.Document(File.Contents("campañas_marketing.csv")),
    EncabezadosPromovidos = Table.PromoteHeaders(Origen),
    TiposCambiados = Table.TransformColumnTypes(EncabezadosPromovidos,{
        {"Fecha", type date},
        {"Canal_ID", Int64.Type},
        {"Campaña", type text},
        {"Impresiones", Int64.Type},
        {"Clics", Int64.Type},
        {"Gasto", Currency.Type},
        {"Leads", Int64.Type},
        {"Ventas", Int64.Type},
        {"Ingresos", Currency.Type}
    }),
    // Renombrar columna Ventas a Clientes para claridad
    ColumnasRenombradas = Table.RenameColumns(TiposCambiados, {{"Ventas", "Clientes"}})
in
    ColumnasRenombradas

Paso 3: Crear Tabla de Calendario

Crea una nueva consulta con este código:

let
    FechaInicio = #date(2025, 1, 1),
    FechaFin = #date(2025, 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),
    AgregarMesCorto = Table.AddColumn(AgregarNombreMes, "Mes_Corto",
        each Date.ToText([Fecha], "MMM", "es-ES"), type text),
    AgregarTrimestre = Table.AddColumn(AgregarMesCorto, "Trimestre",
        each "Q" & Text.From(Date.QuarterOfYear([Fecha])), type text),
    AgregarAñoMes = Table.AddColumn(AgregarTrimestre, "Año_Mes",
        each Date.ToText([Fecha], "yyyy-MM"), type text),
    AgregarOrdenMes = Table.AddColumn(AgregarAñoMes, "Orden_Mes",
        each Date.Year([Fecha]) * 100 + Date.Month([Fecha]), Int64.Type)
in
    AgregarOrdenMes

Nombra esta consulta como Dim_Calendario.

Paso 4: Cerrar y Aplicar

  1. Haz clic en Cerrar y aplicar
  2. Espera a que se carguen los datos

Paso 5: Configurar Relaciones

En la vista de Modelo:

  1. Arrastra Dim_Calendario[Fecha] a Fact_Campañas[Fecha]
  2. Arrastra Dim_Canales[Canal_ID] a Fact_Campañas[Canal_ID]
  3. Verifica que las relaciones sean 1:N (uno a muchos)

Diagrama del modelo:

    Dim_Calendario            Dim_Canales
    ┌─────────────┐          ┌─────────────┐
    │ Fecha (PK)  │          │ Canal_ID(PK)│
    │ Año         │          │ Canal       │
    │ Mes         │          │ Categoria   │
    │ Trimestre   │          │ Tipo        │
    │ Año_Mes     │          │ Responsable │
    └──────┬──────┘          └──────┬──────┘
           │ 1:N                    │ 1:N
           │                        │
           ▼                        ▼
    ┌─────────────────────────────────────┐
    │         Fact_Campañas               │
    │  Fecha (FK)                         │
    │  Canal_ID (FK)                      │
    │  Campaña                            │
    │  Impresiones, Clics, Gasto, etc.    │
    └─────────────────────────────────────┘

Paso 6: Marcar Tabla de Fechas

  1. Selecciona la tabla Dim_Calendario
  2. Ve a Herramientas de tablaMarcar como tabla de fechas
  3. Selecciona la columna Fecha

Parte 3: Crear las Medidas DAX

Crea una nueva tabla llamada _Medidas para organizar tus medidas:

_Medidas = DATATABLE("Medida", STRING, {{"Placeholder"}})

Ahora crea las siguientes medidas dentro de esta tabla:

Medidas Base

Total Gasto = SUM(Fact_Campañas[Gasto])

Total Impresiones = SUM(Fact_Campañas[Impresiones])

Total Clics = SUM(Fact_Campañas[Clics])

Total Leads = SUM(Fact_Campañas[Leads])

Total Clientes = SUM(Fact_Campañas[Clientes])

Total Ingresos = SUM(Fact_Campañas[Ingresos])

Métricas de Marketing

CPM =
DIVIDE(
    [Total Gasto],
    [Total Impresiones],
    0
) * 1000

CPC =
DIVIDE(
    [Total Gasto],
    [Total Clics],
    0
)

CTR =
DIVIDE(
    [Total Clics],
    [Total Impresiones],
    0
) * 100

CPL =
DIVIDE(
    [Total Gasto],
    [Total Leads],
    0
)

CAC =
DIVIDE(
    [Total Gasto],
    [Total Clientes],
    0
)

ROAS =
DIVIDE(
    [Total Ingresos],
    [Total Gasto],
    0
)

ROAS Texto =
VAR RoasValor = [ROAS]
RETURN
IF(
    ISBLANK(RoasValor) || RoasValor = 0,
    "-",
    FORMAT(RoasValor, "0.0") & ":1"
)

Tasa Conversion =
DIVIDE(
    [Total Clientes],
    [Total Clics],
    0
) * 100

Métricas de Comparación

Gasto Mes Anterior =
CALCULATE(
    [Total Gasto],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

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

ROAS Mes Anterior =
CALCULATE(
    [ROAS],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

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

Clientes Mes Anterior =
CALCULATE(
    [Total Clientes],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

Variación Clientes MoM =
DIVIDE(
    [Total Clientes] - [Clientes Mes Anterior],
    [Clientes Mes Anterior],
    0
)

CAC Mes Anterior =
CALCULATE(
    [CAC],
    DATEADD(Dim_Calendario[Fecha], -1, MONTH)
)

Variación CAC MoM =
DIVIDE(
    [CAC] - [CAC Mes Anterior],
    [CAC Mes Anterior],
    0
)

Métricas YTD

Gasto YTD =
CALCULATE(
    [Total Gasto],
    DATESYTD(Dim_Calendario[Fecha])
)

Ingresos YTD =
CALCULATE(
    [Total Ingresos],
    DATESYTD(Dim_Calendario[Fecha])
)

Clientes YTD =
CALCULATE(
    [Total Clientes],
    DATESYTD(Dim_Calendario[Fecha])
)

ROAS YTD =
DIVIDE(
    [Ingresos YTD],
    [Gasto YTD],
    0
)

Métricas para Formato Condicional

ROAS Estado =
VAR RoasActual = [ROAS]
RETURN
SWITCH(
    TRUE(),
    ISBLANK(RoasActual), "Sin datos",
    RoasActual >= 5, "Excelente",
    RoasActual >= 4, "Bueno",
    RoasActual >= 3, "Aceptable",
    RoasActual >= 2, "Bajo",
    "Crítico"
)

Indicador Tendencia Gasto =
VAR Variacion = [Variación Gasto MoM]
RETURN
SWITCH(
    TRUE(),
    ISBLANK(Variacion), "➖",
    Variacion > 0.05, "⬆️",
    Variacion < -0.05, "⬇️",
    "➖"
)

Parte 4: Construir el Dashboard

Configuración de Página

  1. Ve a VistaTamaño de páginaPersonalizado
  2. Establece: Ancho = 1280px, Alto = 720px
  3. Fondo: #F5F7FA (gris muy claro)

Sección 1: Encabezado

  1. Inserta un Cuadro de texto

  2. Escribe: "Dashboard de Marketing Digital - TechStore"

  3. Fuente: Segoe UI Semibold, 24pt, color #35286B

  4. Posición: X=20, Y=10, Ancho=600, Alto=40

  5. Inserta otro cuadro de texto para la fecha de actualización:

  6. Usa esta medida para mostrar la fecha:

Última Actualización =
"Datos actualizados: " & FORMAT(MAX(Fact_Campañas[Fecha]), "DD/MM/YYYY")

Sección 2: Filtros (Segmentadores)

Crea 3 segmentadores en línea:

Segmentador 1: Período

  • Campo: Dim_Calendario[Año_Mes]
  • Tipo: Desplegable
  • Posición: X=20, Y=60, Ancho=200, Alto=40

Segmentador 2: Canal

  • Campo: Dim_Canales[Canal]
  • Tipo: Desplegable con "Seleccionar todo"
  • Posición: X=240, Y=60, Ancho=200, Alto=40

Segmentador 3: Campaña

  • Campo: Fact_Campañas[Campaña]
  • Tipo: Desplegable
  • Posición: X=460, Y=60, Ancho=200, Alto=40

Sección 3: KPIs (Tarjetas)

Crea 4 tarjetas horizontales:

Tarjeta 1: Gasto Total

Campo: [Total Gasto]
Formato: Moneda, 0 decimales, K para miles
Posición: X=20, Y=110, Ancho=295, Alto=120
Título: "Inversión"
Subtítulo: medida [Variación Gasto MoM]

Tarjeta 2: ROAS

Campo: [ROAS Texto]
Posición: X=335, Y=110, Ancho=295, Alto=120
Título: "ROAS"
Subtítulo: medida [Variación ROAS MoM]
Color fondo condicional basado en [ROAS Estado]

Tarjeta 3: CAC

Campo: [CAC]
Formato: Moneda, 0 decimales
Posición: X=650, Y=110, Ancho=295, Alto=120
Título: "CAC"
Subtítulo: medida [Variación CAC MoM]

Tarjeta 4: Clientes

Campo: [Total Clientes]
Formato: Número entero
Posición: X=965, Y=110, Ancho=295, Alto=120
Título: "Clientes Nuevos"
Subtítulo: medida [Variación Clientes MoM]

Sección 4: Funnel de Conversión

  1. Inserta un Gráfico de embudo
  2. Grupo: Crea una tabla calculada para el funnel
Tabla_Funnel =
VAR Impresiones = [Total Impresiones]
VAR Clics = [Total Clics]
VAR Leads = [Total Leads]
VAR Clientes = [Total Clientes]
RETURN
DATATABLE(
    "Etapa", STRING,
    "Orden", INTEGER,
    "Cantidad", INTEGER,
    {
        {"Impresiones", 1, Impresiones},
        {"Clics", 2, Clics},
        {"Leads", 3, Leads},
        {"Clientes", 4, Clientes}
    }
)

O usa un gráfico de barras horizontal con estas medidas:

Funnel Impresiones = [Total Impresiones]
Funnel Clics = [Total Clics]
Funnel Leads = [Total Leads]
Funnel Clientes = [Total Clientes]

Posición: X=20, Y=250, Ancho=400, Alto=250

Sección 5: Rendimiento por Canal

  1. Inserta una Matriz
  2. Filas: Dim_Canales[Canal]
  3. Valores: [Total Gasto], [Total Clientes], [ROAS], [CAC]
  4. Posición: X=440, Y=250, Ancho=400, Alto=250

Formato condicional:

  • Columna ROAS: Barras de datos (verde)
  • Columna CAC: Escala de colores (verde = bajo, rojo = alto)

Sección 6: Tendencia de ROAS y Gasto

  1. Inserta un Gráfico combinado de líneas y columnas
  2. Eje X: Dim_Calendario[Año_Mes] (ordenar por Orden_Mes)
  3. Columnas: [Total Gasto]
  4. Línea: [ROAS] (eje secundario)
  5. Posición: X=860, Y=250, Ancho=400, Alto=250

Configuración:

  • Eje Y primario: Título = "Gasto ($)", Formato moneda
  • Eje Y secundario: Título = "ROAS", Rango 0-8
  • Colores: Columnas = #AE4291, Línea = #35286B

Sección 7: Tendencia Mensual Detallada

  1. Inserta un Gráfico de líneas
  2. Eje X: Dim_Calendario[Año_Mes]
  3. Valores: [Total Clientes]
  4. Leyenda: Dim_Canales[Canal]
  5. Posición: X=20, Y=520, Ancho=620, Alto=180

Sección 8: Top Campañas

  1. Inserta una Tabla
  2. Columnas: Fact_Campañas[Campaña], [Total Gasto], [Total Clientes], [ROAS]
  3. Ordenar por [Total Gasto] descendente
  4. Posición: X=660, Y=520, Ancho=600, Alto=180

Parte 5: Layout Final

┌──────────────────────────────────────────────────────────────────────────────┐
│ Dashboard de Marketing Digital - TechStore      Última actualización: 27/01 │
├──────────────────────────────────────────────────────────────────────────────┤
│ [Período ▼]      [Canal ▼]         [Campaña ▼]                              │
├─────────────┬─────────────┬─────────────┬─────────────┬──────────────────────┤
│  INVERSIÓN  │    ROAS     │     CAC     │  CLIENTES   │                      │
│   $125.4K   │   4.2:1     │    $278     │    451      │                      │
│   ▲ +12%    │   ▲ +0.3    │   ▼ -8%     │   ▲ +18%    │                      │
├─────────────┴─────────────┴─────────────┴─────────────┘                      │
│                                                                              │
│ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────────┐ │
│ │   FUNNEL            │ │  POR CANAL          │ │   ROAS & GASTO          │ │
│ │                     │ │                     │ │                         │ │
│ │ ████████ 2.5M       │ │ Google    4.5:1     │ │    ╭──╮                 │ │
│ │ ████ 45K            │ │ Meta      3.8:1     │ │   ╭╯  ╰───╮             │ │
│ │ ██ 1.8K             │ │ LinkedIn  2.9:1     │ │  ╭╯       ╰──╮          │ │
│ │ █ 451               │ │ Email     6.2:1     │ │ ╭╯           ╰──        │ │
│ │                     │ │                     │ │                         │ │
│ └─────────────────────┘ └─────────────────────┘ └─────────────────────────┘ │
│                                                                              │
│ ┌────────────────────────────────┐ ┌──────────────────────────────────────┐ │
│ │  CLIENTES POR CANAL (Mensual) │ │  TOP CAMPAÑAS                        │ │
│ │                                │ │  Campaña        Gasto   Clientes ROAS│ │
│ │  Google ─────────────          │ │  Search_Marca   $45K      180   5.2  │ │
│ │  Meta   ─────────              │ │  Email_Promos   $0        165   ∞    │ │
│ │  Email  ─────                  │ │  FB_Remarket    $32K      120   4.1  │ │
│ │                                │ │                                      │ │
│ └────────────────────────────────┘ └──────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘

Parte 6: Guía de Interpretación

Una vez completado el dashboard, aquí está cómo interpretarlo:

Lectura de KPIs

KPI Qué buscar Acción si es bajo
Inversión Ejecución del presupuesto Verificar si hay campañas pausadas
ROAS Mínimo 4:1 para e-commerce Optimizar campañas de bajo rendimiento
CAC Menor que LTV / 3 Revisar segmentación y creativos
Clientes Crecimiento mes a mes Aumentar presupuesto en canales top

Análisis del Funnel

Impresiones → Clics = CTR (objetivo: >1.5%)
    Si CTR bajo: Revisar creativos y segmentación

Clics → Leads = Tasa conversión landing (objetivo: >3%)
    Si tasa baja: Optimizar landing page, oferta

Leads → Clientes = Tasa cierre (objetivo: >20%)
    Si tasa baja: Revisar calidad de leads, proceso de ventas

Comparación por Canal

Canal ROAS Esperado Mejor uso
Email 5-10:1 Retención, promociones
Google Search 4-6:1 Captura de demanda
Facebook 3-5:1 Prospección, awareness
LinkedIn 2-4:1 B2B, alto ticket
Display 2-3:1 Remarketing

Acciones según Hallazgos

Si ROAS de un canal < 3:1:

  1. Revisar segmentación de audiencia
  2. Probar nuevos creativos
  3. Ajustar pujas/presupuesto
  4. Considerar pausar si no mejora

Si CAC está subiendo:

  1. Analizar calidad de tráfico
  2. Optimizar landing pages
  3. Revisar proceso de conversión
  4. Verificar competencia en subastas

Si Email tiene ROAS infinito (gasto = 0):

  • Es correcto si solo cuentas envíos sin costo
  • Considera incluir costo de herramienta + tiempo

Parte 7: Entrega del Proyecto

Checklist Final

Antes de considerar el proyecto completo, verifica:

  • Los 4 KPIs principales muestran valores correctos
  • El funnel muestra las 4 etapas con tasas de conversión
  • La matriz de canales ordena por ROAS o Gasto
  • El gráfico de tendencia muestra al menos 6 meses
  • Los filtros funcionan correctamente
  • El formato condicional resalta buenos/malos valores
  • Los títulos y etiquetas son claros
  • La paleta de colores es consistente

Mejoras Opcionales

Si terminas antes, considera agregar:

  1. Página de detalle con drill-through por canal
  2. Tooltip personalizado con mini-gráfico de tendencia
  3. Bookmarks para vistas ejecutiva vs operativa
  4. Alertas para métricas fuera de rango
  5. Comparación YoY además de MoM

Puntos Clave del Proyecto

  1. El modelo de datos es la base: Sin un modelo bien estructurado, las medidas no funcionan correctamente

  2. Las medidas DAX se construyen gradualmente: Primero las base, luego las derivadas, finalmente las de comparación

  3. El layout sigue una jerarquía: De lo más importante (KPIs) a lo más detallado (tablas)

  4. El funnel cuenta una historia: Dónde se pierden los usuarios en el proceso

  5. La comparación temporal es clave: MoM y YTD dan contexto a los números actuales

  6. El dashboard debe responder preguntas: Cada visual existe para un propósito específico


Quiz de Comprensión

Pregunta 1

En el modelo de datos de marketing, ¿por qué es importante que la relación entre Dim_Calendario y Fact_Campañas sea 1:N?

A) Porque cada fecha puede tener múltiples registros de campañas B) Porque es más rápido para Power BI C) Porque permite usar colores D) Porque es obligatorio en Power BI

Ver respuesta

Respuesta: A) Porque cada fecha puede tener múltiples registros de campañas

Una fecha (ej: 2025-01-15) puede tener múltiples filas en la tabla de campañas (una por cada canal/campaña activa ese día). La relación 1:N refleja esta realidad: 1 fecha se relaciona con N registros de métricas.

Pregunta 2

Si el ROAS de Email Marketing aparece como infinito o muy alto, ¿qué podría estar causándolo?

A) Un error en la fórmula DAX B) El gasto registrado es $0 pero hay ingresos atribuidos C) Power BI no puede calcular divisiones D) Los datos están corruptos

Ver respuesta

Respuesta: B) El gasto registrado es $0 pero hay ingresos atribuidos

ROAS = Ingresos / Gasto. Si el email marketing no tiene costo de publicidad registrado (gasto = $0), pero sí genera ingresos, la división resulta en infinito. En la práctica, deberías considerar el costo de la herramienta de email y el tiempo de creación.

Pregunta 3

¿Cuál es el orden correcto para construir las medidas DAX en un proyecto de marketing?

A) Comparación → Base → Formato → Derivadas B) Base → Derivadas → Comparación → Formato C) Formato → Base → Comparación → Derivadas D) Derivadas → Comparación → Base → Formato

Ver respuesta

Respuesta: B) Base → Derivadas → Comparación → Formato

El orden correcto es:

  1. Base: SUM de columnas (Gasto, Clics, etc.)
  2. Derivadas: Calculadas con las base (CPC, CTR, ROAS)
  3. Comparación: Usan DATEADD y otras funciones de tiempo
  4. Formato: Para presentación (texto, colores, estados)

Cada capa depende de la anterior.

Pregunta 4

Si un canal tiene ROAS de 2.5:1 y el objetivo es 4:1, ¿qué acciones deberían considerarse primero?

A) Eliminar el canal inmediatamente B) Duplicar el presupuesto para obtener más datos C) Revisar segmentación, creativos y landing pages antes de decidir D) Ignorarlo si representa poco presupuesto

Ver respuesta

Respuesta: C) Revisar segmentación, creativos y landing pages antes de decidir

Antes de eliminar o escalar un canal, debes entender POR QUÉ el rendimiento es bajo. Revisar segmentación (¿audiencia correcta?), creativos (¿mensajes relevantes?) y landing pages (¿conversión optimizada?) puede revelar oportunidades de mejora. Solo después de optimizar y no ver mejoras, considerar reducir inversión.

Completaste esta leccion?

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