What is adstock in marketing?
Adstock is the carryover of an ad's effect into later weeks. A mix model adds a fading share of past spend to each week, set by a decay rate. At 0.5, each week keeps half of the week before, so the week you spent holds only half the total effect.
By Joris van Huët, Founder & CEOUpdated 7 min read
Adstock is the part of an ad's effect that carries over into later weeks. A marketing mix model usually adds a fading slice of past spend to each week before it fits anything. The decay rate sets how fast that slice fades: at 0.5, each week keeps half of the previous week's push.
That is the textbook answer, and it holds. Meta's guide to its open-source mix model, Robyn, puts it plainly: not all effects of advertising are felt immediately.
For illustration, say you spend €1,000 on ads in one week, then nothing. At an illustrative decay of 0.5, the model counts €1,000 of ad pressure that week, then €500, €250 and €125 in the weeks after.
Robyn's docs give the shortcut: the total effect is 1 divided by 1 minus the decay. At their example decay of 0.75, that is 4 times the first week. Flip that around: the week you spent holds only 1 minus the decay of the whole effect, half at 0.5 and a quarter at 0.75.
That is why adstock matters to a buyer. Judge a one-week burst by the same week's sales, and a channel with slow decay looks far weaker than it was.
What one store's data shows
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts.
| What the export shows | Share of revenue | Source cell |
|---|---|---|
| Journeys with 1 touch (0.5 days to buy) | 79.5% | Journeys sheet, 1 touch row |
| Journeys with 2 to 3 touches (12.5 days to buy) | 12.2% | Journeys sheet, 2 to 3 touches row |
| Journeys with 4 to 9 touches (16.9 days to buy) | 5.4% | Journeys sheet, 4 to 9 touches row |
| Journeys with 10 or more touches (16.0 days to buy) | 3.0% | Journeys sheet, 10+ touches row |
This export is not a mix model: with no weekly spend, no decay can be fitted from it. It does show how long buyers take.
On the Journeys sheet, journeys with 1 touch hold 79.5% of revenue and took 0.5 days to buy. Taken at face value, four-fifths of revenue closes the day it starts, which sounds like no carryover at all.
Now look at where that clock starts. It runs from the first touch GA4 recorded, not from the ad. A shopper who saw an ad three weeks ago, never clicked, then visited once and bought, is a half-day journey here. Adstock is about that ad, and the sheet never saw it.
The slower rows show carryover you can see. On the Journeys sheet, journeys with 2 to 3 touches took 12.5 days to buy. In the export, journeys with 4 to 9 touches took 16.9 days, and those with 10 or more took 16.0 days.
Together they hold 20.6% of revenue on the Journeys sheet (12.2% + 5.4% + 3.0%). In a weekly model, that fifth lands two or three rows after the week its journey began. Leave adstock out, and those sales go to whatever ran the week they closed.
What the export cannot show is any channel's decay. Days to buy time people, from the first recorded touch to the purchase. Adstock times money, from a week of spend to the sales it moves later. The first gives you a lower bound on lag, not a decay rate.
Why does the textbook answer mislead?
It makes adstock sound measured. In practice you assume it, then let the model adjust.
The decay often starts with you. Meridian begins each channel's decay from an uninformative prior, anywhere from 0 to 1. The data then pulls it. In Robyn you set a range per channel. Meta's rule of thumb for weekly models runs from 0 to 0.3 for digital and 0.3 to 0.8 for TV. Meta calls that advice anecdotal. Google's researchers found that with small samples, starting assumptions have a big impact on the result and can bias it. If your model rests on a short history, part of the decay it reports is the decay you fed it.
A decay means nothing without its time unit. It is a share per period. For illustration, a weekly decay of 0.5 matches a daily decay of about 0.91. That is because 0.91 to the power of 7 is close to 0.5. Going the other way, a daily decay of 0.5 is under 0.01 per week, since 0.5 to the power of 7 is about 0.008. Copy a decay between daily and weekly models without converting it, and the carryover changes beyond recognition.
Most curves assume the peak comes first. Geometric adstock puts the biggest effect in the week of spend and fades from there. Robyn's docs say geometric decay can't capture a lagged effect, which its Weibull options can. Meridian offers binomial decay for channels whose effect persists into the second half of the window. If your product needs a second look or a payday, the peak can trail the spend.
A conversion window is not adstock. Google Ads' click-through window, 30 days by default, decides which tracked buyers a click can claim. Adstock spreads a week's spend over later weekly sales, tracked or not.
What can a decay rate not tell you?
Whether the ads caused the carryover. Say spend rises every year just before your seasonal peak. A model can hand part of that peak to the ads, unless the season sits in the model too.
Robyn's docs treat adstock like effect size: an uncertain quantity to check against experiments whenever possible.
It also says nothing about slow brand building, which Robyn's docs treat as media's effect on baseline sales. For that, see how a mix model handles brand effects. Adstock's partner in the model is saturation, covered in what diminishing returns in ad spend means.
What to do this week
- See how long your Google Ads buyers take. In Google Ads, open Campaigns, click the segment icon, choose Conversions, then Days to conversion. Pass: most conversions land in the first week, so a low decay is a fair start. Fail: they spread over several weeks, so judging that channel on its week of spend will undercount it.
- Compare Meta's short and long click windows. In Ads Manager, open the Columns: Performance menu. Scroll to Compare attribution settings and pick 1-day click and 28-day click. Pass: the two columns sit close together, so Meta buyers act fast. Fail: 28-day click sits far above 1-day click, so any weekly model needs a decay above zero for Meta.
- Read sales around your last pause. In Shopify, go to Analytics > Reports > Total sales over time and group it by week. Find the week a big campaign stopped and read the three weeks after. Pass: sales eased down over a couple of weeks, the shape adstock describes. Fail: they fell off a cliff that same week, so carryover is small, or something else changed too.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Key Features (Meta (Robyn)); An Analyst's Guide to MMM (Meta (Robyn)); Set the adstock_decay_spec parameter (Google (Meridian)); Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects (Google Research); Glossary (Google (Meridian)); About conversion windows (Google); Use segments in your tables (Google); Compare attribution settings in Meta Ads Manager (Meta); Sales reports (Shopify)
Related answers
Frequently asked questions
What is a good adstock decay rate?
There isn't one rate for every store. Meta's rule of thumb for weekly models is 0 to 0.3 for digital and 0.3 to 0.8 for TV. Print, radio and outdoor sit at 0.1 to 0.4. Meta calls those ranges anecdotal, so start from your own buyers' lag.Is adstock the same as carryover?
Yes, in most mix-model writing the two words mean the same thing. Both name the share of an ad's effect that lands after the period you paid for it. The decay rate says how fast that share fades.Does adstock apply to organic channels like email?
It can. Robyn applies the same carryover and saturation steps to organic inputs such as newsletters. Meridian models organic media with adstock too, though it cannot give those channels an ROI because they have no cost.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- ExperimentsExperiments are scientific procedures that test hypotheses or demonstrate facts. In marketing, experiments like A/B tests determine the causal effect of campaign changes, enabling data-driven decisions.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- Marketing MixThe marketing mix is the set of actions a company uses to promote its brand or product. It traditionally includes product, price, place, and promotion.
- Marketing Mix ModelingMarketing Mix Modeling (MMM) is a statistical analysis that estimates the impact of marketing and advertising campaigns on sales. It quantifies each channel's contribution to sales.
- Media Mix ModelingMedia Mix Modeling is a statistical technique that measures the collective impact of marketing and advertising on sales. It uses historical data to inform budget allocation.