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

Summary: ABM Metrics: What to Measure and What to Ignore

The ABM metrics worth reporting, the vanity ones to drop, account vs contact-level measurement, and what B2B attribution honestly cannot tell you.

Key Features and Benefits:

  • The four ABM metrics worth a standing report: buying-group coverage (what share of each account you can actually reach), engagement breadth (how many distinct people per account acted), pipeline movement in exposed accounts, and cost per engaged buying-group member. Everything else is a diagnostic, not a headline.
  • Impressions, CPM, CTR and reach are not ABM metrics. They are ad-delivery metrics reported at the audience level, and no ad platform resolves them to named individuals — LinkedIn states in its own help documentation that it does not always measure impressions or engagements at the individual member level.
  • Account-level and contact-level reporting answer different questions. Account-level tells you whether an account is warming. Contact-level tells you which member of the buying group is warming — Gartner puts a complex deal at 6 to 10 decision makers and Forrester's 2024 State of Business Buying found an average of 13 — which is the only version that changes what a rep does on Monday.
  • B2B attribution breaks in a specific, measurable way. When I reconciled ContactLevel’s own analytics in July 2026, the channel report credited AI search and Google organic with paying customers while all 225 individual visitors attributed to those channels had zero payment events on their own records. Channel-level revenue in most analytics tools is modelled, not observed.
  • ContactLevel does not offer a consolidated cross-channel report. A prospect asked for one in July 2026 and the honest answer was that it is not available. It still is not. Per-person ad impressions are also not in the production product.
  • Set a 90-day judgement window before you launch, not after. ABM reporting arguments are almost always arguments about a measurement rule nobody agreed on in advance.

ABM metrics that actually mean something.

The ABM metrics worth reporting, the vanity ones to drop, account vs contact-level measurement, and what B2B attribution honestly cannot tell you.

DH
Dag HolmenCMO
12 minute read

ABM measurement answers one question: are the named people inside your target accounts moving? That means tracking buying-group coverage, engagement by individual contact, and pipeline movement in exposed accounts — not impressions, CPM or CTR. Most ABM reporting fails because it measures ad delivery at the audience level and calls it account engagement.

Last verified: 2026-07-29. Every platform figure quoted below was read off the vendor's own live page on that date, with the URL cited.

I sell an ABM tool, so read this knowing that. I have also spent the last month auditing my own company's analytics and finding out how badly channel-level reporting can lie, which is the most useful thing in this guide and the part a vendor would normally leave out. It is further down.

Reporting comes up on roughly one in eight of the sales calls I take, and it arrives in one of two forms: "how would you report metrics, to see if you're on track?" or "can you have a consolidated report?" The first has a good answer. The second, from us, is "not available" — and I'll get to that too.


What is ABM measurement actually measuring?

Three things, and conflating them is where most ABM reports go wrong.

→ Coverage. Can you reach the people who decide? Before a single impression is served, what share of each target account's buying group is identified, matched and present in your ad audiences? This is a pre-campaign metric and almost nobody reports it.

→ Engagement. Did those people do anything? Clicks, site visits, content consumed, replies — ideally resolved to the individual, not to the account.

→ Progression. Did the account move? Opportunity created, stage advanced, cycle shortened, deal size changed, relative to accounts you did not touch.

A report that only covers the middle one is a report about ads. A report that covers all three is a report about ABM. The distinction matters because coverage failures and progression failures look identical in an engagement dashboard: both show low numbers, and the fix for each is the opposite of the fix for the other.


Which ABM metrics matter, and which are vanity?

Here is the split I'd defend in a board meeting. "Level it resolves at" is the column most metric lists omit, and it is the one that decides whether the number can carry the weight you are putting on it.

MetricWhat it tells youLevel it resolves atTrustworthy?Verdict
Buying-group coverageShare of each account's decision-makers you can actually reachPersonHigh — it is a count of your own listReport it. The most under-used ABM metric there is
Match rate on audience syncWhether your list survived contact with the ad platformAudienceHigh — the platform returns itReport it. A 30% match rate silently deletes 70% of your plan
Engagement breadth per accountHow many distinct people at an account actedPersonHigh, if you have person-level trackingReport it. The single best early indicator of a real deal
Pipeline movement in exposed accountsWhether ABM changed anythingAccountMedium — needs a control groupReport it. With a held-out set, or don't bother
Cost per engaged buying-group memberEfficiency in a unit that matches how B2B buysPersonMedium — depends on engagement definitionReport it. Replaces CPL, which is meaningless with 13 buyers
Deal velocity, exposed vs held-outWhether ads compress the cycleAccountMedium — needs enough deals to be stableReport quarterly, not monthly
Click-through rateWhether the creative worksAudienceHighDiagnostic. Optimise on it, don't report it upward
CPMWhether you are overpaying for deliveryCampaignHighDiagnostic. Useful for channel mix, not for ABM outcomes
FrequencyWhether you are burning the audienceAudienceMediumDiagnostic. Watch it, don't celebrate it
ImpressionsHow many times an ad was served to a segmentAudienceMedium — partly modelledVanity. Not resolvable to a person on any major platform
ReachSize of the audience touchedAudienceMediumVanity. Reach without identity is not account coverage
Total leads / MQLsForm fillsPerson, but the wrong peopleMediumVanity in ABM. The committee member who fills the form is rarely the one who decides
Account "engagement score"A vendor's weighted compositeAccountLow — the weights are usually opaqueVanity unless you can see and change the formula
Intent surge score, no namesThat someone at an account is researchingAccountLow to mediumVanity for advertising. You cannot target a surge score
Platform-reported conversionsModelled outcome countsCampaignLow for B2BTreat as a directional index, not a fact

The row that causes the most arguments is impressions, so let me be exact about it.

No major ad platform reports impressions resolved to a named individual. LinkedIn says so in its own documentation: "we don't always measure impressions or engagements at the individual member level," and results are approximated "within three units (impressions, clicks, or conversions) of actual results in almost all cases" (LinkedIn Marketing Solutions Help, checked 2026-07-29). The same page notes that the professional-demographic bars "will only show if there is enough data per reporting facet to protect member identity."

That is not LinkedIn being cagey. It is a privacy floor, and it means that when a report tells you "Acme received 9,000 impressions," you have learned something about a segment, not about a person.

The gap between those two sentences is where ABM reporting credibility goes to die. A B2B marketing lead wrote the clearest version of it I have seen, in a note about their own LinkedIn programme: cold outreach recipients said "never heard of you" despite 9,000+ account impressions. The report was not lying. It was answering a different question than the one they thought they had asked.


How do you measure at account level vs contact level?

These are two different reports and most teams try to run one.

Account-levelContact-level
The unitThe organisationThe named individual
Typical question answered"Is Acme warming up?""Is the CFO at Acme warming up?"
How it is usually producedReverse-IP resolution, firmographic match, or roll-up of anonymous signalsIdentity graph match on a known contact record
What it can't tell youWhich of the 6-13 people movedAnything about people you never identified
Failure modeOne noisy champion looks like account-wide momentumCoverage gaps look like disengagement
Who sells itMost legacy ABM platforms — 6sense, Demandbase, TerminusA much shorter list
What sales does with itPrioritises the accountKnows who to call and what they read
Reporting costLow — it aggregatesHigher — it requires an identity layer

The practical rule: use account-level to decide where to spend, and contact-level to decide what to do. An account-level score tells a rep that Acme is interesting. A contact-level record tells them that the VP of Engineering read the security page twice and the economic buyer has never engaged, which is a different call and a different email.

There is a structural reason contact-level is harder, and it has nothing to do with reporting. Ad platforms match on personal identifiers. Your CRM holds work emails. Nobody signs up to Meta with their work email, which is why a raw CSV upload matches a fraction of the list and an enriched one matches far more — the full version of that argument is in B2B match rates. If your list doesn't match, you don't have a coverage problem in reporting; you have one in reality, and the report is telling you the truth.


How do you build an ABM reporting framework?

Four layers, in the order the data becomes available. Each layer has an owner, a cadence, and a number that either passes or fails.

Layer 1 — Coverage. Report before you spend.

For each target account, count the buying-group roles you have identified, then count how many of those people are matched and live in an ad audience.

Account coverage = matched contacts in audience ÷ identified buying-group members
Programme coverage = Σ matched contacts ÷ Σ identified buying-group members

Run this before launch and monthly thereafter. If programme coverage is below ~50%, no amount of creative work will fix the campaign, and every downstream metric is measuring the wrong half of your target list.

Watch the platform floor while you're here. LinkedIn states that "the minimum audience size required for an ad set is 300 member accounts, but we suggest a minimum of 50,000 to drive results" (LinkedIn Marketing Solutions Help), and separately that an uploaded contact list "must have at least 300 rows for a successful upload" and "must match a minimum of 300 member accounts to be used in an active ad set" — with the recommendation to upload "lists with at least 10,000 personal or professional email addresses" to reliably clear that threshold (LinkedIn Marketing Solutions Help, both checked 2026-07-29). Google Ads requires a Customer Match list to keep "at least 100 members added or updated within the last 540 days" to stay eligible (Google Ads Help, checked 2026-07-29). A 40-account ABM programme with six contacts each is 240 people — below LinkedIn's floor before you start. That is a reporting fact as much as a targeting one, and it is where platform audience minimums start doing quiet damage to your numbers — padding a list to clear a floor is exactly how filler accounts get into an audience you are about to report on.

Layer 2 — Delivery. Diagnostic only.

Impressions, CPM, frequency, spend pacing, and the demographics breakdown. Weekly, owned by whoever runs the ads. Nothing from this layer goes in the executive report except spend.

The one delivery number worth escalating is frequency against a stalled audience — high frequency plus flat engagement means the creative is exhausted, not that the accounts are cold.

Layer 3 — Engagement. Person-level, weekly.

Not "how many clicks." How many distinct people, at how many distinct accounts, and which roles.

What to countWhy this and not the obvious alternative
Distinct engaged contacts per account40 clicks from one champion is one data point, not 40
Roles engaged vs roles targetedReveals whether you're reaching the economic buyer or only the user
New contacts appearing at a known accountThe buying group is expanding — the strongest pre-opportunity signal there is
Site visits by named contactHigher intent than a click; tells you what they're worried about
Days since last engagement, per accountDecay is a signal. Most dashboards only show accumulation

Layer 4 — Progression. Monthly and quarterly, with a control group.

Randomly hold out 15-20% of your target account list from ABM spend. Compare opportunity creation rate, stage progression, average deal size and cycle length between the exposed set and the held-out set over a fixed window.

Fix the window before you launch. Ninety days minimum, longer if your median cycle is longer. Every ABM reporting fight I have watched is really a fight about a measurement rule nobody agreed on in advance.

A worked example — illustrative inputs, not benchmarks

Numbers below are made up to show the arithmetic. They are not ContactLevel data and they are not industry averages.

StepFigureWhere it comes from
Target accounts50Your ICP list — see ideal customer profile
Buying-group members identified6 per account = 300CRM plus enrichment
Matched into ad audiences231Layer 1
Programme coverage77%231 ÷ 300
Distinct contacts engaged, 90 days64Layer 3
Accounts with ≥2 distinct people engaged19 of the 40 exposedLayer 3 — the number I'd actually watch
Spend$18,000Ad accounts
Cost per engaged buying-group member$28118,000 ÷ 64
Opportunities, exposed set (40 accounts)7CRM
Opportunities, held-out set (10 accounts)1CRM
Lift indication17.5% vs 10% opportunity rateDirectional at this sample size — say so

The last row is the honest one. Seven opportunities against one is not statistical proof of anything; it is a directional read on a small sample. Report it as directional and you keep your credibility. Report it as "ABM drove a 75% lift" and you lose it the first time someone checks.

One number this table deliberately stops short of is acquisition cost, because it needs win rate, deal size and gross margin that no ad platform holds. Run those through the CAC calculator and report blended CAC, paid CAC and payback months alongside the coverage figures rather than instead of them.


Why is B2B attribution so hard?

Because the model that produces the number and the record that proves it are two different things, and almost nobody reconciles them.

Here is a first-hand example, from my own company, in July 2026.

I audited ContactLevel's website analytics to work out which channels were producing paying customers. The channel report was clear: AI search had produced paying customers, and Google organic had produced more. Sensible numbers, a tidy chart, exactly the kind of thing that ends up on a slide.

Then I pulled the individual visitor records instead of the channel report. Every visitor with an AI-search first touch over a six-month window — a complete cohort, 45 people. Every Google-organic first-touch visitor in the most recent 30-day window — also a complete cohort, 180 people. All 225 of those individual records had zero lifetime payment events. Not "fewer than the report said." Zero. The channel report and the visitor records could not both be describing the same customers, and only one of them was made of observed data.

Where were the actual payers? The ones I could verify at visitor level were returning desktop visitors with no referrer and no UTM, most of them last seen inside the product app rather than on the marketing site. In channel-report terms: Direct. In reality: people who had been in the market for weeks, heard about us somewhere untrackable, and typed the domain.

Three lessons, and they generalise well beyond my analytics setup:

  1. Channel-level revenue in most analytics tools is modelled. It is a reasonable statistical guess distributed across channels. It is not a list of customers. Ask any tool that reports revenue by channel to show you the individual converting visitors behind a channel. If it can't, you have a model, not a measurement.
  2. The dark funnel is not a metaphor, it is the Direct bucket. A podcast mention, a Slack group, a LinkedIn comment thread and a colleague's recommendation all arrive as Direct with no referrer. Every one of those is a real acquisition channel with zero reporting surface.
  3. The cheapest fix is not a better attribution model. It is a source field. Our own CRM had no acquisition-source attribute anywhere on the company, person or workspace record. Capturing first-touch referrer and UTM at signup and writing it to the billing record costs a day of engineering and makes every future channel decision checkable. We had spent months arguing about models when the missing thing was a field.

Add to that the structural problem specific to B2B: a typical purchase involves multiple people across multiple departments (the sourced figures are in ABM statistics), so the person who converts is routinely not the person the ad reached. Last-click attribution isn't slightly wrong in B2B. It is asking the wrong question.

What about view-through?

Treat view-through conversions as a directional index and never as revenue. They depend on impression data the platform models rather than observes, they are unverifiable against a person, and they are the mechanism by which retargeting campaigns take credit for demand they did not create. If a channel's case rests on view-through, run a holdout for a month and watch what happens.

The attribution settings you should at least know

GA4 uses data-driven attribution by default — its own documentation states that key events "use the data-driven attribution (DDA) model by default, but are modifiable" — with a default 90-day conversion window (Google Analytics Help, checked 2026-07-29). Read that plainly: the number GA4 hands you out of the box is already a model, not a count of observed last touches. GA4 also cannot name anyone: Google's contracts "prohibit customers from sending Personally Identifiable Information to Google Analytics" (Google Analytics Help). So your web analytics can tell you a channel story and can never tell you a person story. That is the whole reason a separate identity layer exists — the mechanics of which are in who is visiting my website.


Which tools can report ABM metrics, and at what level?

Read this as "which layer does each thing serve," not as a ranking. Most working setups use three of these at once.

ToolReports atBest layer it servesCross-channel consolidationWhat it can't do
LinkedIn Campaign ManagerSegment / demographic facetLayer 2 deliveryLinkedIn onlyName an individual; it states it doesn't always measure at member level
Meta Ads ManagerCampaign / audienceLayer 2 deliveryMeta onlyPerson-level anything; B2B firmographics
Google Ads + GA4Channel / sessionLayers 2 and 4Google properties, plus imported dataName anyone — PII is contractually prohibited
Your CRMAccount and contactLayers 3 and 4Everything you write into itTell you what happened before the record existed
Legacy ABM suites (6sense, Demandbase)AccountLayers 1 and 4 at account levelBroad, within their own stackResolve advertising engagement to a named person
Influ2Named contactLayer 3, including ad exposureWithin its own delivery networkBreak exposure out by platform or placement
ContactLevelNamed contactLayers 1 and 3No — see belowPer-person ad impressions; consolidated cross-channel reporting
BI layer (Looker, Metabase, a warehouse)Whatever you loadConsolidationThis is the actual answerFix data that was never person-level to begin with

Two notes on rows a table will always flatten.

Influ2 is the one vendor in this list that sells contact-level ad reporting as its headline. Its own site says you "know who you reached by name" (influ2.com, checked 2026-07-29). That is a genuine capability we do not have, and it is the honest reason a deal goes their way — the full head-to-head, including where it costs you, is on ContactLevel vs Influ2.

The BI row is not a cop-out. If a single consolidated cross-channel report is a hard requirement, the answer in 2026 is still a warehouse and a BI tool sitting above the ad platforms. No ABM point solution I know of, mine included, delivers it out of the box.


What does ContactLevel not report?

This is the section that would normally be missing, so here it is in full.

No consolidated cross-channel report. A prospect asked us in July 2026 whether they could get one consolidated report across platforms. The answer we gave on the call was "not available." That was accurate then and it is accurate now. ContactLevel reports per audience and per platform; it does not roll LinkedIn, Meta, Google, Reddit and X into one exportable cross-channel view. If that is a procurement requirement, plan for a BI layer.

No per-person ad impressions. ContactLevel tracks clicks and website visits resolved to the individual contact. It does not report how many times a specific named person saw your ad — not on any platform, not on any plan. Person-level impression tracking is on the roadmap; it is not in the product today, and we are not publishing an ETA because we have missed three. The full dated statement is on what we track, which wins any disagreement with any other page on this site.

No anonymous visitor identification. We name a website visitor when that person is already in one of your ContactLevel audiences. We do not name cold, net-new traffic. If you need that, run RB2B, Dealfront or Datamoon upstream and activate their output through us — that is a live customer pattern, not a brush-off.

No email or call tracking. We are not in your inbox, dialler or calendar. Those signals have to come from your CRM.

What ContactLevel does report: match rate per audience per platform on sync (Layer 1), and clicks and website visits by named contact (Layer 3). That covers the coverage metric almost nobody else can produce and the engagement-breadth metric that predicts deals. It does not cover Layers 2 and 4, and pretending otherwise would make this page worthless.

Published plans, so you can price the reporting against the spend: Grow at $1,000/month for 10,000 net-new contacts, $3,000/quarter for 50,000, or $10,000/year for 200,000; larger tiers at $2,500/month for 30,000, $7,500/quarter for 150,000, or $25,000/year for 600,000 (contactlevel.com/pricing, checked 2026-07-29).


What should go in the monthly ABM report?

If you take one thing from this page, take this list. Five numbers, one page, same five every month.

MetricThis monthLast monthTarget
Programme coverage (matched ÷ identified buying-group members)≥70%
Accounts with ≥2 distinct people engagedGrowing
New contacts surfaced at target accountsGrowing
Cost per engaged buying-group memberFlat or falling
Opportunities: exposed vs held-outDirectional, quarterly

Underneath it, one paragraph of narrative naming three accounts and what changed at them. Executives remember the paragraph. The table is what stops the paragraph from being fiction.

And put the caveats in the report, not in the footnotes. "Opportunity lift is directional at n=8" is a sentence that buys you credibility for a year. Leaving it out buys you one good meeting and one bad one.


Where to go next.

What we track today — the dated, versioned statement of exactly what ContactLevel measures in production, including what it doesn't.

ABM statistics — the sourced buying-group and ABM-adoption numbers behind the framework above.

B2B match rates — why coverage is the metric that decides everything downstream, and why three different things get called "match rate."

ABM campaigns — ten campaign structures, and which buying-group member each one reaches.

Buying group marketing — how to define the group you are measuring coverage against in the first place.

Contact-level analytics — what the person-level click and visit reporting actually looks like in the product.

ContactLevel vs Influ2 — the head-to-head on per-contact impression data, which is the one measurement capability we do not have.

If a number in your ABM report can't be traced to a record you could point at, it belongs in the diagnostic layer, not the board deck. That is the whole argument.