- What is my return of investment in digital marketing?
- When should I invest in specific channels?
- How should I allocate my budget?
- What is causing the uplift or downfall of my metrics?
- How will my numbers look like if I double my investment in Google?
Digital marketing channels are great for marketing mix modeling because there is often a direct relationship between cost and effect (visits, sales etc.). Things are not that easy with offline media like TV, press and outdoor. Parameters in the model often become insignificant or indicate no impact of offline campaigns.
The main reason behind this phenomenon is that the regression model fails to capture the long term effect of offline media like TV. When you see a cool ad on the TV you do not rush immediately to your PC or use your mobile phone to navigate to the website (BTW: this might be changing with second screen interaction).
The TV campaign may have an impact on your customers a day, week or maybe even a month later.
There is a simple trick to capture that effect in standard marketing mix models. If offline media has a delayed effect on customer behaviour, why not model it directly? Imagine a bucket of water with a small hole in its bottom. The amount of water in the bucket symbolizes brand awareness your have in customers’ minds. Each week (or month etc.) some water is leaking out of the bucket as your brand slowly fades away into the noise. You can prevent it by pouring more water into the bucket. This is exactly what offline media is doing – each time someone sees your add your image is reinforced.
In a Marketing Mix Model, instead of plugging in costs or reach metrics for offline media, you should use a “leaking bucket” model called Advertising Adstock. The maths are very simple. The Adstock at day t is a portion of last week’s adstock plus your today’s reach. For TV the metrics are GRP (TVR is more popular in the UK). Mathematically:
The alpha parameter represents the “stickiness” of you campaign (or how much water stays in your leaking bucket from one week to another). The higher the parameter, the longer lasting is the effect of your campaign. Actual values are selected through repeated experiments and monitoring the significance of the model. Great TV campaigns often have a very high alpha parameter, e.g. 0.95.
Adstocks are easily calculated in R with the filter function:
# Create some synthetic TVRs
data <- data.frame(Week=1:150, TVR=rep(0,150))
data[30:35,"TVR"] <- 50
data[60:63,"TVR"] <- 30
data[64:70,"TVR"] <- 67
ggplot(data, aes(x=Week, y=TVR)) + geom_line()
# Calculate Adstock
data$Adstock <- filter(data$TVR, filter=0.9, method="recursive")
ggplot(data, aes(x=Week, y=Adstock)) + geom_line()
It is a good idea to compute Adstocks at multiple levels of alpha and including all of them into the data. Of course, only one level of Adstock is selected for the actual linear model.