Modelado de atribución con SQL: más allá del "último clic"
La agrupación de canales predeterminada de GA4 te está mintiendo. Cómo escribir SQL sin formato en BigQuery para calcular la atribución basada en la posición y la caída del tiempo.
Su Panel de control dice: “Ingresos por correo electrónico: \€50k”. Su administrador de Facebook dice: “Ingresos de FB: \€80k”. Tu total de Shopify es: ”\€100k”. Las matemáticas no cuadran. ¿Por qué? Doble atribución. Tanto Facebook como Email reclaman crédito por la misma venta. La mayoría de las herramientas utilizan la atribución de Último clic. El último toque obtiene el 100% del crédito. Esto acaba con su marketing de la parte superior del embudo (TikTok, Influencers) porque rara vez generan el último clic. Impulsan el primer clic.
Por qué Maison Code habla de esto
En Maison Code Paris, actuamos como la conciencia arquitectónica de nuestros clientes. A menudo heredamos stacks “modernos” construidos sin una comprensión fundamental de la escala.
Discutimos este tema porque representa un punto de inflexión crítico en la madurez de la ingeniería. Implementarlo correctamente diferencia un MVP frágil de una plataforma resistente de nivel empresarial.
Por qué Maison Code habla sobre ingeniería de datos
El marketing ya no es “artes y oficios”. Es “Ciencia de datos”. Si gasta \€1 millón al año en anuncios sin un almacén de datos, está volando a ciegas. Implementamos Modelos de Atribución Personalizados. No confiamos en la caja negra de Google. Confiamos en SQL sin formato. Ayudamos a los directores financieros a comprender a dónde va realmente el dinero.
1. El canal de datos sin procesar
Para solucionar este problema, necesitamos datos sin procesar del flujo de clics.
Exportamos datos de GA4 a BigQuery.
Tenemos una tabla eventos con user_pseudo_id, event_name, timestamp, source, medium, campaign.
La interfaz de usuario GA4 estándar agrega esto. BigQuery nos proporciona el registro sin formato.
Ahora podemos reconstruir la Ruta del usuario.
2. Los modelos
1. Atribución lineal (socialista)
Cada punto de contacto recibe el mismo crédito.
Ruta de usuario: TikTok -> Google Ads -> Correo electrónico -> Comprar (€100).
*TikTok: \€33,33
*Google: \€33,33
- Correo electrónico: \€33.33
-- BigQuery SQL para atribución lineal
CON caminos COMO (
SELECCIONAR
ID_usuario,
ID_transacción,
ARRAY_AGG(fuente ORDER BY marca de tiempo) como puntos de contacto,
ANY_VALUE(ingresos) como ingresos_totales
DE `análisis.eventos`
AGRUPAR POR 1,2
)
SELECCIONAR
fuente,
SUM(ingresos_totales / ARRAY_LENGTH(puntos de contacto)) como ingresos_atribuidos
DESDE rutas, UNNEST (puntos de contacto) como fuente
AGRUPAR POR 1
2. Decaimiento del tiempo (realista)
Los toques más cercanos a la conversión valen más.
Aplicamos una fórmula de vida media (por ejemplo, 7 días).
Ruta de usuario: TikTok (hace 10 días) -> Correo electrónico (hoy) -> Comprar.
El correo electrónico obtiene el 80%. TikTok obtiene el 20%.
Esto respeta el poder de “Cierre” del canal.
3. Basado en posición (en forma de U)
El primer toque (descubrimiento) y el último toque (más cerca) son los héroes. El medio es el “Mantenedor”. *Primero: 40%
- Último: 40%
- Medio: 20% (Compartido). Este es el estándar para los equipos de Crecimiento. Premia al “Cazador” (TikTok) y al “Cercador” (Correo electrónico).
3. El problema de la ventana (retrospectiva)
¿Qué tan atrás miras?
- Valor predeterminado de Facebook: clic de 7 días, vista de 1 día.
*Ciclo de compra de lujo: 45 días.
Si vende muebles caros, una ventana de 7 días es inútil.
Con SQL, podemos configurar
LOOKBACK_WINDOWen 90 días. Podemos analizar el “Tiempo de conversión”. Vemos que los anuncios de TikTok tardan 20 días en madurar, mientras que los anuncios de Google se convierten en 2 horas.
4. Resolución de identidad (entre dispositivos)
La parte más difícil.
El usuario hace clic en un anuncio en iPhone (móvil).
El usuario compra en una computadora portátil (escritorio).
GA4 ve 2 usuarios.
Usamos costura ID de usuario.
Cuando inician sesión o hacen clic en un enlace de correo electrónico (con hash user_id), asignamos device_id_A y device_id_B a master_user_X.
Esto unifica el camino.
Sin esto, se cuentan demasiado los usuarios y se subestima el impacto móvil.
5. La zona de pruebas de privacidad (la muerte de las cookies)
Safari (ITP) elimina las cookies después de 7 días. Chrome está desaprobando las cookies de terceros. El seguimiento del lado del cliente está muriendo. Seguimiento del lado del servidor (CAPI) es la respuesta. Enviamos eventos desde el Servidor (Shopify/Node.js) directamente a Facebook/Google. Pasamos por alto el navegador. Esto mejora la precisión de los datos en un 20%. Es robusto contra los bloqueadores de anuncios.
5. El Apocalipsis de las Galletas (Detallado)
Las galletas están muriendo. ITP (Prevención de seguimiento inteligente) en Safari limita la vida útil de las cookies a 7 días (o 24 horas). Firefox los bloquea de forma predeterminada. Chrome los está eliminando gradualmente. Esto significa que los “usuarios recurrentes” parecen “usuarios nuevos”. Sus métricas de “Adquisición de nuevos usuarios” están infladas. Su “Retención” está desinflada. La solución:
- Cookies propias: configure cookies
HttpOnlyde su propio dominio (api.maisoncode.paris). La ITP los trata mejor. - ID persistentes: solicite a los usuarios que inicien sesión temprano. Utilice el correo electrónico como ID, no como cookie.
6. Salas limpias de datos (Snowflake / Ads Data Hub)
En un mundo en el que la privacidad es lo primero, no puedes compartir datos de nivel de usuario con Google. Ingrese Datos de Salas Limpias. Usted carga sus datos (correos electrónicos con hash) a un entorno seguro neutral (Snowflake). Google carga sus datos (correos electrónicos con hash que vieron anuncios). La Sala Limpia los combina y le brinda Resultados agregados. “500 personas que vieron el anuncio compraron el producto”. Nunca ves quiénes son. Google nunca ve tu CRM. Este es el futuro de la medición de anuncios.
7. Pruebas de incrementalidad (anuncios fantasma)
Los modelos de atribución son teóricos. Incrementalidad es científica. La pregunta: “¿Habrían comprado de todos modos?” La prueba: *Grupo A: Ve el Anuncio.
- Grupo B (Control): Ve un “Anuncio fantasma” (o un anuncio de servicio público genérico) o nada.
Compara tasas de conversión.
Elevación = (Tasa de conversión A - Tasa de conversión B). Si Lift es 0, sus anuncios son inútiles, incluso si GA4 dice que generaron \€1 millón. Deja de pagar por conversiones que habrías obtenido gratis.
8. El modelo de cadena de Markov (algorítmico)
Lineal y en forma de U son heurísticos (reglas que inventamos). Cadenas de Markov son probabilísticas. El algoritmo analiza 10.000 caminos. Calcula el “Efecto de eliminación”. “Si eliminamos TikTok de la mezcla, ¿cuántas conversiones perdemos?” Este es el valor “Verdadero” del canal. Requiere Python/R, pero es el estándar de oro.
9. El análisis de la ventana de conversión
SQL nos permite responder preguntas que GA4 no puede. “¿Un usuario que visita 5 veces compra más que un usuario que visita 2 veces?” (Sorprendentemente, a menudo no. Pueden ser bots o estar indecisos). “¿Cuál es el tiempo promedio entre el primer clic y la compra?” Si son 3 minutos, tu SEO está funcionando. Si son 30 días, su Email Nurture está funcionando. Segmentamos esto por categoría de producto. Los “calcetines” se compran rápido. Los “sofás” se compran lentamente.
10. Conversiones sin conexión (integración de POS)
Si tiene tiendas físicas, sus anuncios en línea generan ventas fuera de línea. Si no realiza un seguimiento de esto, no invierte lo suficiente en anuncios. Flujo de trabajo:
- Captura
customer_emailoloyalty_iden el Punto de Venta (POS). - Cargue esta lista en Facebook/Google (API de eventos sin conexión).
- La plataforma publicitaria coincide con el usuario.
- “Adquirido a través de Instagram -> Comprado en la tienda de París”. Esto cierra el círculo. A menudo duplica el ROAS informado de sus campañas.
11. La trampa del ROAS (ingresos frente a beneficios)
Los gerentes de marketing optimizan el ROAS (ingresos/inversión publicitaria).
Pero los ingresos no son ganancias.
Si vende un producto de bajo margen con un alto ROAS, pierde dinero.
Calculamos POAS (beneficio de la inversión publicitaria).
POAS = (Ingresos - COGS - Envío - Impuestos) / Inversión publicitaria.
Extraemos datos de margen de Shopify a BigQuery.
Le decimos al Ad Manager: “Elimine la campaña con 4.0 ROAS porque tiene 0,8 POAS”.
“Escale la campaña con un ROAS de 2,0 porque tiene un POAS de 1,5”.
Optimice la cuenta bancaria, no la métrica personalizada.
12. El futuro: modelado de mezcla de medios (MMM)
A medida que el seguimiento muere, volvemos a la década de 1960. Econometría. Correlacionamos los “picos de inversión publicitaria” con los “picos de ingresos”. “Cada vez que gastamos 10.000 dólares en televisión, la búsqueda orgánica aumenta un 5%”. Usamos bibliotecas de código abierto como Meta Robyn (R) o Google LightweightMMM (Python) para ejecutar modelos de regresión bayesiana. A este modelo no le importan las cookies. Se preocupa por la correlación. Es la fuente definitiva de verdad en un mundo en el que la privacidad es lo primero.
13. Conclusión
La atribución no es la verdad. Es una negociación. No existe un modelo “correcto”. Pero el “último clic” es definitivamente el modelo “incorrecto” de crecimiento. Al pasar a SQL, usted es dueño de la lógica. Puede ver el valor de sus campañas de reconocimiento de marca. Deja de adivinar. Comience a consultar.
¿Quemar dinero en anuncios?
Auditamos sus modelos de atribución para encontrar un ROAS real utilizando BigQuery y dbt.