The Attribution Problem Nobody Wants to Solve
I have sat through hundreds of marketing performance reviews over the past eighteen years, and the attribution conversation follows the same script almost every time. Someone presents a dashboard showing which channels drove conversions. Someone else points out that the numbers do not add up because every channel is claiming credit for the same sales. Everyone agrees that attribution is broken. Then nothing changes, and we do the same thing next quarter.
The reason attribution stays broken is not technical. We have the tools and the math to do better. The reason is organizational. Attribution determines budgets, and budgets determine headcount, and headcount determines who has power. Fixing attribution means telling some teams that their contribution is smaller than they thought. Nobody volunteers for that conversation.
Why Last-Click Persists
Last-click attribution is the default in almost every analytics platform, and it survives not because people believe it is accurate but because it is simple and defensible. When the CEO asks “what drove revenue this month,” pointing at the last touchpoint before conversion gives a clean answer. It is wrong, but it is clean.
The deeper issue is that last-click creates a self-reinforcing cycle. Channels that typically appear late in the customer journey, like branded search and retargeting, look disproportionately effective. So they get more budget. With more budget, they capture even more last clicks. Their numbers look even better. Meanwhile, channels that do the heavy lifting early in the funnel, like content marketing, social awareness campaigns, and partnerships, look like they contribute nothing because they never get the last click.
I have watched organizations cut upper-funnel spend based on last-click data, see no immediate impact on conversions because the pipeline was already full, and then congratulate themselves on the efficiency gain. Six months later, the pipeline dries up and nobody connects it back to the budget cut. The feedback loop is too slow for last-click to ever self-correct.
First-Party Data as the Foundation
Before you can fix attribution, you need to fix your data. Specifically, you need a first-party data strategy that lets you track individual customer journeys across touchpoints without relying on third-party cookies or platform-reported conversions.
This starts with identity resolution. Every interaction a customer has with your brand, whether it is visiting your website, opening an email, calling support, or walking into a physical location, needs to be stitched together into a single customer record. This is harder than it sounds because people use multiple devices, multiple email addresses, and sometimes multiple accounts. But even imperfect identity resolution is dramatically better than no identity resolution.
The practical first step is instrumenting every owned touchpoint with consistent identifiers. Your website, your email platform, your CRM, your support system, and your transaction database should all be writing events to a common data layer with a shared customer ID wherever possible and a probabilistic matching layer where it is not. I have found that getting this infrastructure right is a twelve to eighteen month project for most organizations, and it is the single most valuable investment you can make in your marketing data stack.
Building a Customer Data Platform
I have built two CDPs from scratch, and in both cases the decision to build rather than buy came down to the same factors: we needed to join marketing data with operational and transactional data in ways that no off-the-shelf CDP supported, and we needed the flexibility to define our own attribution logic rather than being locked into a vendor’s model.
The core architecture is simpler than vendors want you to believe. You need an event collection layer that captures interactions across all touchpoints. You need an identity resolution layer that stitches those events into customer profiles. You need a computation layer that can run attribution models against those profiles. And you need an activation layer that pushes segments and scores back out to your marketing tools.
The event collection layer is the foundation, and the most important design decision is schema. Define your event taxonomy up front, even though you know it will evolve. Every event should have a timestamp, a customer identifier (or anonymous identifier that can later be resolved), a source system, an event type, and a flexible properties payload. I standardize on about thirty core event types and allow teams to extend with custom properties. Too rigid and you will miss important signals. Too flexible and your data becomes an unqueryable mess.
For the computation layer, I strongly prefer running attribution models in a warehouse rather than in a streaming pipeline. Attribution requires looking at sequences of events over time windows that can span weeks or months. This is a batch workload. Trying to do it in real time adds enormous complexity for marginal benefit. Run your models daily, or hourly if you must, against the warehouse.
Connecting Ad Spend to Revenue
The gap between “we spent this much on ads” and “we made this much revenue” is where most attribution efforts die. Platform-reported conversions are unreliable because every ad platform has an incentive to over-count. Your own analytics may miss conversions that happen offline or across devices. And the time lag between spend and revenue can be weeks or months, especially in B2B.
The approach I use is to maintain a spend ledger that records actual dollars out the door by channel, campaign, and day. Separately, I maintain a revenue ledger that records actual dollars in, tied back to customer records where possible. The attribution model is then the bridge between these two ledgers: given what we spent and what we earned, which spend most plausibly caused which revenue.
This is where multi-touch attribution models come in, and my honest assessment after implementing several of them is that they are better than last-click but still deeply imperfect. The models I have gotten the most value from are data-driven attribution models that use actual conversion paths to weight touchpoints, combined with marketing mix modeling at the channel level as a cross-check. When the bottom-up multi-touch model and the top-down mix model roughly agree, I have confidence in the allocation. When they diverge, it is a signal to dig deeper.
The Politics of Attribution
I mentioned earlier that attribution is an organizational problem more than a technical one. Here is what that looks like in practice. You build a better attribution model. It shows that branded search, which the search team has been optimizing for years, is getting credit for conversions it did not actually cause. It shows that the content team, which has been fighting for budget with anemic last-click numbers, is actually a significant contributor to pipeline.
Now you have to present these findings to the leadership team. The search lead will challenge your methodology. The content lead will enthusiastically endorse it. Neither reaction is about the math. It is about what the math implies for their team.
The way I have learned to navigate this is to never present a new attribution model as “the truth.” Instead, present it as one lens among several, and focus the conversation on decisions rather than credit. The question is not “which team gets credit for this revenue” but “if we shift ten percent of spend from channel A to channel B, what does the model predict will happen.” This reframes attribution from a scorecard to a planning tool, which is both more accurate and less politically explosive.
Practical Incrementality Testing
The gold standard for attribution is incrementality testing: running controlled experiments to measure the causal impact of marketing spend. In theory, this is straightforward. Hold out a group from seeing ads, compare their conversion rate to the group that saw ads, and the difference is your incremental lift.
In practice, incrementality testing is logistically painful and politically difficult. It requires turning off spend in some markets or for some audiences, which means accepting short-term revenue loss for long-term learning. Most organizations resist this, especially when quarterly targets are tight.
My approach is to start small and build credibility. Pick one channel where you have genuine uncertainty about incrementality. Run a geographic holdout test for four to six weeks: suppress spend in a few markets, keep spending in comparable markets, and measure the difference in conversion rates. The first test will not be perfect. Sample sizes will be smaller than you want. External factors will muddy the results. But it will give you a directional answer, and more importantly, it will establish the practice of testing.
Over time, I have built incrementality testing into the regular operating cadence, running one or two tests per quarter across different channels. The cumulative learning is enormous. After a year of testing, you have empirical evidence for which channels drive genuine incremental value, and that evidence is far more persuasive than any attribution model, no matter how sophisticated.
The uncomfortable truth about attribution is that perfect measurement is impossible. Customers do not experience your marketing as a sequence of discrete, measurable touchpoints. They experience it as a vague accumulation of impressions, conversations, and interactions that eventually tips into a decision. The best we can do is build measurement systems that are less wrong than the defaults, and pair them with experimental evidence wherever possible. That is not a satisfying answer, but it is an honest one.