Attribution

The three places your marketing loses its chain of custody

A chain of custody is the documented, unbroken trail that proves a piece of evidence is what someone claims it is. Marketing has no equivalent, which is why an ad platform and a sales system can describe the same month and disagree by tens of thousands of dollars. In every account we have opened, the chain breaks in the same three places: the hand-off to another domain, the conversation that happens off the website, and the missing join between a click and the record of the sale.

Answer first

If you want to know whether your marketing has a chain of custody, do this. Open your analytics, filter to the page a customer sees after they buy or book, and look at the traffic source. If more than about a third of those sales say Direct or Unassigned, the chain is broken and every optimisation decision you have made this quarter was made on partial evidence. The three fixes, in the order they pay: repair the hand-off between domains, track the phone and email conversations, and join the click identifier to the record in your CRM or booking system.

What a chain of custody actually means

In evidence law, a chain of custody is the record of who held a piece of evidence, when, and what they did with it. If any link is missing, the evidence is not necessarily false. It is simply no longer provable, which in a courtroom amounts to the same thing.

Marketing sells on the same standard without ever meeting it. An advertising platform reports a conversion because somebody who saw an ad later did something the platform could observe. Your accounting system reports revenue because money arrived. Those are two different claims about two different events, joined by an assumption nobody wrote down.

The platform is not lying. It is doing what it was built to do: counting what it can see, and modelling what it cannot. The problem is that its evidence handling would not survive five minutes of cross-examination, and it is the number people move budget on.

Break one: the hand-off

Most businesses that sell something complicated do not sell it on their own domain. A property manager sends the guest to a booking engine. A clinic sends the patient to a scheduling system. A retailer sends the buyer to a checkout that lives somewhere else.

At that boundary, the browser starts a new session. The campaign, the source and the click identifier that arrived with the visitor are attached to the old one. Unless somebody deliberately carried them across, the sale is recorded as if the customer arrived from nowhere. That is what Direct usually means in an analytics report. Not “they typed your name into a browser”, but “we lost the thread”.

This one break is enough to make a whole account unreadable. In one luxury vacation rental account, the platform reported $173,555 in revenue for a two-month window while only $100,646 could be traced to a confirmed booking. The gap of $72,909 was not fraud and it was not a modelling error. It was the hand-off.

Break two: the conversation

The second break is the one nobody instruments, because it does not happen on a website at all.

Someone clicks the ad, reads the page, and then picks up the phone. Or replies to an email. Or messages on WhatsApp. Every one of those is a strong buying signal, and every one of them is invisible to the platform that produced the click. In the same rental account, 61 percent of bookings began with a phone or email conversation with staff.

If more than half of your sales start in a conversation and none of those conversations are joined to a campaign, your ad account is optimising towards the minority of customers who happen to prefer forms. That is not a small bias. It systematically defunds the campaigns that produce your best buyers.

Break three: the missing join

The third break is the quietest, because both halves of the evidence exist. The click identifier is captured. The sale is recorded. Nobody ever joined them.

This is a database problem wearing a marketing costume. The click identifier arrives with the visitor and can be stored with the enquiry. The sale exists in a CRM, a property-management system or an order table. Joining the two is a small amount of engineering that almost nobody does, which is why almost nobody can answer the only question that matters: which specific advertisement produced this specific paying customer?

Until that join exists, everything upstream is an estimate with a confident font.

How to check your own chain in twenty minutes

You do not need a project to find out whether this applies to you. Four checks, in order.

  1. The Direct check. In your analytics, filter to the confirmation or thank-you page and look at session source. If Direct and Unassigned together exceed roughly a third, break one is present.
  2. The reconciliation check. Take last month. Write down the revenue your ad platform claims, the revenue your analytics claims, and the revenue your sales system actually recorded. Three numbers, one month. If they are within ten percent of each other you are in unusually good shape. Most accounts are not.
  3. The conversation check. Ask whoever answers the phone how many sales started with a call or an email last month. Compare that to how many conversions your ad account recorded. The difference is break two.
  4. The join check. Pick one real customer from last month and try to name the advertisement that produced them. If you cannot do it for one customer, you cannot do it for the account.

What to fix, in what order

Repair the hand-off first, because it is the largest and the cheapest. Carrying the campaign and click identifiers across the domain boundary is configuration, not construction, and it usually recovers the biggest share of the missing evidence. There is a step-by-step version of that repair in why your sales say Direct when the customer came from an ad.

Track the conversations second. Give the phone number a tracking layer so a call can be attributed to a campaign, and make sure the people answering log the outcome somewhere a machine can read. The longer version, including why grading a call matters more than counting it, is in your best customers call.

Build the join last, because it is the only part that is genuinely engineering, and there is a step-by-step version of it. Store the click identifier with the enquiry, carry it through to the sale, and import the confirmed outcomes back into the advertising platform so its bidding learns from real revenue instead of form fills.

Do all three and something quietly important changes. You stop arguing about whose number is right, because there is only one number.

Why we call it a chain of custody

We named this method Chain of Custody because the forensic standard is the right one. A marketing claim should be traceable to the sale that supports it, through an unbroken and documented set of links, and where a link is missing you should say so rather than model over it.

The rule that falls out of it is simple: proof before spend. Tracking is repaired before a dollar moves, because moving budget on broken evidence is how an account spends a year getting confidently worse.

Frequently asked

Is this the same as attribution modelling? No, and the distinction matters. A model distributes credit across touchpoints using assumptions. A chain of custody establishes whether a specific sale can be traced to a specific click at all. Modelling is a reasonable thing to do after the chain is intact. It is a poor substitute for it.

Does server-side tracking fix this? It helps with break one and does nothing for breaks two and three. Server-side measurement makes the hand-off more durable, but it cannot see a phone call and it does not join anything to your CRM.

Will my ad platform tell me the chain is broken? No. It reports what it can observe and models the rest, and it has no visibility into whether the sale ever happened. The discrepancy only becomes visible when you compare it against the system where money actually lands.

What if my numbers are already close? Then say so publicly and enjoy it, because it is rare. Run the reconciliation check once a quarter anyway. Chains break quietly, usually the week after somebody replaces a booking engine.

Find out what you can’t prove.

Free Attribution Leak Audit. Five working days. No pitch inside.