Advertising adstock is a term used to measure the memory effect of advertising carried over from start of advertising. For example, if a company advertises at a certain level in week 1, week 2 will have a portion of week 1 level. Week 3, in turn, will have a portion of week 2 level. In other words, adstock is a percentage term that measures the decaying effect of advertising throughout the weeks.

The term that comes up often in response models where we try to measure the effect of advertising on sales or on purchase intent. The models are usually regression based but are often published under names like Marketing Mix Models (MMM), Marketing Mix Optimization (MMO), Network-Effects and Hierarchical models.

The theory behind adstock is that marketing exposures build awareness in consumers’ minds. That awareness doesn’t disappear right after the consumers see the ad but rather remains in their memory. Memory decays over the weeks and hence the decay portion of adstock.

The formula for advertising adstock is A_{t} = X_{t} + adstock rate * A_{t-1}.

The files below show a simple implementation of advertising adstock transformation:

• Excel Adstock Transformation

• SAS Adstock Transformation

• R Adstock Transformation

• Python Adstock Transformation – coming soon

### Like this:

Like Loading...

RezaThanks Gabriel. You explained ad stock calculation in a simple way. Could you please describe how to estimate the ad stock rate? I am looking for the formula to estimate it.. This rate is supposed to depend on parameters like awareness/sales/media clutter etc., isn’t it?

analyticsartistPost authorHi Reza, Yes, the rate will depend on all these parameters you mentioned. I wrote another post on how to calculate the optimum adstock rate with sales data – https://analyticsartist.wordpress.com/2014/01/31/adstock-rate-deriving-with-analytical-methods/. If you are familiar with regression analysis then you can expand this model to include other variables for more accuracy.

Pingback: Advertising Adstock with Maximum Period Decay | Gabriel Mohanna's Blog

Pingback: Marketing Mix Modeling Explained – With R | Gabriel Mohanna's Blog

naurisThis formula is one of the first versions of Adstock (I guess from 1979 paper). Check S. Broadbent book “Accountable Advertising” (1997) (Section 8.2.4 p.159 & Table6 p.281). There is very well explained how to calculate correctly Adstock with examples and formulas. Its not logical that Adstock effect can be bigger than advertising itself.

analyticsartistPost authorI ordered the book and looking forward to reading that chapter. What I did notice from industry experience is that marketers are always asking to understand their advertising effect and they refuse to accept any model that doesn’t show a really big effect. I guess the phrase, “It is difficult to get a man to understand something, when his salary depends upon his not understanding it!” is appropriate over here.

AnalyticsArtistPost authorI looked at the book and the only difference in the new formula he proposed is to have the first week contain only half of the initial advertising. The idea is that we don’t know when advertising was aired during the week so we’ll assume it occurred half way through. Unfortunately, this will only effect the first few weeks and the rest will have 99% correlation with the initial adstock formula. So we go through immense increase in calculation complexity and not find a meaningful difference.

JMBOne thing to note: if you want your adstocked variable to sum-up to the original, you need to apply the multiplier [sum(advertising)/sum(adstock)] to the adstocked variable. In this way, you preserve the original spend or impression levels.

analyticsartistPost authorThis is a really good suggestion JMB. Thank you for sharing.

Pingback: Advertising Diminishing Returns & Saturation | Gabriel Mohanna's Blog

ISSo, I have a mock dataset and it is weekly activity for the last 2 years and let us say I only had 3 media that I spend my marketing budget every week.

Let us say we have TV impressions, Email spend and Display spend every week in this dataset. Let us also assume that my response variable is revenue so revenue is also a variable in this dataset.

I saw your article which I thought was very good/simple/useful for what I am trying to do – adstock transformation for these media activity because I suspect there is some residual effect of those media activity and I want to capture them in my model.

I plan to run a regression model once I have captured these effects.

Without the adstock transformation terms, my model could look like this:

Revenue ~ intercept + b1 * TV imp + b2 * Email spend + b3 * Display spend + error term

1. What would my model look like if I add the adstock transformation terms?

2. I want to know how many weeks I should capture these effects – is there a rule of thumb for it?

3. How many additional adstock transformation terms should I create in my model given the above scenario?

AnalyticsArtistPost authorI’ll answer question 2 first. The standard adstock formula is infinite decay. However, after few weeks the effect size is close to zero. If you want to try an absolute zero then look at Advertising Adstock with Maximum Period Decay. You can experiment with few values to get the best model.

Your model after adding adstock transformation would look as follows. You can pass that down to nls function.

You need to have defined an adstock function:

I often times found display advertising has zero adstock value though so you can skip that transformation. However, it doesn’t hurt to try it.

Keval ShahThanks for this post. I have been attempting to implement adstock for our advertising campaign and it was my understanding that AdStock is very relevant to Display Advertisements or visuals as those tend to stick with people when they see them and then it decays over time. Based on your above / last comment, you mention zero adstock for display. Would like to hear your thoughts behind that. Any reason that would help explain zero adstock value for display.

AnalyticsArtistPost authorI would say video tends to stick more with people than display images. Repeated video is even more stick, which is the case of TV. Digital search advertising would be the lowest in case of stickiness, i.e. adstock.

ISI also thought that Display ads had adstock effect as when we used to run tests at the agency I worked, we would continue to look at test results for a month even after the Display campaign ended. I will have to try this technique on my data that I have currently to see if the adstock effect exists or not for Display campaigns.

ISThanks. So regarding the adstock rate when we define the adstock function, what does it mean when the value is 0? And, how do we know what would be the optimal adstock rate?

AnalyticsArtistPost authorAdstock = 0 means there is no adstock. Another way to say it is Adstock = 0 means there was no transformation that has been done.

PreethaFantastic article. As a newcomer to Marketing Mix Models, I found this really useful.

Could you possibly write an article about Adbank transformations?

AnalyticsArtistPost authorI never heard of adbank transformation. Do you mean adbudge?

AmitIn your formula for adstock (A_t), is X_t the exposure (equivalently GRP_t in the TV ads world)? Thanks.

AnalyticsArtistPost authorYes

DR.VARU JASUBHAI GHUSABHAIIn the distributed lag model, not only is the dependent variable entered in its lagged version, but the independent variables are as well. This is a more generalist model and captures the carry-over effect of all the variables. Thus, the Koyck model is a special type of distributed lag model, which includes the lag value of only the dependent variable. The hierarchical model, on the other hand, uses dummy variables to capture the impact, like content or media. As the dummy variable takes a value of 1 or 0, it signifies the presence of one or the other content or media channel.

DR.VARU JASUBHAI GHUSABHAIlooked at the book and the only difference in the new formula he proposed is to have the first week contain only half of the initial advertising. The idea is that we don’t know when advertising was aired during the week so we’ll assume it occurred half way through. Unfortunately, this will only effect the first few weeks and the rest will have 99% correlation with the initial adstock formula. So we go through immense increase in calculation complexity and not find a meaningful difference