Try ContactLevel Audiences with 10,000 contacts for free Sign up free

Summary: Signal-Based Advertising: What Signal Ads Actually Are

What signal-based advertising is, which buying signals are real, which are noise, and what you can actually act on. A working guide to signal ads.

Key Features and Benefits:

  • Signal-based advertising triggers ads off what a buyer just did — a pricing-page visit, a job change, a competitor comparison — instead of which static list they sit on. Amazon Ads defines signals as "consumer events and behaviors, at particular moments in time, that can indicate interests and affinities."
  • Sort every signal by two questions before you build anything: did someone actually observe it, and is it attached to a person or only to a company? Only observed, person-level signals can be advertised to by name. Everything else is a filter, not a trigger.
  • The hard part is not the signal, it is the audience. LinkedIn will not deliver a matched audience until 300 members match, so a five-person "visited pricing today" segment does not exist as far as the platform is concerned.
  • Signal freshness is unmeasured in this category. One vendor page puts B2B data decay anywhere between 22.5% and 70.3% a year — a threefold spread on the number the whole premise depends on.
  • Signal and identity are two separate purchases. Buyerfeeds sells person-level intent, ContactLevel matches named people onto LinkedIn, Meta, Google, Reddit and X at 70-99%. Neither one is a substitute for the other.
  • If you searched "signal ad," at least four unrelated products carry that name. The advertising one is what this page covers.

Signal-based advertising.

What signal-based advertising is, which buying signals are real, which are noise, and what you can actually act on. A working guide to signal ads.

DH
Dag HolmenCMO
12 minute read

Signal-based advertising triggers ads off what a buyer just did rather than which list they sit on. The trigger is a dated event — a pricing-page visit, a job change, a competitor comparison — and the ad runs while it is still fresh. The idea is sound. The part nobody publishes is which signals survive contact with an ad platform.

Last reviewed: 2026-07-29.

I run a contact-level advertising platform, so I sit on the activation end of this. That is also why I am writing the version of this page that starts with the constraints instead of the promise.

Every vendor page on this topic describes the same happy path: a buyer does something, an audience updates, an ad appears. All true. What none of them tell you is that roughly half the signals people get excited about cannot be advertised to at all — because they are attached to a company rather than a person, because the audience they produce is too small for the platform to deliver, or because nobody actually observed the event.

So this page does four things. It disambiguates the search term, which is messier than it looks. It sorts the real signals from the noise with a table you can argue with. It explains why audience floors, not signal quality, kill most signal programmes. And it says plainly what this approach cannot do.


If you searched "signal ad," which one did you mean?

Worth clearing up first, because the live July 2026 search results for signal ad and signal ads are four different industries wearing the same name.

What you may have meantWhat it actually isWhere to go
Signal-based advertising (B2B)Building ad audiences from observed buyer events instead of static listsThis page
Signal-based marketing (retail/DSP)The addressability sense: reaching audiences without third-party cookies. Amazon Ads' framingAmazon Ads' guide
Signal's adsThe encrypted messenger's 2021 Instagram campaign that displayed the ad-targeting data used to serve it. Signal said the campaign got its ad account disabled; Facebook said the ads were never actually submitted. It went viral either waysignal.org
Sovrn SignalA publisher-side product that sets dynamic ad floors from attention and auction data. Sell side, not buy sidesovrn.com/signal
Ad SignalA UK software company doing content management and ad tracking for broadcasters and post-productionAd Signal coverage

If you are a B2B marketer, you want the first row, and the second row is the useful cousin. Keep reading.


What is a signal ad?

A signal ad is an ad whose audience membership is driven by a dated event rather than by a fixed attribute. The event is the trigger; the ad is the response. "VP of Engineering at a 500-person SaaS company" is an attribute. "Read the pricing page twice this week" is a signal.

Amazon Ads gives the cleanest neutral definition of the underlying unit. Signals are "a wide range of consumer events and behaviors, at particular moments in time, that can indicate interests and affinities", and signal-based marketing is "leveraging available signals and machine learning to deliver relevant messages without the need to rely on third-party cookies."

Note the phrase doing the work: at particular moments in time. A signal without a timestamp is an attribute. An attribute without a decay window is a list.

The reason the category exists now rather than five years ago is addressability. Amazon's own guide puts almost 40% of web traffic and 37% of app traffic outside the reach of traditional methods today, and says brands running its DSP saw a 20% to 30% increase in addressability on Safari, Firefox and iOS — that second figure is footnoted as Amazon internal US data from 2022 across 140,000 campaigns, so read it as directional and four years old. The cookie-shaped hole is real even though Chrome reversed its deprecation plan in 2025. Signals are one of the things filling it.


Which signals actually exist, and which can you act on?

Here is the table I wish somebody had handed me. Two columns matter more than the rest: observed or inferred, and person or company. A signal that is inferred and company-level is a prioritisation input. Only a signal that is observed and person-level can start a campaign aimed at a named human.

SignalSourceObserved or inferredPerson or companyRoughly how long it stays trueCan you build an ad audience from it alone?
Ad clickYour ad accountObservedPersonDaysYes
Pricing / demo page visit by a known contactYour site + your own audienceObservedPersonDaysYes
Product usage eventYour productObservedPersonDays to weeksYes
CRM stage change, demo no-show, closed-lostYour CRMObservedPersonWeeksYes
Renewal or contract dateYour CRMObservedPersonKnown in advanceYes
Email or sequence engagementYour sequencerObservedPersonDaysYes
Person-level third-party researchAn intent feed such as BuyerfeedsObserved by the feedPersonDays to weeksYes
Job changeContact data vendorObserved, but latePersonMonths, and it is a one-offYes, if the record is fresh
Anonymous visitor identificationRB2B, Dealfront, DatamoonObserved then resolvedPerson, partiallyDaysYes, at the coverage the vendor publishes
Third-party topic surgeBombora, 6sense, DemandbaseObserved in aggregateCompanyWeeksNo — prioritise accounts, then resolve people
Technographic installContact data vendorInferredCompanyMonthsNo — it is a filter
Funding round, headcount growth, hiringNews and job boardsObservedCompanyMonthsNo — it is a filter
Modelled "person-level" intentVendor scoring modelInferredPerson, modelledUnstatedOnly if you accept a guess as a trigger
Homepage or careers-page visitYour siteObservedMostly anonymousDaysNo — fires on everyone, converts on no one

Two rows deserve a note.

Modelled person-level intent is the one to read the contract on. Several vendors now ship something with "person" in the product name that is a model estimating which member of a buying committee probably did the research. That is genuinely useful for sequencing sales outreach. It is not evidence, and if you spend media budget as if it were, you are paying CPM to a name a model picked. I go through which providers observe versus model in intent data providers.

Anonymous visitor identification is a real signal and a real product, and it is not what ContactLevel does. If you need to know which unknown human is on your site right now, run a tool built for it. RB2B publishes its own coverage on its pricing page: 15-20% for contact-level site identification, rising to 35-45% on its top tier, US only. That is a coverage figure for your traffic, not a list match rate, and mixing the two is the single most common mistake in this category — see B2B match rates for the three different things the phrase is used for.


Which signals are noise?

Four failure patterns, in order of how much money they waste.

→ The company-level signal treated as a person-level trigger. A dashboard says Acme Corp is surging on account-based marketing. Acme has 240 employees. The tool cannot tell you which one read anything. A rep filters by title, picks a VP, and writes about a topic that person may never have touched. That is not a signal, it is a coin flip with a subscription fee. The account surge is still useful — it tells you where to spend the resolution effort. It just is not a trigger.

→ The signal that fires on everybody. Homepage visits. Blog readers. Careers-page traffic. If a trigger matches 40% of your database it is a segment with a fresh timestamp, and it will perform exactly like your all-contacts audience because it very nearly is one.

→ The signal with an unstated decay window. This is the quiet one. There is no independent benchmark for B2B data freshness, and the published estimates do not line up with each other. Landbase's blog states that "B2B contact data decays between 22.5% and 70.3% annually" and gives no citation for that range. Cleanlist publishes a flat 22.5% a year and attributes it to a Dun & Bradstreet benchmark report. A threefold spread usually means the underlying samples differ rather than that anyone is wrong — but none of these figures come with enough method to check, ours included. Set your decay windows from your own data, and treat any vendor freshness number, including any of ours, as an estimate until somebody shows the working.

→ The signal you cannot reach. Covered next, because it is the big one.


Why the audience, not the signal, is the hard part

A signal audience is small by definition. That is the point of it. It is also why signal programmes stall.

Ad platforms enforce minimum matched audience sizes before they will deliver anything:

PlatformMinimum before delivery
LinkedIn300 matched members (LinkedIn Help)
Google Search, Display, YouTube100 active users in the last 30 days (Google Ads Help); Customer Match files need 100 user records minimum (Google Ads Help)
X100 matched (X Ads API; X's Business Help pages did not resolve on 2026-07-29)
RedditCommonly cited as 1,000 matched, unverified — Reddit's help centre returns an error shell, so this figure has no readable public source

Google is the lowest floor of the five, and it is the one people forget. Google cut the Search Network threshold from 1,000 active users to 100 in 2024, so a signal audience that is dead on LinkedIn can still run on Google Customer Match. That is the cheapest honest fix for a small audience, and audience minimums and filler accounts works through when to use it.

Now run the arithmetic on a real trigger. Say 40 known contacts hit your pricing page in a week. That is a strong signal and a healthy number for a mid-market B2B site. On LinkedIn it is worth nothing: 40 is not 300, and even at a perfect match rate the audience will not deliver.

And 40 is the optimistic version, because the platform does not receive 40 people — it receives however many of those 40 it can match to a real account. On a raw list of business emails that is commonly 2-20%. Forty becomes four.

That is the whole reason match rate matters more in signal-based advertising than in any other kind. In a broad campaign a mediocre match rate costs you reach. In a signal campaign it costs you the campaign, because you fall under the floor and nothing runs.

There are four honest responses, and the first three are better than the fourth:

  1. Widen the window. "Visited pricing in the last 30 days" instead of "today."
  2. Pool signals. One high-intent audience fed by six triggers, not six audiences of nine people.
  3. Route the small stuff to sales. Eight people is a terrible ad audience and an excellent call list.
  4. Raise the match rate so more of the people who did fire the signal actually reach the platform.

What you should not do is accept a vendor's offer to pad the audience up to the minimum with lookalike or filler accounts. That is how a 40-person signal audience becomes a 1,000-person audience of strangers, and how you end up paying to advertise to people who have never heard of you while your dashboard reports a healthy campaign. The mechanic, and what the padding is made of, is in audience minimums and filler accounts.


How is signal-based advertising different from intent data?

They get sold as the same thing and they are two different purchases.

Intent dataSignal-based advertising
What it isA source of buying signalsThe activation layer that turns signals into live audiences
Where it comes fromMostly purchased, mostly third-partyMostly your own site, product, CRM and ad accounts
What it resolves toUsually an account; sometimes a personWhatever you feed it
What it costsUsually quoted on request, annualPriced with your activation tool
What it cannot doReach anybodyGenerate a signal

You can run signal-based advertising with no purchased intent data at all, using nothing but your own events. Most teams should start there — first-party signals are observed, person-level and free, which is three properties no purchased feed gives you at once. I set out how to build that base in first-party data strategy.

And you can buy excellent intent data and be unable to run a single signal ad off it. That is the more common failure, and it is an identity problem rather than a data problem: the feed named an account, and an account cannot be added to an ad audience.

Where each layer sits in our own stack, since you should know the bias: Buyerfeeds is the person-level intent feed — you search a topic on the open web and get named contacts back, not an account surge. ContactLevel is the activation layer that puts those named people into ad platforms. Your CRM and sequencer do orchestration. That is the unbundled version of an annual enterprise ABM suite, and it is deliberately three tools rather than one. None of those suites publish a price, so I am not going to put a number on what you would otherwise pay — intent data providers documents who publishes what. More on the account-versus-person split in B2B intent data.


Which tools actually do this?

Named, with what each one contributes and what it does not. Checked against each vendor's live pages in July 2026.

ToolWhat it contributes to a signal programmePublished numbers (checked July 2026)What it does not do
ContactLevelActivation. Matches a named contact list to real ad accounts and syncs to LinkedIn, Meta, Google, Reddit, X; reports clicks per named person70-99% match rate. $1,000/month for 10,000 contacts, $3,000/quarter for 50,000 (pricing)Not a signal source. No anonymous net-new visitor ID, no third-party intent, no person-level impression tracking (what we track)
BuyerfeedsPerson-level third-party intent as a feed, via dashboard or APINot publishedNot an ad platform. It names people; something else has to reach them
VectorContact-level advertising and signal-driven audiences; markets itself on the "signal-based advertising" framingStates "match rates up to 45% on Google/Meta and 90% on LinkedIn"See ContactLevel vs Vector
RB2BAnonymous website visitor identification — a genuine upstream signal source15-20% contact-level site-ID coverage on its lower tiers, 35-45% on Pro+, US only; its company-level ID is listed as global. $79-$199/monthNot an activation layer. Identifies visitors, does not run the ads
Bombora / 6sense / DemandbaseThird-party topic intent; account prioritisationNot published; annual enterprise contractsAccount-level. Cannot start a person-level campaign on its own
HubSpotSyncs contact and company segments to Facebook, Google and LinkedIn from CRM listsNo match rate published. Warns that "audience size is expected to be significantly lower than the number of… contacts in the segment" (HubSpot)Sends the identifiers already on the record. No identity enrichment step
ClayWaterfall enrichment and workflow automation; syncs ad audiences to LinkedIn, Meta and GoogleNo coverage figure publishedEnrichment coverage varies by the providers you buy inside it; not an ad platform
ApolloB2B contact and account data, CRM enrichmentNo match rate publishedBusiness contact data for outbound. No ad-audience sync on its enrichment product
LinkedIn nativeContact and company targeting from a CSV300 matched member minimum; shows sub-5% when fewer than 300 matchMatches only what you upload. LinkedIn only

The pattern worth noticing: most of these publish no match rate at all, and the vendors who do publish one are measuring different things. Vector's 45% and 90% are list-to-platform match. RB2B's 15-45% is coverage of your website traffic. They are not comparable and they get compared constantly — the match-rate arithmetic goes through it vendor by vendor with sources.


What signal-based advertising cannot do

The section the category pages skip.

→ It cannot manufacture reach. Below the platform floor, nothing delivers. No amount of signal quality fixes an audience of nine.

→ It cannot identify your anonymous traffic. A signal is only a signal if you know who fired it. ContactLevel attributes a website visit to a named person only when that person is already in one of your audiences. For cold anonymous traffic you need an identification tool upstream, and we have customers running exactly that arrangement — an RB2B pixel feeding ContactLevel's audiences. Details in deanonymize website traffic.

→ It cannot tell you who saw the ad. ContactLevel resolves ad clicks to the individual person. Person-level ad impressions are on the roadmap and are not in the product today, and I am not putting a date on it because we have missed three. If per-person impression counts are a hard requirement, what we track says so plainly and names the vendor that does it.

→ It is weaker outside the United States. Person-level identification coverage is strongest in the US and degrades elsewhere. We have seen an EMEA list match as low as 25%. Test your own list before you build a signal programme on top of it.

→ It does not replace a demand base. Signals fire on people who already know you exist. If nobody is visiting your pricing page, a signal programme has nothing to work with, and the honest answer is a demand generation problem, not a targeting one.

→ It will not survive a bad decay assumption. Set the window from your own sales cycle, then check it. A 90-day "recent visitor" window on a 30-day sales cycle is a list.


How to run it without kidding yourself

  1. Inventory your own events first. Site, product, CRM, ad accounts, sequencer. Nearly everyone already has more first-party signal than they are using, and it is observed and person-level, which purchased data usually is not.
  2. Grade each one with the table above. Observed or inferred, person or company, decay window. Delete the company-level ones from your trigger list and move them to prioritisation.
  3. Do the audience arithmetic before you build. Expected weekly volume × expected match rate, against the platform floor. If it does not clear, widen, pool, or send it to sales.
  4. Fix the match rate, because it is the multiplier on everything. A trigger that fires on 500 people and matches at 20% delivers 100 matched — dead on LinkedIn. The same trigger at 70-99% delivers 350-495 and clears the floor. How to raise it.
  5. Measure per named person, not per audience. The reason to run signal ads instead of broad retargeting is that you can say which buyer clicked. If your reporting still ends at CPM and CTR, you bought the plumbing and kept the old scoreboard. ABM metrics covers what to put on the new one.

Go deeper.

B2B match rates — the reference page for what actually matches on each platform, and the three different things the phrase means.

B2B intent data — account-level versus person-level, and why the distinction decides what you can activate.

Intent data providers — eleven providers, which observe and which model.

Contact-level advertising — the activation layer in full: multi-platform reach, CPM maths, per-person attribution.

What we track today — the dated, versioned statement of what ContactLevel measures in production. It wins any disagreement with a marketing page, including this one.

See pricing — $1,000/month for 10,000 contacts, 14-day free trial, 10,000 contacts included.