Tattva Docs
Use casesPerformance marketing

Audience overlap diagnosis

Are two ad sets eating each other's new-customer reach? The most common deep-dive within an NRoAS drop.

From the transcript: "In Facebook admin, whenever we take any ad live, we have to choose certain interest. If the overlap between those segments of different ads' audiences is high, then my NRoAS will get dropped — because we are reaching out to the same customer from both ads."

When NRoAS drops without an obvious creative or landing-page reason, the next suspect is audience overlap — two ad sets targeting overlapping interests, eating each other's new-customer reach, with both ads claiming attribution for customers that the other could have served.

This is the second branch of the NRoAS drop RCA logic tree.

Who asks

  • Perf analyst running the deep-dive after the weekly RCA
  • Perf team lead deciding which ad set to consolidate

Frequency

Triggered: every time NRoAS RCA hits the overlap branch (~weekly).

Data you need

  • ads and ad_sets with creative + interest tags
  • orders with customer ID and ad-attribution
  • customers with first-purchase date (for new-vs-repeat)
  • Meta ad-set-level interest config — the list of interests / behaviors / lookalikes per ad set

Known gap: The Meta ad-set-level interest config is not in the BigQuery export today. Today the team relies on the ad-set nomenclature (ad name encoding the TG concept) which is incomplete. Until the interest config is pipelined, this use case runs on a degraded signal — see Pitfalls.

How to ask it

  • "Which ad sets have the highest audience overlap based on customer-acquisition patterns?"
  • "For Shilajit, are any ad sets targeting customers who already bought from another Shilajit ad set in the last 30 days?"
  • "Find ad-set pairs where >40% of new customers from ad set A had already been targeted by ad set B in the prior 14 days."

What you'll get back

A pairwise overlap matrix scoped to the product or campaign you're asking about:

Ad set AAd set BOverlap %Cost of overlapSuggested action
Shilajit_RidersShilajit_Wellness_30+42%₹1.8L / weekPause Riders (lower NRoAS)
Shilajit_FestiveShilajit_BAU18%₹0.4L / weekConsolidate audiences

Each row links to the supporting customer-level evidence — the customers counted in the overlap and the timestamps of their exposure.

How the platform measures overlap (when interest config isn't available)

Because the explicit interest config isn't piped from Meta today, the platform uses a behavioural proxy:

  1. For each ad set, list the customers acquired in the last 30 days.
  2. For each pair of ad sets, find customers that appear in both — and rank by overlap %.
  3. Cross-reference with the rate at which customers received impressions from both ad sets (from the ad-impression export, where available).

When the explicit interest config is pipelined, the platform switches to the precise definition.

The logic tree

NRoAS dropped on a product, and overlap is the suspect?
├── Compute pairwise overlap % across the product's ad sets
├── For each overlap pair > 30%:
│   ├── Which ad set has higher NRoAS?
│   │   └── Recommend keeping that one, pause the other
│   └── Which has higher creative freshness?
│       └── Tie-breaker if NRoAS is similar
├── Are >2 ad sets converging on the same audience?
│   └── Recommend consolidation, not just pause
└── Document the call in a decision so future RCAs can reference it

How to make it recurring

This use case is triggered, not scheduled. It runs as a sub-skill of the NRoAS drop RCA tracker. Don't add a standalone schedule — it'll fire false positives.

Pitfalls

  • False overlap from natural funnel progression. A customer seeing a top-of-funnel ad and then a bottom-of-funnel ad on the same product isn't overlap — that's the funnel working.
  • Without interest config, you're inferring. Use this diagnosis as a hypothesis, not a verdict, until interest config is pipelined.
  • Pausing too aggressively. Consolidation usually beats pausing — when you pause an ad set, you lose its incremental reach permanently. When you consolidate, you preserve it.
  • Treating the diagnosis as a one-time fix. Audiences drift. Re-run monthly even when NRoAS looks fine.

Roadmap to make this fully accurate

  1. Pipe Meta ad-set-level interest config into BigQuery (or via a custom tool against the Meta API).
  2. Add lookback-period exposure data per customer.
  3. Add cross-channel exposure data (Meta + Google + Amazon DSP) for true audience-overlap measurement.