Skip to main content
Version: 3.20.1

mmm_attribution

R

D_variables must include prior_weight. The value is applied to each raw input signal before saturation and scoring.

prior_weight: business weight assigned to each raw signal. A common way to estimate it is conversions / touchpoints, but it can also be set from domain knowledge or historical benchmarks.

library(ChannelAttributionPro)

token <- "yourtoken"

Data <- read.csv("https://app.channelattribution.io/data/data_mmm_3.csv")

D_variables <- data.frame(
variable = c(
"direct_searches",
"facebook_impressions",
"facebook_clicks",
"google_impressions",
"google_clicks",
"tv"
),
channel = c(
"direct",
"facebook_ads",
"facebook_ads",
"google_ads",
"google_ads",
"tv"
),
measure = c(
"direct_searches",
"impressions",
"clicks",
"impressions",
"clicks",
"views"
),
prior_weight = c(
0.50, # direct search
0.015, # Facebook impressions
0.21, # Facebook clicks
0.015, # Google impressions
0.25, # Google clicks
0.02 # TV views / GRP-like signal
),
stringsAsFactors = FALSE
)

target <- "conversions"

res <- mmm_attribution(
Data = Data,
D_variables = D_variables,
target = target,
model = "linear", # "linear", "reward", or "copula"
max_p = 12,
seed = 1234567,
verbose = 1,
password = token
)

print(head(res))

Using a different internal model:

res_reward <- mmm_attribution(
Data = Data,
D_variables = D_variables,
target = target,
model = "reward",
max_p = 12,
seed = 1234567,
password = token
)

res_copula <- mmm_attribution(
Data = Data,
D_variables = D_variables,
target = target,
model = "copula",
max_p = 12,
nsim = 1000,
seed = 1234567,
password = token
)