¿Qué es la atribución de canal? Modelado de atribución de canal

attribution-colby-1200-800x450-2739621-5822257-png

Introducción

En un recorrido típico del cliente ‘desde pensar hasta comprar’, un cliente pasa por múltiples puntos de contacto antes de concentrarse en el producto final para comprar. Esto es aún más prominente en el caso de las ventas de comercio electrónico. Es relativamente más fácil rastrear cuáles son los diferentes puntos de contacto que ha encontrado el cliente antes de realizar la compra final.

attribution-colby-1200-800x450-6060540

Fuente: MarTech Today

A medida que el marketing se mueve cada vez más hacia el lado de las cosas impulsado por el consumidor, identificar los canales correctos para los clientes objetivo se ha vuelto fundamental para las empresas. Esto ayuda a las empresas a optimizar su inversión en marketing y dirigirse a los clientes adecuados en los lugares adecuados.

La mayoría de las veces, las empresas suelen invertir en el último canal que encuentran los clientes antes de realizar la compra final. Sin embargo, este puede no ser siempre el enfoque correcto. Hay varios canales que preceden a ese canal que eventualmente impulsan la conversión del cliente. El concepto subyacente para estudiar este comportamiento se conoce como «modelo de atribución multicanal».

En este artículo, analizamos qué es la atribución de canal y cómo se relaciona con el concepto de cadenas de Markov. También tomaremos un estudio de caso de una empresa de comercio electrónico para comprender cómo funciona este concepto, tanto teórica como prácticamente (usando R).

Tabla de contenido

  1. ¿Qué es la atribución de canal?
    • Cadenas de Markov
    • Efecto de eliminación
  2. Estudio de caso de una empresa de comercio electrónico
  3. Implementación en R

¿Qué es la atribución de canal?

Google Analytics ofrece un conjunto estándar de reglas para el modelado de atribuciones. Según Google, “Un modelo de atribución es la regla, o conjunto de reglas, que determina cómo se asigna el crédito por las ventas y las conversiones a los puntos de contacto en las rutas de conversión. Por ejemplo, el modelo Última interacción en Analytics asigna el 100% de crédito a los puntos de contacto finales (es decir, los clics) que preceden inmediatamente a las ventas o conversiones. Por el contrario, el modelo de Primera interacción asigna el 100% del crédito a los puntos de contacto que inician las rutas de conversión «.

Veremos el último modelo de interacción y el primer modelo de interacción más adelante en este artículo. Antes de eso, tomemos un pequeño ejemplo y comprendamos un poco más la atribución del canal. Digamos que tenemos un diagrama de transición como se muestra a continuación:

ca-5997237

En el escenario anterior, un cliente puede comenzar su viaje a través del canal ‘C1’ o el canal ‘C2’. La probabilidad de comenzar con C1 o C2 es del 50% (o 0.5) cada uno. Calculemos primero la probabilidad general de conversión y luego vayamos más allá para ver el efecto de cada uno de los canales.

P (conversión) = P (C1 -> C2 -> C3 -> Conversión) + P (C2 -> C3 -> Conversión)

= 0,5 * 0,5 * 1 * 0,6 + 0,5 * 1 * 0,6
= 0,15 + 0,3
= 0,45

Cadenas de Markov

Las cadenas de Markov son un proceso que mapea el movimiento y proporciona una distribución de probabilidad para pasar de un estado a otro. Una cadena de Markov se define por tres propiedades:

  • Espacio de Estados – conjunto de todos los estados en los que el proceso podría existir potencialmente
  • Operador de transición –La probabilidad de pasar de un estado a otro
  • Distribución de probabilidad del estado actual – distribución de probabilidad de estar en cualquiera de los estados al inicio del proceso

Conocemos las etapas por las que podemos pasar, la probabilidad de movernos de cada uno de los caminos y conocemos el estado actual. Esto se parece a las cadenas de Markov, ¿no?

Efecto de eliminación

Esta es, de hecho, una aplicación de cadenas de Markov. Vamos a volver a esto más adelante; sigamos nuestro ejemplo por ahora. Si tuviéramos que averiguar cuál es la contribución del canal 1 en el viaje de nuestro cliente desde el principio hasta el final de la conversión, utilizaremos el principio de efecto de eliminación. El principio del efecto de eliminación dice que si queremos encontrar la contribución de cada canal en el recorrido del cliente, podemos hacerlo eliminando cada canal y ver cuántas conversiones están ocurriendo sin que ese canal esté en su lugar.

Por ejemplo, supongamos que tenemos que calcular la contribución del canal C1. Eliminaremos el canal C1 del modelo y veremos cuántas conversiones están sucediendo sin C1 en la imagen, es decir, conversión total cuando todos los canales están intactos. Calculemos para el canal C1:

ca1-6850867

P (Conversión después de eliminar C1) = P (C2 -> C3 -> Convertir)

= 0,5 * 1 * 0,6

= 0,3

El 30% de las interacciones con el cliente se pueden convertir sin que el canal C1 esté en su lugar; mientras que con C1 intacto, se pueden convertir el 45% de interacciones. Entonces, el efecto de eliminación de C1 es

0,3 / 0,45 = 0,666.

El efecto de eliminación de C2 y C3 es 1 (puede intentar calcularlo, pero piense intuitivamente. Si elimináramos C2 o C3, ¿podríamos completar alguna conversión?).

Esta es una aplicación muy útil de las cadenas de Markov. En el caso anterior, todos los canales – C1, C2, C3 (en diferentes etapas) – se denominan estados de transición; mientras que la probabilidad de pasar de un canal a otro se llama probabilidad de transición.

El viaje del cliente, que es una secuencia de canales, se puede considerar como una cadena en un gráfico de Markov dirigido donde cada vértice es un estado (canal / punto de contacto), y cada borde representa la probabilidad de transición de pasar de un estado a otro. Dado que la probabilidad de alcanzar un estado depende solo del estado anterior, se puede considerar como una cadena de Markov sin memoria.

Estudio de caso de una empresa de comercio electrónico

Tomemos un caso de estudio de la vida real y veamos cómo podemos implementar el modelo de atribución de canal.

Una empresa de comercio electrónico realizó una encuesta y recopiló datos de sus clientes. Esto puede considerarse como población representativa. En la encuesta, la empresa recopiló datos sobre los distintos puntos de contacto que visitan los clientes antes de comprar finalmente el producto en su sitio web.

En total, hay 19 canales donde los clientes pueden encontrar el producto o la publicidad del producto. Después de los 19 canales, hay tres casos más:

  • # 20 – el cliente ha decidido qué dispositivo comprar;
  • # 21 – el cliente ha realizado la compra final y;
  • # 22 – el cliente aún no se ha decidido.

Las categorías generales de canales son las siguientes:

Categoría Canal
Sitio web (1,2,3) Sitio web de la empresa o sitio web de la competencia
Informes de investigación (4,5,6,7,8) Informes de investigación de asesoramiento de la industria
Online / Reseñas (9,10) Búsquedas orgánicas, foros
Comparación de precios (11) Agregadores
Amigos (12,13) Red social
Experto (14) Experto en línea o fuera de línea
Comercios (15,16,17) Tiendas físicas
Misc. (18,19) Otros, como campañas promocionales en varias ubicaciones.

Ahora, necesitamos ayudar a la empresa de comercio electrónico a identificar la estrategia adecuada para invertir en canales de marketing. ¿En qué canales debería centrarse? ¿En qué canales debería invertir la empresa? Resolveremos esto usando R en la siguiente sección.

Implementación usando R

Sigamos adelante e intentemos la implementación en R y verifiquemos los resultados. Puede descargar el conjunto de datos aquí y seguir a medida que avanzamos.

#Install the libraries
install.packages("ChannelAttribution")
install.packages("ggplot2")
install.packages("reshape")
install.packages("dplyr")
install.packages("plyr")
install.packages("reshape2")
install.packages("markovchain")
install.packages("plotly")

#Load the libraries
library("ChannelAttribution")
library("ggplot2")
library("reshape")
library("dplyr")
library("plyr")
library("reshape2")
library("markovchain")
library("plotly")

#Read the data into R
> channel = read.csv("Channel_attribution.csv", header = T)
> head(channel)

Producción:

R05A.01 R05A.02 R05A.03 R05A.04 … .. R05A.18 R05A.19 R05A.20
dieciséis 4 3 5 N / A N / A N / A
2 1 9 10 N / A N / A N / A
9 13 20 dieciséis N / A N / A N / A
8 15 20 21 N / A N / A N / A
dieciséis 9 13 20 N / A N / A N / A
1 11 8 4 N / A N / A N / A

Haremos un poco de procesamiento de datos para llevarlos a una etapa en la que podamos usarlos como entrada en el modelo. Luego, identificaremos qué recorridos del cliente han pasado a la conversión final (en nuestro caso, todos los recorridos han alcanzado el estado de conversión final).

Crearemos una ‘ruta’ variable en un formato específico que se puede alimentar como entrada al modelo. Además, averiguaremos las ocurrencias totales de cada ruta usando el paquete ‘dplyr’.

> for(row in 1:nrow(channel))
{
  if(21 %in% channel[row,]){channel$convert[row] = 1}
}
> column = colnames(channel)
> channel$path = do.call(paste, c(channel[column], sep = " > "))
> head(channel$path)
[1] "16 > 4 > 3 > 5 > 10 > 8 > 6 > 8 > 13 > 20 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"     

[2] "2 > 1 > 9 > 10 > 1 > 4 > 3 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"     

[3] "9 > 13 > 20 > 16 > 15 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"

[4] "8 > 15 > 20 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"

[5] "16 > 9 > 13 > 20 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"

[6] "1 > 11 > 8 > 4 > 9 > 21 > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > NA > 1"

> for(row in 1:nrow(channel))
{
  channel$path[row] = strsplit(channel$path[row], " > 21")[[1]][1]
}
> channel_fin = channel[,c(23,22)]
> channel_fin = ddply(channel_fin,~path,summarise, conversion= sum(convert))
> head(channel_fin)

Producción:

sendero conversión
1> 1> 1> 20 1
1> 1> 12> 12 1
1> 1> 14> 13> 12> 20 1
1> 1> 3> 13> 3> 20 1
1> 1> 3> 17> 17 1
> 1> 6> 1> 12> 20> 12 1
> Data = channel_fin
> head(Data)

Producción:

sendero conversión
1> 1> 1> 20 1
1> 1> 12> 12 1
1> 1> 14> 13> 12> 20 1
1> 1> 3> 13> 3> 20 1
1> 1> 3> 17> 17 1
1> 1> 6> 1> 12> 20> 12 1

Ahora, crearemos un modelo heurístico y un modelo de Markov, combinaremos los dos y luego comprobaremos los resultados finales.

> H <- heuristic_models(Data, 'path', 'conversion', var_value="conversion")
> H

Producción:

Nombre del Canal first_touch_conversions … .. conversiones_touch_lineales linear_touch_value
1 130 73.773661 73.773661
20 0 473.998171 473.998171
12 75 76.127863 76.127863
14 34 56.335744 56.335744
13 320 204.039552 204.039552
3 168 117.609677 117.609677
17 31 76.583847 76.583847
6 50 54.707124 54.707124
8 56 53.677862 53.677862
10 547 211.822393 211.822393
11 66 107.109048 107.109048
dieciséis 111 156.049086 156.049086
2 199 94.111668 94.111668
4 231 250.784033 250.784033
7 26 33.435991 33.435991
5 62 74.900402 74.900402
9 250 194.07169 194.07169
15 22 65.159225 65.159225
18 4 5.026587 5.026587
19 10 12.676375 12.676375
> M <- markov_model(Data, 'path', 'conversion', var_value="conversion", order = 1)> M

Producción:

Nombre del Canal conversión_total total_conversion_value
1 82.482961 82.482961
20 432.40615 432.40615
12 83,942587 83,942587
14 63.08676 63.08676
13 195.751556 195.751556
3 122.973752 122.973752
17 83.866724 83.866724
6 63.280828 63.280828
8 61.016115 61.016115
10 209.035208 209.035208
11 118.563707 118.563707
dieciséis 158.692238 158.692238
2 98.067199 98.067199
4 223.709091 223.709091
7 41.919248 41.919248
5 81.865473 81.865473
9 179.483376 179.483376
15 70.360777 70.360777
18 5.950827 5.950827
19 15.545424 15.545424

Antes de seguir adelante, comprendamos primero qué significan algunos de los términos que hemos visto anteriormente.

Conversión de primer toque: La conversión que ocurre a través del canal cuando ese canal es el primer punto de contacto para un cliente. Se otorga el 100% de crédito al primer punto de contacto.

Conversión de último toque: La conversión que ocurre a través del canal cuando ese canal es el último punto de contacto para un cliente. Se otorga el 100% de crédito al último punto de contacto.

Conversión táctil lineal: Todos los canales / puntos de contacto reciben el mismo crédito en la conversión.

Volviendo al código R, fusionemos los dos modelos y representemos el resultado de una manera visualmente atractiva que sea más fácil de entender.

# Merges the two data frames on the "channel_name" column.
R <- merge(H, M, by='channel_name')

# Select only relevant columns
R1 <- R[, (colnames(R) %in %c('channel_name', 'first_touch_conversions', 'last_touch_conversions', 'linear_touch_conversions', 'total_conversion'))]

# Transforms the dataset into a data frame that ggplot2 can use to plot the outcomes
R1 <- melt(R1, id='channel_name')
# Plot the total conversions
ggplot(R1, aes(channel_name, value, fill = variable)) +
  geom_bar(stat="identity", position='dodge') +
  ggtitle('TOTAL CONVERSIONS') +
  theme(axis.title.x = element_text(vjust = -2)) +
  theme(axis.title.y = element_text(vjust = +2)) +
  theme(title = element_text(size = 16)) +
  theme(plot.title=element_text(size = 20)) +
  ylab("")

total-conversions2-3926341

El escenario es claramente visible en el gráfico anterior. Desde la perspectiva de la primera conversión táctil, el canal 10, el canal 13, el canal 2, el canal 4 y el canal 9 son bastante importantes; mientras que desde la perspectiva del último toque, el canal 20 es el más importante (en nuestro caso, debería ser porque el cliente ha decidido qué producto comprar). En términos de conversión táctil lineal, el canal 20, el canal 4 y el canal 9 están resultando importantes. Desde la perspectiva de las conversiones totales, los canales 10, 13, 20, 4 y 9 son bastante importantes.

Notas finales

En el gráfico anterior hemos podido averiguar cuáles son los canales importantes en los que debemos centrarnos y cuáles pueden descartarse o ignorarse. Este caso nos da una muy buena idea de la aplicación de los modelos de cadena de Markov en el espacio de análisis de clientes. Las empresas de comercio electrónico ahora pueden crear con confianza su estrategia de marketing y distribuir su presupuesto de marketing utilizando información basada en datos.

Biografía del autor:

Este artículo fue contribuido por Analítica perceptiva. Chaitanya Sagar, Prudhvi Potuganti y Saneesh Veetil desarrollaron este artículo.

Perceptive Analytics proporciona análisis de datos, visualización de datos, inteligencia empresarial y servicios de informes para las industrias de comercio electrónico, venta minorista, atención médica y farmacéutica. Nuestra lista de clientes incluye compañías que cotizan en Fortune 500 y NYSE en EE. UU. E India.