Optimización de Campañas de Ads mediante IA Causal (Parte I: Atribución del efecto indirecto en campañas de Prospecting)

Introducción

En el comercio electrónico las empresas invierten grandes sumas en campañas publicitarias, específicamente en campañas de Prospecting, que atraen nuevos visitantes, y en campañas de Retargeting, que reimpactan a aquellos usuarios que no realizaron una compra en su primera visita. A menudo el rendimiento de estas campañas se evalúa utilizando modelos tradicionales de atribución, como el Marketing Mix Modeling (MMM). Sin embargo, estos modelos capturan solo los efectos directos, ignorando los efectos indirectos entre las campañas, lo que puede llevar a una asignación ineficiente de los recursos.

El MMM, basado en regresiones lineales, no tiene en cuenta la interacción entre diferentes campañas de marketing, como el Retargeting, que se beneficia del tráfico generado previamente. Este enfoque puede subestimar el verdadero valor de las campañas de Prospecting, lo que resulta en decisiones equivocadas sobre la inversión y optimización de estas estrategias. Este artículo tiene como objetivo mostrar cómo la IA Causal ofrece una solución más precisa para la optimización de campañas de Ads. Al capturar tanto los efectos directos como indirectos de las campañas, la IA Causal proporciona una visión más completa de su rendimiento y permite a los anunciantes maximizar el retorno de la inversión en Ads (ROAS). A través de un experimento con datos sintéticos y un código replicable, demostraremos cómo la IA Causal supera a los enfoques tradicionales en la optimización de las campañas.

En este artículo, además de presentar el enfoque de IA Causal para la optimización de campañas publicitarias, se incluye un enlace a un Google Colab para que profesionales como mediabuyers, data scientists o analistas puedan replicar el experimento. De esta forma, podrán aplicar el análisis a sus propios datos y descubrir cómo la IA Causal puede transformar la manera en que optimizan sus campañas de Prospecting y Retargeting.

Objetivo del Experimento

El objetivo es comparar cómo los enfoques tradicionales, como el MMM, subestiman el impacto de las campañas de Prospecting al capturar solo los efectos directos, mientras que el análisis causal estima el impacto total, incluyendo tanto los efectos directos como los indirectos, derivados de las campañas de Retargeting.

El experimento utiliza datos sintéticos para mostrar cómo las campañas de Prospecting no solo impulsan ventas directamente, sino que también nutren las campañas de Retargeting, las cuales convierten más usuarios en clientes. El análisis causal permite capturar ambas dinámicas y optimizar las campañas de Ads, algo que los modelos tradicionales no logran.

Enfoque Metodológico

1. Enfoque Tradicional: Marketing Mix Modeling (MMM)

El enfoque tradicional utiliza la regresión lineal para medir el impacto directo de las campañas de Prospecting sobre las Ventas. Este modelo no tiene en cuenta la interacción entre las campañas, particularmente cómo el tráfico impulsa el Retargeting. Al ignorar estos efectos indirectos, el MMM tiende a subestimar la verdadera contribución de las campañas de Prospecting, lo que puede llevar a decisiones subóptimas en la asignación de presupuesto publicitario.

2. Enfoque Causal: Optimización mediante IA Causal

La IA Causal, por el contrario, modela tanto los efectos directos como los indirectos de las campañas de Ads. Este enfoque reconoce que las campañas de Prospecting no solo generan ventas de forma directa, sino que también nutren y aumentan la efectividad de las campañas de Retargeting. Al no ajustar por las variables de Retargeting, el análisis causal permite estimar el impacto total de las campañas de Prospecting, proporcionando una visión más completa para la optimización de la inversión publicitaria.

Creación del Dataset Sintético

Para demostrar cómo la IA Causal optimiza las campañas de Ads, generamos un dataset sintético que refleja las siguientes relaciones:

  1. Demanda del Mercado (Demanda):
    • Impacta tanto en la inversión en Prospecting como en Retargeting.
    • Influye directamente en las Ventas.
  2. Inversión en la Campaña de Prospecting (Prospecting):
    • Impacto directo en las Ventas y como fuente para las campañas de Retargeting.
  3. Inversión en la Campaña de Retargeting (Retargeting):
    • Impacto directo en las Ventas y como mediadora, convirtiendo Prospecting en Ventas adicionales.

Asignamos un impacto directo de 3.0 unidades de las campañas de Prospecting en las Ventas y un impacto indirecto de 2.0 unidades a través del Retargeting, lo que da un impacto total de 5.0 unidades. Evaluaremos cómo cada enfoque (MMM y causal) estima estos impactos y cómo la IA Causal mejora la optimización de campañas.

Ejecución del Experimento (Google Colab)

# ----------------------------------
# CONFIGURACIÓN DE ENTORNO
# ----------------------------------

# Importar librerías
!pip install dowhy
import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns
from dowhy import CausalModel
# ----------------------------------
# CREACIÓN DEL DATASET SINTÉTICO
# ----------------------------------

# Fijar la semilla para reproducibilidad
np.random.seed(42)

# Definir el número de observaciones (número de días, semanas o periodos analizados)
n = 1000

# Simular Demanda
# Esta variable refleja la Demanda del mercado, que influye en las inversiones en Prospecting y Retargeting.
demanda = np.random.normal(0, 1, n)

# Simular Prospecting influenciada por Demanda
# La inversión en Prospecting depende directamente de la Demanda del mercado.
prospecting = 2000 + 500 * demanda + np.random.normal(0, 100, n)

# Simular Retargeting influenciada por Demanda y Prospecting
# La inversión en Retargeting depende de la Demanda del mercado y de la inversión en Prospecting.
retargeting = 500 + 300 * demanda + 0.5 * prospecting + np.random.normal(0, 50, n)

# Simular Ventas influenciadas por Demanda, Prospecting y Retargeting
# Las Ventas son influenciadas directamente por la Demanda del mercado, la inversión en Prospecting
# y la inversión en retargeting, con un componente de aleatoriedad.
ventas = (1000 +
          1500 * demanda +   # Efecto directo de Demanda
          3.0 * prospecting +       # Efecto directo de Prospecting
          4.0 * retargeting +       # Efecto de Retargeting
          np.random.normal(0, 1000, n))

# Crear el DataFrame con las variables simuladas
data = pd.DataFrame({
    'Demanda': demanda,
    'Prospecting': prospecting,
    'Retargeting': retargeting,
    'Ventas': ventas
})

# Mostrar las primeras filas del DataFrame
print(data.head())
# ----------------------------------
# REGRESIÓN LINEAL (enfoque tradicional similar a Marketing Mix Modeling - MMM)
# ----------------------------------

# Este modelo estima el impacto de Prospecting y Retargeting en las Ventas, ajustando por Demanda.
X_ols = data[['Demanda', 'Prospecting', 'Retargeting']]  # Variables independientes
y = data['Ventas']  # Variable dependiente (Ventas)
X_ols = sm.add_constant(X_ols)  # Añadir la constante para el modelo de regresión

# Ajustar el modelo de regresión lineal
model_ols = sm.OLS(y, X_ols).fit()

# Mostrar los resultados de la regresión lineal para Prospecting
print("Resultados de la Regresión Lineal Tradicional para Prospecting:")
print(model_ols.summary())

# Extraer los coeficientes de Prospecting y Retargeting de la regresión lineal tradicional
coef_ct_ols = model_ols.params['Tráfico']
print(f"nEfecto estimado de Prospecting por Regresión Lineal: {coef_ct_ols}")
# ----------------------------------
# ANÁLISIS CAUSAL
# ----------------------------------

# Definir el grafo causal en formato DOT para representar las relaciones causales entre las variables
graph = """
digraph {
    Demanda;
    Prospecting;
    Retargeting;
    Ventas;
    
    Demanda -> Prospecting;
    Demanda -> Retargeting;
    Demanda -> Ventas;
    Prospecting -> Retargeting;
    Prospecting -> Ventas;
    Retargeting -> Ventas;
}
"""

# Crear el modelo causal para Tráfico
model_causal_ct = CausalModel(
    data=data,
    treatment='Prospecting',
    outcome='Ventas',
    graph=graph
)

# Visualizar el grafo causal
model_causal_ct.view_model(layout="dot")

# Identificar el estimando del efecto causal para Prospecting
# Este paso define las variables tratadas y los outcomes, buscando el efecto total de Prospecting sobre Ventas.
identified_estimand_ct = model_causal_ct.identify_effect()
print(identified_estimand_ct)

# Estimar el efecto causal total de Prospecting en Ventas (análisis causal)
# Este enfoque captura tanto el efecto directo como el indirecto de Prospecting en las ventas.
estimate_ct = model_causal_ct.estimate_effect(
    identified_estimand_ct,
    method_name="backdoor.linear_regression"
)
print(f"nEstimación del efecto causal total de Prospecting en Ventas (Análisis Causal): {estimate_ct.value}")
# ----------------------------------
# COMPARACIÓN Y VISUALIZACIÓN DE RESULTADOS
# ----------------------------------

# Comparación de los resultados de ambos enfoques: Regresión Lineal Tradicional y Análisis Causal
# Aquí comparamos el efecto directo estimado por el modelo de regresión con el efecto total estimado por el análisis causal.

# Resultados para Prospecting
print(f"nEfecto de Prospecting estimado por Regresión Lineal: {coef_ct_ols}")
print(f"Efecto de Prospecting estimado por Análisis Causal: {estimate_ct.value}")

# Visualización de los resultados
# Crear un DataFrame para almacenar los resultados de ambos enfoques.
resultados = pd.DataFrame({
    'Método': ['Regresión Lineal', 'Análisis Causal'],
    'Efecto de Prospecting': [coef_ct_ols, estimate_ct.value]
})

# Graficar los resultados para mostrar la diferencia entre ambos enfoques
sns.barplot(x='Método', y='Efecto de Tráfico', data=resultados)
plt.title('Comparación de Estimaciones del Efecto de Inversión en Prospecting sobre Ventas')
plt.ylabel('Efecto Estimado')
plt.show()

Los resultados del experimento con datos sintéticos muestran las diferencias entre ambos enfoques:

  1. Enfoque Tradicional (MMM):
    • El modelo de regresión lineal capturó un coeficiente de 2.2098 sobre 5.0, subestimando el impacto de las campañas de Prospecting al ignorar los efectos indirectos.
  2. Enfoque Causal:
    • El análisis causal arrojó un coeficiente de 4.4099 sobre 5.0, capturando tanto el impacto directo como indirecto de las campañas de Prospecting en las ventas.

Este experimento demuestra que el MMM subestima el impacto total de las campañas de Prospecting, mientras que la IA Causal revela el impacto completo, mejorando significativamente la capacidad de optimización de las campañas.

Conclusión y Aplicaciones Prácticas

El análisis realizado deja claro que el MMM, al capturar solo los efectos directos, no es suficiente para optimizar correctamente las campañas de Ads. Subestimar el impacto indirecto de las campañas de Prospecting, como ocurre en los enfoques tradicionales, lleva a una asignación ineficiente de los recursos y a decisiones de inversión incorrectas.

Por el contrario, la IA Causal proporciona una estimación más precisa del impacto total de las campañas, capturando tanto los efectos directos como los indirectos. Esto permite una mejor optimización de las campañas publicitarias, logrando maximizar el ROAS y asegurando una mayor eficiencia en la asignación de presupuesto.

Recordatorio para aquellos interesados en replicar el experimento y aplicar este análisis a vuestras propias campañas de Ads y descubrir cómo la IA Causal puede optimizar vuestras estrategias de marketing. Se incluye enlace a un Google Colab con el código replicable.

Pelayo Puerta
Pelayo Puerta

Head of Growth en SaveFamily. Responsable de Marketing Digital, Paid Media, Data Science y Analítica con background en agencia, startups y empresas de base tecnológica. Causalidad > Correlación 😉

Deja un comentario