TUTORIAL · POWER BI · MKT

Pausa automática de campañas

Automatice la detención de gasto ineficiente conectando Power BI con plataformas publicitarias mediante Power Automate. Reduzca pérdidas sin intervención manual.

Power BI INTERMEDIO MKT Power BI Pro + Power Automate
Objetivo

Al terminar tendrá un flujo operativo que identifica campañas con ROI por debajo del umbral y envía la petición de pausa a la plataforma publicitaria.

Al completar este tutorial habrás implementado un sistema de análisis activo en Power BI. Los tres resultados concretos que obtendrás:

  • Consulta DAX que identifica campañas con ROI negativo
  • Flujo de Power Automate que consulta Power BI y pausa campañas vía API
  • Registro y verificación de ejecuciones con alertas básicas

Tiempo estimado: 45-75 minutos. Requisitos previos:

Obligatorio Cuenta de Microsoft 365 con Power BI Pro y Power Automate incluidos en el tenant corporativo.
Obligatorio Acceso administrativo o permiso para registrar una app en Azure AD y generar credenciales API para la plataforma publicitaria.
Recomendado Dataset en Power BI que incluya métricas por campaña: coste, ingresos, impresiones, clics y identificador de campaña.
Recomendado Cuenta sandbox o permisos de prueba en la plataforma publicitaria (por ejemplo, API de pausa de campañas).

Caso Real

El problema que resuelve este tutorial

NovaRetail - Retail omnicanal

NovaRetail detecta diariamente campañas que generan pérdidas continuadas por inversión publicitaria mal optimizada. El equipo tarda en identificar y pausar campañas con ROI negativo, lo que provoca gasto innecesario y desviación del presupuesto.

Solución: Power BI calcula ROI por campaña y Power Automate ejecuta un flujo que consulta esos resultados y envía peticiones a la API publicitaria para pausar campañas por debajo del umbral definido.

Power BI centraliza y normaliza los datos de coste e ingresos y permite medidas DAX consistentes para ROI. Power Automate añade la capa de ejecución y conexión a APIs externas, posibilitando una acción inmediata y trazable desde el entorno M365.

Clave directiva

Power BI Copilot no requiere conocimientos de DAX ni de modelado de datos para obtener respuestas analíticas de alto valor. El directivo puede interrogar el modelo semántico en lenguaje natural y obtener visualizaciones y narrativas automáticas en segundos.


Contexto

Cuándo usar este análisis

Úsalo cuando... No lo uses cuando...
  • Tienes datos consolidados de coste e ingresos por campaña y necesitas respuesta automática
  • Quieres reducir gasto publicitario ineficiente con controles automáticos y auditables
  • Tu plataforma publicitaria dispone de API para pausar campañas o editar budgets
  • Tus métricas de ingresos son cualitativas o no están vinculadas por campaña
  • Prefieres la intervención humana para cada pausa y no deseas automatizar decisiones de gasto
  • La plataforma solo permite cambios manuales sin API o integraciones

Comparativa: Copilot vs Q&A vs Smart Narratives

Función Mejor para Requiere Output
Copilot Análisis exploratorio y resúmenes ejecutivos Licencia M365 Copilot Texto narrativo + visualizaciones sugeridas
Q&A Preguntas puntuales sobre métricas específicas Modelo semántico bien etiquetado Visualización automática
Smart Narratives Comentarios automáticos en informes estáticos Power BI Pro o superior Párrafo de texto dinámico
Key Influencers Análisis causal de factores de negocio Power BI Pro o superior Árbol de factores con peso estadístico

Paso 01

Preparar el dataset en Power BI

Consolida las tablas de coste e ingresos y crea las medidas necesarias para calcular ROI y status por campaña. Asegúrate de que cada campaña tenga un identificador único que coincida con el campo usado por la API publicitaria.

  • 1
    Cargar fuentes Importa o conecta las fuentes: plataforma publicitaria, CRM y sistema de facturación. Confirma que los campos clave (CampaignID, Cost, Revenue, Fecha) están presentes y normalizados.
  • 2
    Crear medidas DAX Define medidas críticas: TotalCost = SUM(Table[Cost]); TotalRevenue = SUM(Table[Revenue]); ROI = DIVIDE([TotalRevenue]-[TotalCost],[TotalCost],0). Comprueba los resultados por campaña.
  • 3
    Publicar dataset Publica el reporte/dataset en el workspace de Power BI compartido para su consulta desde Power Automate. Anota el ID del dataset y del workspace para usar en el flujo.
Checkpoint: Dataset publicado con medida ROI válida y un campo CampaignID que coincide con el identificador de la API publicitaria.

Paso 02

Diseñar la consulta para detectar ROI negativo

Crea una consulta DAX o una vista en Power BI que devuelva las campañas cuya medida ROI esté por debajo del umbral operativo. Esta consulta será la entrada del flujo en Power Automate.

  • 1
    Escribir consulta DAX Ejemplo de tabla calculada o consulta para usar en Power Automate: EVALUATE FILTER( SUMMARIZECOLUMNS( Table[CampaignID], "ROI", [ROI] ), [ROI] < [ROI_THRESHOLD] )
  • 2
    Probar resultados en Power BI Valida que la consulta devuelve solo las campañas esperadas y exporta una muestra a CSV para comprobar CampaignID, ROI, Cost y Revenue.
  • 3
    Crear un informe o tarjeta para alertas Opcionalmente crea una tarjeta o visual con el conteo de campañas negativas y publica en un dashboard si prefieres usar alertas de tile en lugar de consultas programadas.
Checkpoint: Consulta que devuelve campañas con ROI menor que el umbral; listado con CampaignID, ROI, Cost y Revenue listo para consumo por el flujo.

Paso 03

Ejecutar el prompt o configuración principal

Este es el prompt/configuración central del tutorial. Cópialo completo, rellena las variables entre corchetes con los datos de tu empresa o situación, y ejecútalo.

  • 1
    Copia el prompt o configuración completa Selecciona todo el texto y cópialo. No modifiques la estructura — está diseñado para obtener el output más útil posible.
  • 2
    Rellena las variables entre corchetes Sustituye cada [VARIABLE] con información real de tu empresa. Cuanto más específico seas, mejor será el resultado.
  • 3
    Ejecuta y espera el resultado Pega el prompt en Copilot o configura el flujo en Power Automate. El resultado puede tardar entre 10 y 60 segundos.
Variables del prompt — sustituye cada [VARIABLE] con datos reales
[WORKSPACE_ID]ID del workspace de Power BI donde está publicado el dataset
[DATASET_ID]ID del dataset en Power BI que contiene la medida de ROI
[ROI_THRESHOLD]Valor límite de ROI por debajo del cual se pausará la campaña (por ejemplo 0 para ROI negativo)
Prompt principal — Pausa automática de campañas Eres un ingeniero de automatización que configura en Power Automate un flujo para pausar campañas publicitarias con ROI inferior a un umbral. Sigue estos pasos y devuelve un plan ejecutable y un script de configuración para Power Automate: 1) Precondiciones: Dataset publicado en Power BI con medida [ROI_MEASURE] y campo CampaignID; Workspace ID = [WORKSPACE_ID]; Dataset ID = [DATASET_ID]. 2) Crear flujo programado: usar trigger 'Recurrence' cada [FREQUENCY_MINUTES] minutos. 3) Acción Power BI: 'Run a query against a dataset' apuntando a Workspace ID [WORKSPACE_ID] y Dataset ID [DATASET_ID]. Query recomendada: EVALUATE FILTER( SUMMARIZECOLUMNS( Table[CampaignID], "ROI", [ROI_MEASURE], "Cost", SUM(Table[Cost]), "Revenue", SUM(Table[Revenue]) ), [ROI] < [ROI_THRESHOLD] ). Devuelve CampaignID, ROI, Cost, Revenue. 4) Procesamiento: Añadir 'Parse JSON' con esquema para CampaignID, ROI, Cost, Revenue. 5) Bucle Apply to each: por cada CampaignID llamar a la API publicitaria para pausar la campaña. Acción HTTP configurada así: Método: POST; URL: [AD_PLATFORM_API_URL]/accounts/[AD_ACCOUNT_ID]/campaigns/[CAMPAIGN_ID]/pause; Encabezados: Authorization: Bearer [API_CREDENTIALS_SECRET]; Content-Type: application/json; Body: {"reason":"ROI below [ROI_THRESHOLD]","executedBy":"PowerAutomate","datasetId":"[DATASET_ID]","roi":@{items('Apply_to_each')?['ROI']} }. 6) Manejo de errores: si la respuesta HTTP es 2xx, registrar en SharePoint list 'PauseLog' con campos CampaignID, ROI, Timestamp, Status='Paused'. Si 4xx/5xx, reintentar 3 veces con backoff y enviar notificación Teams a canal #marketing-alerts con detalle. 7) Seguridad: almacenar [API_CREDENTIALS_SECRET] en Azure Key Vault o en conexión segura de Power Automate; describir permisos mínimos de la app Azure AD necesaria (delegated: ads.readwrite, offline_access). 8) Entregable: proveer pasos exactos para crear el flujo en Power Automate (nombres de acciones, campos a rellenar, expresiones para Parse JSON y manejo de errores) y un ejemplo de ejecución con entradas y salidas. Devuelve un checklist para validación y un bloque de JSON de ejemplo con una ejecución exitosa y una fallida. Variables a usar: [WORKSPACE_ID], [DATASET_ID], [ROI_THRESHOLD], [AD_PLATFORM_API_URL], [AD_ACCOUNT_ID], [API_CREDENTIALS_SECRET], [FREQUENCY_MINUTES], [ROI_MEASURE].
Checkpoint: El sistema ha respondido con un output estructurado que incluye las secciones solicitadas.

Paso 04

Probar, auditar y refinar el flujo

Ejecuta pruebas controladas y revisa logs para garantizar que solo se pausan campañas válidas. Define excepciones y añade notificaciones para el equipo de marketing.

  • 1
    Ejecutar pruebas con campañas sandbox Usa un ad account de prueba o limita la lista a campañas internas. Observa la respuesta de la API y confirma que el estado de la campaña cambia correctamente.
  • 2
    Configurar alertas y registro Añade acciones en el flujo para enviar un correo o Teams con el resultado y guarda un registro en SharePoint o Dataverse para auditoría.
Checkpoint: Flujo operativo en modo productivo con logs habilitados y notificaciones al equipo de marketing.

Output

Qué vas a obtener

El prompt generará: 1) Pasos detallados para configurar el flujo en Power Automate (nombres de acciones y expresiones). 2) Esquemas JSON para Parse JSON y ejemplos de request/response. 3) Checklist de validación y logs de ejemplo. 4) Recomendaciones de seguridad y permisos.

Señal de que el output es correcto: Listado JSON de campañas pausadas con ROI, CampaignID, marca de tiempo y respuesta 2xx de la API

  • Lista de campañas con CampaignID, ROI, Cost y Revenue Ejemplo JSON de petición HTTP y respuesta 2xx Checklist de validación completado (dataset, permisos, credenciales) Registro de ejecución con timestamp y estado por campaña

Prompts de iteración

Si el primer output no es exactamente lo que necesitas, usa estos prompts de refinamiento:

Hacer el output más específico
  • cuando el output es demasiado genérico. "Ajusta el plan para el entorno [NOMBRE_TECNICO] y limita las peticiones API a 5 por minuto. Devuélveme solo las acciones de Power Automate con nombres exactos y expresiones específicas para 'Parse JSON' y para el cuerpo HTTP."
Cambiar el nivel de detalle
  • cuando necesitas más o menos profundidad. "Genera una versión resumida (máx. 10 líneas) con los pasos imprescindibles para entregar al equipo de operaciones, y una versión técnica con todos los campos y expresiones de Power Automate."
Adaptar el tono
  • cuando el tono no es el adecuado para tu audiencia. "Reformula el plan con un tono ejecutivo y directo para presentar al Comité de Dirección, destacando riesgos, controles y ahorros estimados."
Versión ejecutiva resumida
  • para compartir con el Comité de Dirección. "Resume en 6-8 frases los beneficios, riesgos y controles de la automatización, incluyendo una estimación conservadora de ahorro mensual si se pausaran campañas con ROI < [ROI_THRESHOLD]."
Señal de calidad

Un output de calidad en Power BI Copilot incluye siempre una explicación causal (por qué ocurre la variación), no solo descriptiva (qué ha ocurrido). Si el output solo describe, refina el prompt pidiendo explícitamente el análisis de causas.


ROI

Coste y retorno de inversión

incluido en M365 con Copilot Microsoft 365 Copilot / mes
30-90 segundos por ejecución (según número de campañas) Por ejecución
Alto ROI estimado

El ROI se traduce en ahorro directo al detener gastos improductivos; recuperar incluso un 10% del gasto mal optimizado suele cubrir el coste operativo del equipo y mejora la eficiencia del presupuesto publicitario en semanas.


Errores

Errores frecuentes y cómo resolverlos

Síntoma Causa probable Solución
El flujo arroja error 401 al llamar a la API Credenciales expiradas o token mal configurado en la conexión Renovar el secreto en Azure AD, actualizar la referencia en Key Vault o la conexión de Power Automate y volver a probar
La consulta Power BI devuelve cero resultados aunque hay campañas con ROI negativo La medida ROI está mal calculada o la consulta DAX usa referencia de medida incorrecta Revisar medidas DAX en Power BI, probar la consulta en Power BI Desktop y confirmar que el dataset publicado refleja los cambios
El flujo pausa campañas equivocadas Mismatch entre CampaignID en Power BI y el ID usado por la API Verificar el mapeo de identificadores, normalizar CampaignID y usar un muestreo para validar antes de activar en producción
El flujo tarda demasiado o se agota por límites de la API Falta de control de rate limit o peticiones masivas sin paginación Implementar control de tasa (delay entre requests), usar batch APIs si la plataforma lo soporta y añadir reintentos con backoff exponencial
Los logs no contienen información útil para auditoría No se registraron los cuerpos de request/response ni el contexto de ejecución Agregar acciones que registren en SharePoint/Dataverse los campos clave (CampaignID, ROI, HTTP status, response body) y activar diagnóstico en Power Automate
Precaución

Copilot en Power BI requiere que el modelo semántico esté bien etiquetado (nombres de columna descriptivos, jerarquías de fechas correctas, medidas con nombres de negocio). Un modelo mal documentado produce respuestas incorrectas o incompletas, independientemente de la calidad del prompt.


Avanzado

Modo avanzado: llevar este tutorial más lejos

El modo avanzado de Power BI se usa para crear consultas DAX complejas, editar el código M en Power Query y preparar un dataset optimizado para consultas programadas. Permite generar tablas y medidas que el flujo de Power Automate consumirá de forma fiable.

Cuándo es especialmente valioso: Especialmente valioso cuando el dataset es grande, se necesita baja latencia en las consultas y se pretende ejecutar flujos periódicos que dependan de datos actualizados sin penalizar rendimiento.

  1. 1
    Abrir Power Query y optimizar cargas: habilitar filtros de fila y columnas para reducir volumen
  2. 2
    Crear medidas DAX específicas para ROI y métricas de control, y validar en muestras históricas
  3. 3
    Configurar incremental refresh en el dataset para garantizar tiempos de respuesta rápidos
  4. 4
    Exponer una vista o consulta que devuelva solo las columnas necesarias (CampaignID, ROI, Cost, Revenue) para la acción automática
Configuración avanzada Actúa como arquitecto de datos Power BI avanzado. Genera: 1) Código M optimizado para las tablas de coste y revenue con limpieza y tipos correctos. 2) Medidas DAX robustas con manejo de nulos para TotalCost, TotalRevenue y ROI. 3) Definición de incremental refresh (tabla, periodo, policy) y parámetros para particionado por fecha. 4) Consulta DAX final lista para 'Run a query against a dataset' que devuelva CampaignID, ROI, Cost y Revenue. Incluye ejemplos de pruebas unitarias (filtrado por fecha y campañas de control) y recomendaciones de indexación/modelado para reducir latencia en Power Automate.

Siguiente paso: Configura un entorno de preproducción (workspace separado) y ejecuta el flujo en modo limitado durante 7 días con notificaciones antes de liberar la automatización en producción.