← Docs

Meta Ads Concepts

Impressions and reach: views versus people, and why the gap matters

How impressions and reach diverge as frequency rises, and why reporting one as if it were the other overstates or understates who an ad actually touched.

Impressions count every time an ad is displayed, including repeats. One person seeing an ad three times is three impressions. Reach counts unique people. That same person is one reach, regardless of how many times they saw it. The relationship between the two is exactly frequency: Frequency = Impressions / Reach. Reporting an impression count as if it were a count of people overstates how many distinct people an ad actually touched.

Why the two numbers can differ by several times over

100,000 impressions might mean 100,000 different people saw the ad once each, or 20,000 people saw it five times each. The impression count alone can’t distinguish these, and they’re very different outcomes. A narrow audience against a steady budget will always produce a bigger gap between the two than a broad one, simply because there are fewer unique people available to spread impressions across.

What actually drives reach

Reach isn’t set directly. It falls out of a few other variables:

  • Budget and CPM together set impression volume (Impressions = Ad Spend / CPM × 1,000); more impressions at the same audience size raises reach only up to the size of that audience.
  • Audience size caps it outright. No amount of budget pushes reach past the size of the pool being targeted, which is one of the reasons an overly narrow audience runs out of room to grow reach and pushes frequency up instead.
  • A frequency cap, where used, forces spend toward people not yet reached rather than repeating on the same pool.

Where this gets misread

Reporting impressions as if they were people reached. “We reached 500,000 people” is a claim about reach, not impressions. Conflating the two overstates the actual size of the audience an ad campaign touched, sometimes by a factor of several times over.

Assuming high reach with low frequency is automatically good. A frequency near 1.0 means most people saw the ad exactly once. That’s fine for a brand-awareness goal, but often not enough exposure to drive a direct-response action, which typically needs several exposures before it converts.

Summing reach across overlapping ad sets. Meta reports reach per ad set, and the same person can be counted in more than one. Adding up ad-set-level reach figures overstates total unique audience touched; the account-level reach number is the one that reflects reality.

Where this connects to fatigue

Rising frequency against flat reach is the direct precursor to ad fatigue: the same people are being shown the ad more often rather than new people being found. Watching reach growth (or its absence) alongside frequency is often a clearer early signal than waiting for CTR or CPA to confirm the same thing later.

How YieldBI applies this

Because audience-discovery insights are reported at the ad level, a campaign that’s plateaued on reach while frequency keeps climbing shows up distinctly from one that’s still finding new people. This lets Growth Controls flag audience saturation before it shows up as the CPA increase that would otherwise be the first visible sign.