Articles

How Attentive Measures Campaign Incrementality

Article illustration

When a subscriber receives a campaign text, clicks, and then completes a purchase, how much of that purchase did the campaign cause? And when someone opts out right after a send, was it the campaign or something else? Answering either question requires the same thing we needed for journeys: what the same subscribers would have done if the campaign had never been sent.

Incremental estimates at a glance

  • The question. What do marketing campaign texts cause, in conversions and in opt-outs, beyond what subscribers would have done anyway?
  • The challenge. Campaigns go to audiences that marketers choose, at times they choose, and the subscribers who click are not a random slice of those who receive. Before-and-after comparisons and attribution both mix the campaign’s effect with who was targeted and what else was happening that day.
  • The comparison. For every campaign, we follow three groups minute by minute around the send: subscribers who didn’t receive it, recipients who didn’t click, and recipients who clicked.
  • The method. An event-study difference-in-differences design compares how each group’s behavior changes after the send, relative to just before it, and allows us to separate the campaign’s effect from the background rhythm of the day.
Line chart of the share of subscribers making a purchase from 60 minutes before to 60 minutes after a campaign send. Before the send, the control group, recipients who did not click, and recipients who clicked follow the same flat path. Right after the send, only the clicked group spikes and then decays.
Figure 1. Three groups of subscribers in the hour around a campaign send. Before the send, they move together; after it, only subscribers who clicked visibly depart from the common trend.

From journeys to campaigns

In our previous post, How Attentive Measures Incrementality, we measured the incremental effect of journey messages – the texts that fire automatically when a shopper abandons a cart or a browsing session. There, a quiet-hours cutoff created a natural experiment: shoppers minutes apart landed on different sides of a rule they couldn’t see.

Campaigns work differently. A marketer chooses the message, the audience, and the send time, and the whole audience receives the text at roughly the same moment. There is no cutoff to exploit, and the subscribers who receive a campaign were picked on purpose. Measuring what a campaign causes therefore needs a different design – one built around time rather than a threshold.

The question, though, is the same. The value of a campaign isn’t the purchases that follow it. It’s the difference between what happened after the send and what would have happened without it: the counterfactual. The same logic applies to opt-outs. Some subscribers would have opted out that day anyway, and we should only assign an opt-out to a campaign if the campaign caused it.

Why before-and-after isn’t enough

The simplest approach is to compare recipients’ behavior in the hour before a campaign with the hour after it. If purchases go up, credit the campaign. The problem is that many other things change around a send. Shopping follows the clock: activity rises through the morning, peaks around lunch and in the evening, and shifts with the day of the week. A brand may launch a sale on the same day, or the whole market may be busier because of a holiday. A before-and-after comparison mixes the campaign’s effect with all of these.

The opposite approach – comparing recipients with subscribers who didn’t receive the campaign, after the send – has the reverse problem. Marketers choose campaign audiences deliberately, often targeting subscribers who are more engaged or more likely to buy. Recipients might convert at higher rates even if the campaign did nothing.

Attribution inherits a version of both problems. It records conversions that follow a campaign within a fixed window, so it can credit a campaign for purchases that recipients would have made anyway. And it has no natural way to tell whether an opt-out came from the message itself or from something else that happened that day.

Difference-in-differences: borrowing a trend

The difference-in-differences (DiD) design combines the two flawed comparisons into one that addresses both problems under a single assumption. Instead of comparing levels, it compares changes: how much did recipients’ behavior change from before to after the send, compared with how much the control group’s behavior changed over the same window?

The control group’s change captures what would have happened anyway, as long as it affects both groups alike – the time of day, the day of the week, the brand’s sale. Subtracting it from the recipients’ change leaves the part of the change that only recipients experienced: the campaign, together with anything that reaches recipients because of it, such as journeys the campaign triggers or an email sent to the same audience.

Line chart around a campaign send. The control group's conversion rate rises gently over time. Recipients start higher and rise in parallel until the send, then jump above a dashed counterfactual line that continues their pre-send trend parallel to the control group. An arrow between the actual and dashed lines is labeled campaign effect.
Figure 2. The control group’s change stands in for what recipients would have done without the campaign. The effect is the gap between recipients’ actual path and that counterfactual.

Imagine that in the hour before a send, 20 of every 10,000 subscribers in both groups make a purchase. In the hour after, 50 of every 10,000 recipients buy, but so do 30 of every 10,000 subscribers who didn’t receive the campaign – an evening uptick that has nothing to do with the message. A before-and-after comparison would credit the campaign with 30 purchases per 10,000 recipients. The difference-in-differences credits it with 20: the recipients’ increase of 30 minus the control group’s increase of 10.

DiD=(recipients after−before)−(control after−before)

The two groups don’t need to start at the same level. If recipients were more active to begin with, that gap appears both before and after the send and cancels out. What the design needs is that the two groups would have changed in the same way without the campaign. That’s a statement about changes in levels, so it’s most credible when the groups start at similar levels; with very different baselines, a proportional evening uptick alone would open a gap.

Parallel trends: the assumption we can’t see

That requirement is called the parallel trends assumption: absent the campaign, the outcomes of recipients and control subscribers would have evolved in parallel. If it holds, any divergence between the two groups after the send can be attributed to the campaign.

Like every counterfactual, the assumption can’t be tested directly – we never observe recipients in the world where the campaign wasn’t sent. But it has a testable implication. If the two groups would have moved together after the send, they should also have moved together before it, when nothing had yet happened to pull them apart. A flat pattern of pre-send differences – small next to the post-send effects, and tested jointly rather than bin by bin – is evidence that the design is doing its job; a sloped pattern is a warning sign that the groups were never comparable to begin with. With samples this large, almost any difference is statistically significant, so size matters more than significance.

Clean pre-trends are the minimum condition for a causal reading, not a guarantee. Marketers select campaign audiences on purpose, sometimes based on behavior far back in time, and parallel trends in the hour before a send can’t rule out every form of selection. For the targeting levers we discuss later, that selection is both a concern and the very thing we want to learn about.

Three groups, three comparisons

For each campaign, we split the brand’s reachable subscribers into three mutually exclusive groups:1

  1. Control subscribers did not receive this campaign.
  2. Received-no-click subscribers received the campaign but didn’t click any link in it.
  3. Received-and-clicked subscribers received the campaign and clicked at least one link in it.

Comparing these groups in pairs answers three different questions.

Three groups, three comparisonsFor every campaign, we follow the brand's reachable subscribers in three groups and compare them in pairsBCNo-click vs. control: hownon-clickers change after the sendClicked vs. no-click: howclickers differ from non-clickersDid not receivecontrolReceived, did not clickreceived-no-clickReceived and clickedreceived-and-clickedAClicked vs. control: how subscribers who engage with the campaign changeClicking is a choice made after the send. Only all recipients vs. control compares groups fixed before it

Figure 3. The three groups we follow for every campaign, and the question each comparison answers.

Clickers versus control measures how the behavior of subscribers who engage with the campaign changes relative to subscribers who never received it, across site visits, product browsing, cart additions, purchases, and opt-outs. Received-no-click versus control compares how recipients who don’t click change relative to the same control. And clickers versus received-no-click compares subscribers who all saw the same message at the same moment but made different choices about it. Because clicking is a choice made after the send, these comparisons describe groups defined by that choice; only all recipients versus control compares groups fixed before the send.

The middle comparison does double duty. For shopping outcomes, it’s a first check on selection: if subscribers who receive the campaign but don’t click show no lift, the effect we see among clickers is less likely to come from the campaign’s audience simply being on a different trajectory. For opt-outs, it speaks to a substantive question – whether unsubscribes come from engaging with the content or from the send itself – which matters for how marketers should target.

Event time: lining up thousands of campaigns

Campaigns go out on different days, at different hours, for different brands. To pool them, we put every campaign on its own clock: minute zero is the moment the campaign’s first message arrived, and everything is measured in minutes, hours, or days relative to that send. A campaign sent on a Tuesday morning in March and one sent on Black Friday both start at zero.2

Lining up campaigns on event timeCampaigns go out on different days and at different hours. Each one gets its own clock, starting at its sendCalendar timeJanFebMarAprMayJunJulAugSepOctNovDecTue, Mar 410:00amWed, Jun 182:30pmTue, Sep 97:15pmFri, Nov 289:00amalign every campaign on its own sendEvent timeTue, Mar 4, 10:00amWed, Jun 18, 2:30pmTue, Sep 9, 7:15pmFri, Nov 28, 9:00am-60-40-200204060Minutes relative to each campaign's own send

Figure 4. Campaigns sent on different dates and at different times of day are aligned on their own send times, so every campaign starts at minute zero.

Within event time, we split the hours and days around the send into short bins – five minutes wide in the first hour – and estimate the same simple regression for each outcome, each pair of groups, and each bin:

Outcome=α+β·Post+γ·Group+δ·(Post×Group)+ε

Here, Post marks the bin being estimated as opposed to the reference period, Group marks the treated group in the pair (for example, clickers rather than control), and δ – the coefficient on their interaction – is the difference-in-differences estimate for that bin. Three design choices matter:

  1. A common reference period. Every estimate is measured relative to the 5 minutes immediately before the send, when no one has received the message yet.
  2. One row per campaign, group, and period. Each campaign contributes the same small set of rows to every regression, so the estimation runs at the campaign level and each campaign is its own before-and-after, treated-and-control comparison.
  3. Standard errors clustered by campaign. This allows the rows and bins from the same campaign to be correlated, while treating different campaigns as independent.3

Checking the comparison

Do the groups move together before the send?

Plotting the bin-by-bin estimates gives the classic event-study picture. Before the send, the estimates should hover around zero; after the send, any effect shows up as a departure from zero. In our data, all three groups follow almost exactly the same path in the hour leading up to a send across site visits, product browsing, cart additions, purchases, and opt-outs.

Event-study estimates in 5-minute bins from 60 minutes before to 60 minutes after a send. Pre-send estimates are flat at zero, with the bin just before the send marked as the reference period. After the send, estimates rise sharply and then decay. A dashed red line sloping toward the send illustrates a pre-trend that would signal a problem.
Figure 5. Before the send, estimates should stay near zero. A drift toward the send would mean the groups were already diverging before anyone received the message.

We don’t see a meaningful pre-trend: pre-send differences are negligible next to the post-send effects. If we did, the econometrics literature offers ways to deal with it: explicitly modeling the trend in the regression, for example with a group-specific time trend, or applying one of the recently proposed corrections for event-study designs, which bound the post-send deviation using the pre-send one or use additional variables that track the confounder.4 These fixes come at a price, though.

First, they leave an important question outside the estimate itself: what mechanism created the pre-trend, and what kind of selection is it? For us, that’s not a nuisance to be adjusted away. Audience targeting is one of the questions we care about most, and a pre-trend would be a direct signal about how campaign audiences are chosen.

Second, they go to the heart of the design’s assumptions. Parallel pre-trends are only a suggestive indicator of parallel post-trends – the assumption that actually matters. Mechanically “fixing” a pre-trend gives little assurance about the counterfactual post-trend, and it requires an additional assumption: that the selection process behind the pre-trend is stable, and would have kept shaping recipients’ behavior after the send in the same way it did before.

Is it the click or the clicker?

Clicking is a choice that subscribers make after the message arrives, so clickers are not a random slice of recipients. Perhaps subscribers who were about to shop anyway are simply more likely to click. Two pieces of evidence speak to that concern. First, clickers’ behavior before the send looks the same as everyone else’s; if they were already on their way to the store, it would show up in the pre-period. Second, recipients who don’t click show no meaningful lift in purchases per subscriber.

Neither piece of evidence is conclusive. A subscriber who happens to be in a shopping mood at the very moment the message arrives may both click and buy, and nothing in the pre-period would reveal it. And because only a small share of recipients click, even slight negative selection among non-clickers would correspond to strong positive selection among clickers.

The comparison that doesn’t depend on who chooses to click is all recipients versus control. Its effect is the click rate times the effect among clickers, plus the share of non-clickers times the effect among non-clickers. That gives us a cross-check: if the campaign does nothing for subscribers who don’t click, the effect per click should equal the effect on all recipients divided by the click rate – the same ratio logic as the LATE in our previous post. When the two agree, selection into clicking is less likely to be driving the clicker estimates.

For the same reason, we read the clicker comparison as the effect of a campaign for subscribers who choose to engage with it, not as the effect of a click on a random subscriber. And for site visits and browsing, part of the clicker effect is mechanical – a click on a link is itself a site visit – which is why purchases and opt-outs are the outcomes that matter most.

The three-way comparison tells a different story for opt-outs. Opt-outs rise among recipients who didn’t click by a large share of what clickers show. Because non-clickers are nearly everyone, most incremental opt-outs come from the send itself rather than from engaging with the content. For marketers, that points toward targeting subscribers who are likely to click and making campaigns more clickable, rather than sending more broadly.

When does the effect happen, and how much does it add up to?

Bin-by-bin estimates answer a question about timing. Each pointwise estimate measures the extra share of a group that experiences an outcome within a bin – for example, the extra share of clickers who purchase between minutes 15 and 20 after the send. The pointwise series shows when the behavior happens, and it’s the series the pre-trend check looks at.

For decisions, the more useful number is usually the total. A cumulative estimate measures the extra share of a group that has experienced the outcome at least once by a given time since the send – for example, the extra share of clickers who have made at least one purchase by the end of the first day.

Two panels over five days after a send. Left: the pointwise estimate spikes right after the send and decays within hours, with small spikes every 24 hours. Right: the cumulative estimate rises quickly in the first day and then grows slowly in small daily steps. A dotted line marks 24 hours, and the area after it is shaded.
Figure 6. Pointwise estimates show when an effect happens; cumulative estimates show how much it adds up to. Small spikes every 24 hours come from the following days’ campaigns.

Longer horizons bring a practical complication. Brands send campaigns regularly, and subscribers who received today’s campaign are also more likely to receive tomorrow’s. In the pointwise estimates, this shows up as small spikes every 24 hours after the original send. Those spikes mark the point where the clean comparison starts to blur, which makes the 24-hour mark a natural horizon for reading causal effects. Longer horizons are still informative, but they increasingly measure today’s campaign together with the later sends that tend to follow it.

The average campaign or the average subscriber?

There are two natural ways to pool thousands of campaigns. In the unweighted version, each campaign counts as one observation in every cell, regardless of its audience size, so the estimate describes the average campaign and the largest senders don’t mechanically dominate. In the weighted version, each campaign counts in proportion to its audience, so the estimate describes the average subscriber. Neither is “right” – they answer different questions.

Bar chart of seven hypothetical campaigns, each drawn as wide as its audience, with smaller campaigns showing larger effects per click. A dashed line marks the unweighted average across campaigns, and a lower dashed line marks the average weighted by audience size.
Figure 7. Two ways to average the same campaigns. Each bar is a hypothetical campaign; its width is its audience size.

When effects are similar across campaigns, the two estimates agree. When they differ, the gap itself is informative: it tells us that effects vary with campaign size. Comparing the two for conversions and opt-outs separately shows whether smaller and larger campaigns get the same exchange of purchases for unsubscribes, and when in the life of a campaign any difference opens up. Campaign size isn’t just brand size, though: targeted campaigns are smaller by design, so a gap between the two can reflect targeting as much as scale.

Is it the audience or the campaign?

The same machinery can evaluate campaign levers: targeting a segment instead of sending to everyone, bypassing fatigue rules, winning back subscribers who didn’t click a previous campaign, retargeting subscribers who clicked but didn’t purchase, or reaching low-propensity shoppers.

Every lever like this delivers two treatments at once: the campaign message itself, and the selection of the audience that receives it. What we measure is the combination of the two, and we want to disentangle them – not because one part is good and the other bad, but because each is something a marketer can improve.

For us, selection is an important, good part of the effect. The difference-in-differences design already removes one bad kind: stable differences in how likely subscribers were to buy anyway. As long as the audiences would also have trended alike, what remains when we compare them is closer to what economists call selection on gains – careful targeting picks subscribers who respond more to the message.5 Part of a campaign’s effect comes from that targeting, and that part can be improved too. Parallel trends deserve the most care for segments chosen on recent behavior, such as retargeting and win-back audiences, whose activity may already be rising or fading on its own.

Disentangling the two treatments takes care. Campaigns that use a lever are chosen deliberately, and they may differ from other campaigns in ways that have nothing to do with whom they target: a stronger offer, a more engaged brand, a better-timed send. To separate the audience from the campaign, we look through three lenses. The second and third apply when a campaign’s recipients include both subscribers picked by the segment and others, as when a retargeting or win-back segment is added to a broader send:

  1. Between campaigns. Compare the event-study estimates of campaigns that use the lever with those of campaigns that don’t. This is the headline comparison, and it measures the message and the audience selection as a bundle.
  2. The untargeted audience. Compare recipients of lever campaigns who were not selected by the segment with recipients of other campaigns. If these subscribers also do better, the difference is likely about the campaign – its message, offer, or brand – rather than the audience.
  3. Within the campaign. Compare targeted and non-targeted recipients of the same campaign. Holding the message, brand, and send time fixed, differences reflect the audience selection – as long as the two audiences would have trended alike.

Is it the audience or the campaign?Three lenses for evaluating a targeting lever, from the broadest comparison to the most controlled1Between campaignsUses the leverOther campaignsvs.Campaigns that use the lever vs. othercampaigns. The headline comparison, but itmixes the lever with everything else thatdiffers about these campaigns.2The untargeted audienceUses the leverOther campaignsvs.Recipients of lever campaigns who weren'ttargeted vs. other campaigns. If they alsodo better, the difference is about thecampaign, not the audience.3Within the campaignUses the levertargetednottargetedTargeted vs. non-targeted recipients of thesame campaign. Same message, brand, andsend time, so differences reflect the audience.selected by the lever's segmentother recipientsoutlined: the subscribers comparedbroader: more campaigns, more room for other differencesmore controlled: the same campaign

Figure 8. Three lenses for evaluating a targeting lever, from the broadest comparison to the most controlled.

When the three lenses agree, we can be more confident about how much of a lever’s effect comes from whom it targets and how much from the campaign itself. When they disagree, they tell us where to look next – and often point toward a randomized test.

One caution applies to all three lenses. A lever can change who clicks as well as how much each click is worth. A lever that brings in many marginal clickers may lower the average effect per click while raising the campaign’s total effect, so we look at click rates alongside effects per click rather than comparing per-click effects alone.

What event studies give us

Campaigns don’t come with a convenient cutoff, but they do come with a precise clock. An event study uses that clock: by lining up thousands of campaigns on their own send times and comparing how recipients and non-recipients change around each send, it separates a campaign’s effect from the rhythms of the day, the week, and the market.

Three groups instead of two turn a single estimate into a richer picture: the causal effect on all recipients, and how it divides between subscribers who click and those who don’t. Pointwise and cumulative estimates show when effects happen and how much they add up to, weighting shows whether they differ by campaign size, and three lenses help separate the two treatments every campaign delivers – the message and the audience it reaches.

The design has limits. It relies on parallel trends, which we can support but never prove, and on a horizon short enough that later sends don’t blur the comparison. Where the lenses disagree, the right next step is a randomized test. But for the everyday question of what a campaign caused, event studies let us answer it at scale, across thousands of campaigns, without holding back messages from anyone.

Notes

  1. A brand’s reachable subscribers are everyone who received at least one SMS from the brand in the 12 months before the campaign. Control subscribers are on that roster but didn’t receive this campaign.
  2. We focus on the largest campaigns by send volume and use each brand’s first campaign send of the day, grouping messages fired within 30 minutes of each other into a single send anchored on the earliest message receipt, so in the first minutes after zero some recipients are still waiting for their message. We also cap the number of campaigns per brand so that the largest senders don’t dominate the sample.
  3. Campaigns from the same brand share subscribers and may share brand-level shocks, which could make their estimates correlated and campaign-level clustering too optimistic. As a specification check, we also clustered standard errors at the brand level, with no meaningful differences. This is consistent with the design: each campaign is compared with its own control group, so persistent brand-level differences cancel out; because we keep only each brand’s first send of the day, a brand’s campaigns go out on different days and don’t share the same short-lived shocks, including the day-to-day shopping swings of the subscribers they have in common; and the cap on campaigns per brand keeps brand-level clusters small.
  4. See, for example, Freyaldenhoven, Hansen, and Shapiro (2019), “Pre-event Trends in the Panel Event-Study Design,” American Economic Review, and Rambachan and Roth (2023), “A More Credible Approach to Parallel Trends,” Review of Economic Studies. Roth (2022), “Pretest with Caution,” American Economic Review: Insights, also shows that conditioning an analysis on passing a pre-trend test can itself distort the resulting estimates.
  5. The idea goes back to Roy (1951), “Some Thoughts on the Distribution of Earnings,” Oxford Economic Papers, in which people sort into occupations based on their own expected gains. Heckman, Urzua, and Vytlacil (2006), “Understanding Instrumental Variables in Models with Essential Heterogeneity,” Review of Economics and Statistics, discuss the econometrics of selection on gains.
View all articles

Discover what it's like to work for us —
our culture, benefits, values, and more.