본문으로 건너뛰기
Back to blog
디지털 마케팅 분석 입문

Measuring Ad Effectiveness: Reclaiming Channel Attribution with Search Volume and Time Series, Lift and Adstock Made Simple

How to measure ad channel effectiveness without individual tracking. Covers why a 0.15 correlation was an illusion, the baseline, lift, and adstock (advertising carryover effect) concepts, and the time-series data you need to start stacking today.

17 min read디지털 마케팅 분석 입문
ad effectiveness measurementadstockincremental liftmarketing mix modelingchannel attribution
Measuring Ad Effectiveness: Reclaiming Channel Attribution with Search Volume and Time Series, Lift and Adstock Made Simple

For: marketers who use Excel but find statistics intimidating  ·  Format: explainer guide + real-world hook (Part 9 of a series)  ·  2026-07-11

Key Summary · TL;DR

Q. What is adstock?

Adstock (advertising carryover effect) is the idea that an ad exposure's effect doesn't fully show up on the day it runs, it decays and accumulates over several days instead. The larger the decay rate (λ), the longer the effect lingers. In one real-world measurement, an estimated 90% of the cumulative effect was realized within 7 days.

Three lines you can use today

  • Don't conclude "no effect" just because exposure volume (views) alone shows a low correlation, that can be an underestimate that misses spend intensity and delay.
  • Stack channel signal, brand search volume, and ad spend as three parallel date-level time series, that's the minimum unit for measuring effect without individual-level tracking.
  • Don't jump from high correlation to causation. Suspect a confounder like ad spend first, and confirm it by removing channels one at a time.

A Correlation of 0.15, Does This Ad Really Not Work?

I once went back over 509 days, about a year and five months, of data for an online video content (product placement) campaign (internal analysis, unpublished). Lining up content views and brand search volume by date and running the correlation produced 0.15.

You don't need to know statistics to sense that number is low. If you'd been the one in charge, it wouldn't have been strange to conclude on the spot, "This ad isn't driving brand search, let's cut the budget."

But before reaching that conclusion, there was one question to ask first. In a situation where you can't track at the individual level who watched this video and later searched or made an inquiry, is it okay to declare "no effect" based on a single correlation coefficient?

This post tries to answer three questions: whether low correlation really means no effect, how to measure channel effect in an environment where individuals can't be tracked (the dark funnel), and whether it's safe to believe an ad run today shows its full effect today.

When Per-Channel Performance Won't Show Up, What's Left Is the Time Series

The reasons individual-level tracking gets blocked are the same ones covered in the dark funnel tracking guide. Paths a single cookie can't follow all the way, offline inquiries, logged-out views, journeys that hop to another device, account for a substantial share of actual conversions.

That's no reason to give up, though. You may not know who watched, but you do know when they watched and when the company's overall metrics moved. Flip the framing this way and a path appears: instead of chasing individuals, line up channel signal and performance metrics side by side on the shared axis of date.

The time series here isn't anything grand. It's just two rows of numbers lined up by date. Write one row for this channel's activity (views, clicks, ad spend) and another for company-wide performance (brand search volume, inquiries, revenue), both keyed to the same dates, and you start to see whether the two move together or move with a lag of a few days between them.

Two scrolls of paper laid side by side on a desk, each showing a differently shaped curve, with a single hand aligning the two scrolls edge to edge along a shared date line. Flat vector editorial illustration, navy (#1c3d5a) base with a single orange (#ff8649) accent at the point of alignment, no text or numbers, only a hand appears as a human element, wide composition with breathing room

Image: you may not know who watched, but you know when. Lining up two curves by date is where it starts.

Baseline and Lift: Only What Rises Above the Usual Level Belongs to the Ad

Lining up two time series and immediately reading it as "this is the ad's effect" walks straight into another trap. On any given day, some amount of revenue or inquiries happens even with zero ads running, a share created by brand equity, organic search demand, repeat purchases from existing customers, distribution and pricing conditions, and the like.

That share is called baseline: sales or conversions estimated to have happened even with zero marketing intervention. The portion where actual measured results rise above that baseline, only that difference can be credited to the ad or campaign, and it's called incremental lift.

A bathtub makes this click. The tub already has some water in it (baseline). Turn on the faucet and more water comes in, raising the level (lift). If you look only at today's water level and say "all of this is thanks to the faucet," you end up crediting the ad for water that was already there.

A bathtub already partly filled with water, with a new stream pouring in from a faucet above and raising the water level. The original waterline is marked with a navy dotted line, and only the added portion the stream creates is shown in orange (#ff8649). Flat vector editorial illustration, navy (#1c3d5a) base, no text or numbers, no people, wide composition with breathing room

Image: the water that was already there is the baseline, what the faucet newly fills is the lift.

Separating baseline from lift in actual measured data is the core output of marketing mix modeling (MMM). The goal is to statistically model historical sales data together with marketing investment, price, promotions, competition, and macroeconomic variables, splitting out the share driven by factors outside marketing (baseline) from the marketing contribution layered on top of it (lift).

The most common mistake in practice is not making this distinction at all. Put "this month's total revenue" straight into an ad performance report, and even the share that would have sold anyway gets credited to the ad. When next quarter's budget gets built, this illusion carries straight through into an overvalued channel budget.

Adstock: Today's Ad Doesn't Show Its Full Effect Today

There's one more gap that separating baseline from lift alone doesn't close: someone who sees an ad running today doesn't search or buy the same day. Far more people take days after seeing the ad before it turns into actual behavior.

This delay-and-carryover effect is called adstock. The concept is widely credited to Simon Broadbent, who first proposed it in his 1979 paper "One Way TV Advertisements Work." This research, though, only confirmed the account that multiple secondary sources cite consistently, it didn't cross-check the original 1979 paper directly.

The core formula looks intimidating, but in words it's simple: "the ad effect remaining today equals today's new exposure plus a portion of the effect still left over from yesterday." What decides how much of yesterday's effect carries over to today is the decay rate (λ), and without new exposure, this effect shrinks little by little over time.

If you're curious about the formula: A_t = T_t + λA_(t-1). A_t is the cumulative ad effect at today's point, T_t is the new ad volume put in today, and λ is the decay/carryover coefficient. If this doesn't click, the paragraph above is enough to follow the rest.

How much delay shows up in practice varies case by case. In one real-world measurement (internal analysis, unpublished), the decay rate came out to λ=0.75, and based on that parameter, an estimated 90% of the cumulative effect was realized within 7 days.

Effect size (relative) ↑ Today's new exposure Cumulative effect (remaining) Day 7 90% of cumulative effect realized by here (one real-world measurement) Day 0 Day 3 Day 10

Exposure lands once on day 0, but its effect decays and gets realized across many days (figures are estimates from one real-world measurement).

What actually happens when you ignore this delay is the real problem. Run a model on the same data binding only "same-day views → same-day results," and the unexplained baseline share balloons up to 60%. Most of the ad's effect leaks into the "it would have happened anyway" bucket.

Apply adstock, a model that accounts for the delay, to the same data, and that baseline share drops to 26%, while R² (the fit measure showing how well the model explains actual data) jumps from 0.30 to 0.74. Not accounting for the delay creates an underestimation illusion, where a channel's real contribution looks smaller than it actually is.

That said, memorizing these numbers, λ=0.75, 60%→26%, R² 0.30→0.74, as standard values would be a mistake. They're specific parameters from one real-world case, and decay rates come out differently by industry and channel. What to take from this isn't the numbers but the pattern, the structure where "same-day attribution alone makes the delayed effect vanish entirely."

Correlation Isn't Causation: The Confounder Called Ad Spend

Even after re-running the correlation with the delay accounted for, jumping straight from "high correlation" to "so this channel is the cause" walks into yet another trap. A third variable that moves both metrics at once might be hiding underneath.

The most widely used example is the relationship between ice cream sales and drowning incidents. In summer, ice cream sales rise and swimming accidents rise too, producing a high correlation between the two, but ice cream doesn't drown anyone. Both simply moved together because of a shared cause: hot weather.

A sun high in the sky over a beach, with two arrows extending from it, one pointing to an ice cream stand, the other to silhouettes of people swimming. Only the sun glows softly in orange (#ff8649). Flat vector editorial illustration, navy (#1c3d5a) base, no text or numbers, people appear only as faceless silhouettes, wide composition with breathing room

Image: ice cream sales and drowning incidents rise together, but the cause behind both is the same hot sun.

In marketing, the role of this shared cause is most often played by ad spend itself. In the real-world measurement seen earlier (internal analysis, unpublished), the correlation between total ad spend and total conversions came out fairly high at 0.666, but digging in, it turned out the budget of other paid ad channels was strongly driving conversions on its own. Meanwhile, the direct correlation between content views and total conversions was nearly nonexistent at 0.06, and the correlation between brand search volume and total conversions was only 0.30.

Ad spend (confounder) 0.44 0.666 Brand search volume Conversions (inquiries, purchases) Correlation 0.30 (observed, don't assume direct causation)

When ad spend pushes both up together, an inflated correlation shows up between search volume and conversions too (figures are from one anonymized real-world measurement).

The most widely cited academic counterexample is eBay's brand search ad experiment (Blake, Nosko & Tadelis, Econometrica, 2015). eBay ran a large-scale field experiment turning brand keyword search ads off and on in parts of the US, and the result was unexpected. Brand keyword ads produced almost no measurable short-term gain. Most users were already arriving through organic search regardless of whether the ad ran.

Ad spend and sales moved together, making the correlation look high, but the real cause was a third variable: "people who already intended to buy." No amount of staring at observational data peeled back this illusion, it only surfaced through an on/off experiment. That said, the exact details of the experiment's design, like the number of regions or duration, were only confirmed at the level of secondary summaries, the original paper itself wasn't reviewed directly.

A common mistake in practice is reporting "this channel drove the results" for no reason other than a high correlation. With a strong confounder like ad spend in play, isolating cause from observational data alone is structurally difficult. Confirming real causation needs an experiment, or at minimum a change that approximates a natural experiment.

What Changing the Metric Reveals: Why Views' 0.15 Became Spend Intensity's 0.44

Let's return to the question posed earlier. Did the 0.15 correlation between views and brand search volume really mean "no effect"? Swapping out one metric in the same data gave a different answer.

Running the correlation between spend intensity (the ad spend actually burned over the same period) and brand search volume instead of views, the number climbed to 0.44. Views turned out to be a metric that only distinguished "seen or not seen," it couldn't capture how hard the push actually was.

In other words, the problem wasn't the ad itself, it was metric choice. Concluding "no effect" from a shallow metric like exposure volume alone would have nearly missed a real signal that was showing up from a different angle, spend intensity. Not giving up on one weak correlation and checking again with a different metric is the thread running through this entire case.

So Starting Tomorrow: Three Rows of Time Series and One Calendar

The reason for getting this far comes down to one thing: measuring channel effect without tracking individuals means you have to start stacking data now. A time series is something you can't build retroactively.

The minimum setup is three rows: channel signal (activity this channel generated, like views and clicks), brand search volume (trends in searches for the company or service name), and ad spend (spend intensity actually burned on this channel), stacked side by side at the date level. Add an event calendar marking things like campaign start and end dates, seasonal promotions, and major competitor events, and it becomes a clue for telling apart "is this thanks to the ad or thanks to the season" later, when you look at correlation or lag.

Three ribbon-shaped waveforms laid side by side on a desk next to a desk calendar with pages flipped past, a hand aligning the starting points of the three waveforms with a single date on the calendar. Flat vector editorial illustration, navy (#1c3d5a) base with a single orange (#ff8649) accent, no text or numbers, wide composition with breathing room

Image: channel signal, brand search volume, ad spend. Start stacking three rows side by side, together with a calendar.

Add conversions (inquiries, purchases) to these three rows and overlay all four, and it starts to reveal which metric moves first and which follows a few days later. Below is an example previewing what that looks like.

Example figures, not real data Channel signal Brand search volume Ad spend Conversions Campaign start (example) Responds in order, ad spend → search volume → conversions, with a few days' lag between each

Overlay the four rows and you start to see which metric responds first and which follows a few days later (example figures, not real data).

The trap in practice is thinking "I'll start stacking it when I need it later." A time series can't be rewound and built from the past. Turning on these three rows and the calendar the moment you launch a new ad channel is, in itself, the only material that can answer the question "did this channel really work" next quarter.

If You Want to Go Further: Open-Source MMM and Free Natural Experiments

What we've covered here is at the level of concepts: baseline, lift, adstock, confounders. Actually running these time series through a model to estimate per-channel contribution needs tools, and several free, open-source MMM (marketing mix modeling) packages have come out recently.

Robyn, released by Meta, is an open-source package that combines Ridge regression with a multi-objective evolutionary algorithm to auto-search hyperparameters, bundling in time-series decomposition and budget allocation optimization. Meridian, which Google fully released in February 2025, is built on a Bayesian causal inference framework and states its goal as producing ROI confidence intervals and response curves. To be upfront, though, neither tool was actually run here to compare results, this research only confirmed their character and approach at the level of their official introduction pages.

There's one thing you can try right now without any tools: a sequential removal experiment. If you're running several channels, there's usually one you're already debating cutting because its effect looks ambiguous. Rather than turning off multiple channels at once, turn them off one at a time in sequence, spacing each off-period by roughly the adstock length, and comparing before-and-after metrics gets you evidence close to a natural experiment at almost no cost.

Several small lever switches lined up on a lab workbench, a hand flipping them down one by one in sequence. The switches already flipped down are a dark navy tone, and only the next switch to flip glows orange (#ff8649). Flat vector editorial illustration, navy (#1c3d5a) base, no text or numbers, only a hand appears as a human element, wide composition with breathing room

Image: if you're cutting a channel anyway, don't turn them all off at once, turn them off one at a time and watch before and after.

History Lesson Over, Time to Hold It Up to Your Own Data

That covers the concepts. What's left is holding this lens up to the data you have today.

5 Levers: The Working Checklist
  1. Re-check your metric: are you only looking at exposure volume (views)? Pull a spend-intensity metric like ad spend alongside it and re-check the correlation.
  2. Open a time series: are channel signal, brand search volume, and ad spend all being stacked at the date level? If not, start today.
  3. Keep an event calendar alongside it: are campaigns, seasonal promotions, and competitor events marked by date? Always keep it next to your correlation table.
  4. Account for delay: are you analyzing with same-day attribution only? Re-run the correlation with at least a few days' lag to strip out the baseline illusion.
  5. Suspect a confounder: if a channel shows a high correlation, suspect a shared cause like ad spend first and verify it with sequential removal.

If you take away just one thing, let it be this.

Low correlation doesn't mean no effect, it might just mean you haven't matched the right metric and lag yet.

About This Series

This post is Part 9 of the Digital Marketing Analytics Basics series. Having covered how to measure effect with time series where individual tracking is blocked, next comes how to actually fill that time series with real GA4 and search data.

Putting ad exposure next to other channels requires matching units first. The exposure piece covers how Google and Meta count an impression at different moments, and why you should not sum across channels.

Sources

The figures in this post, λ=0.75, baseline 60%→26%, R² 0.30→0.74, and correlation coefficients of 0.15, 0.44, 0.30, 0.06, and 0.666, all come from an anonymized real-world measurement kept internally, and the original project name and client are not disclosed (internal analysis, unpublished). These numbers are specific parameters from that one case, not a benchmark generalized across industries or channels. The origin of adstock (Broadbent, 1979) and the detailed design of the eBay experiment weren't reviewed in the original source directly, they were cross-checked through secondary sources. Robyn and Meridian were confirmed only at the level of their official introduction pages, they were not run directly for comparison.

Found this useful? Share it

Latest posts

Related projects

Get new posts by email

Insights on marketing, analytics, and dev, delivered to your inbox.