guide · reaching B2B buyers early

Why cross-channel frequency capping rarely happens

A cap of four on each of four channels lets a household see the ad up to sixteen times.

Frequency capping limits how many times one person or household sees the same advertising in a period. Nearly every platform does it within its own inventory, and nearly none does it across sellers, which means a plan running on four channels with a cap of four on each is not capped at four. It is capped at up to sixteen, against households that appear on more than one of them. Doing it properly requires one exposure record that every channel writes into, keyed on something all of them can supply. That is a structural requirement rather than a setting, and it is the reason cross-channel frequency is claimed far more often than it is delivered. It is also why a plan that sets out to reach a market a number of times a week, as an AdBuyMCP awareness plan does, states that number as planned.

Free, with no card. We read your homepage, draft who buys from you and show your monthly price before you join the waitlist. Nothing is bought until you've approved the plan and the ads.

By James Rooney Updated

The problem
Caps are per-seller
What it needs
One exposure record
Exposure record keys
Four
Length
5 min read
sources2 linked and dated
On this page

key points

Remember these points if you read nothing else

These are the points most likely to change your decision, and the full guide follows below.

  1. 01

    A cap set on each platform separately does not produce that cap in aggregate. The overlap is invisible to every platform involved.

  2. 02

    Cross-channel capping needs one record keyed on something every channel can supply, which in practice means degrading gracefully from household to postcode sector.

  3. 03

    Adding up each channel's reach inflates a media report by exactly the overlap that capping would have caught.

  4. 04

    It matters most at launch, because a launch buys the same people repeatedly across channels by design.

01

Why per-platform capping does not add up

Each platform can see its own delivery and nothing else. When it caps at four, it means four exposures within its own inventory, to the identifiers it recognises. It has no visibility of the same household being reached by a different seller an hour earlier.

The consequence compounds with the number of channels. Two channels overlap somewhat; four overlap substantially, particularly when they are all targeting the same narrow audience. That is precisely what a well-briefed multi-channel plan does, so tighter targeting increases the overlap.

None of this shows in a per-channel report. Each one reports its own frequency accurately, and nobody computes the aggregate figure, which is the one a marketing director needs.

02

What a shared exposure record requires

To deduplicate across sellers you need every channel writing exposures into one record, keyed on an identifier they can all supply. The difficulty is that they cannot all supply the same one. A streaming platform can offer a household; a billboard can offer a postcode sector and nothing finer; a podcast can offer a delivery log.

The workable design is multi-key with graceful degradation: an opaque household key where available, a hashed advertising identifier where one exists, a consent-based identifier where the chain supports it, and a postcode sector as the coarsest key that always works. Precision varies by channel and the record says which key it used.

The record has to degrade this way because the channels supply different keys, and a spine that depended on one of them would lose every exposure that arrived without it. Multi-key is what keeps the record whole when a channel can only say where, not who.

03

Where identity resolution happens

A single record of who saw what across several channels is exactly the kind of dataset that deserves scrutiny, and the design decision that matters is where identity resolution happens.

The defensible arrangement is that the exposure record itself never performs an identity join: it stores whichever key it was given and never resolves it back to a person or across key spaces. Resolution happens in one separate module, which is then the only place a reviewer has to read to understand what is joined to what, and the only place a retention rule has to be enforced.

In AdBuyMCP that module holds hashed advertising identifiers for at most 90 days, after which the hash is persistently stripped from the event and the record re-graded to a coarser key rather than deleted. Today the exposure ledger is fed only by the deterministic sandbox, because a seller's live report proves aggregate delivery and not household exposure, and AdBuyMCP will not create an identity from a report.

04

Where it matters most

Launches need cross-channel capping most, because a launch campaign deliberately buys the same audience across several channels in a compressed window, which maximises overlap at exactly the moment somebody is going to report a combined reach figure to a board.

The second case is a narrow B2B audience. If your market is fifty thousand people in three cities, four channels aimed at them will overlap heavily by construction, and the difference between the deduplicated and naive reach figures can be large enough to change a decision.

The case where it matters least is a broad national consumer campaign with genuinely different audiences per channel, which is rarer than media plans imply.

05

A plan states its frequency as planned

Because nothing counts one person across sellers, a plan that promises a market a number of showings a week can only plan that number. AdBuyMCP's awareness plans are built on that limit. You pick 3, 5 or 12 times a week, and the plan defines the number this way: “Frequency is planned: each week we buy enough ads aimed at your market for it to see you that many times on average. Some of every channel's audience sits outside your market, and the weekly report shows what each channel delivered against the plan.”

No UK service de-duplicates frequency across out-of-home, streaming TV, podcasts and ChatGPT ads, so each channel's count is read on its own, in its own unit:

Out-of-home
Proof of play from the screen, and Route's modelled reach, impacts and frequency.
Streaming TV
Impressions and completed views, with reach and frequency by household within each seller.
Podcasts
Downloads and ad deliveries, counted from server logs to the IAB Tech Lab standard.
ChatGPT ads
Impressions, clicks, spend, click-through rate, cost per click, CPM and conversions. OpenAI reports no reach or frequency.

Sources: Route, TGI data fusion (industry body); OpenAI Ads developer documentation, Reporting (vendor docs).

Type your company website or work email to see who we think buys from you, how big your market is and what it costs at 3, 5 or 12 times a week.

Get my plan and price

Free, with no card.

limits

These limits apply to everything above

This guide describes how cross-channel capping works and what it requires. AdBuyMCP does not de-duplicate live campaigns across sellers today: its exposure ledger receives data only from the deterministic sandbox. Nothing brings viewshed panels, streaming logs or IP logs into it, and nothing writes a hashed identifier, a consent-based identifier or a postcode sector to it from live data. The journey view built on that ledger (a postcode sector exposed to a billboard and then to a CTV ad) shows the mechanism working and is no evidence about your campaign.

A 30-minute call with the founder will tell you whether any of these limits matters for your market.

where this came from

Every figure above comes from one of these

Outside figures link to the page that published them, with the day each was opened. Product facts name the part of AdBuyMCP they come from.

Published sources

  1. 01Route, TGI data fusionIndustry body · taxonomy dated 23 January 2025 · opened 20 October 2026
  2. 02OpenAI Ads developer documentation, ReportingVendor docs · opened 20 October 2026

AdBuyMCP’s own product facts

  • 01The four-key design, the identity boundary and the retention rule are read from AdBuyMCP's exposure ledger and its key-translation service.
  • 02The sandbox-only constraint is from AdBuyMCP's campaign workflow, which writes exposure rows only for sandbox runs.

bring your market

We'll price an awareness plan for your own market.

In a 30-minute call with the founder, we work out how big your market is, price 3, 5 and 12 times a week, and talk through how we'd balance the four channels for your market.

Free, with no card.

Talk your market and your plan through with James Rooney, who built AdBuyMCP and wrote its code.

Questions this guide gets asked

Can I just set the same cap on every platform?

You can, but each platform enforces it within its own inventory only, so the aggregate exposure for a household appearing on several channels is the sum rather than the maximum. Setting four on four channels permits up to sixteen. There is no configuration that fixes this from inside the platforms, because none of them can see the others.