Notes
Build log 4 min read

The lookalike cut reach 87% — and the midnight read nearly cost more

CPM stepped up the exact day a new audience went on. The obvious fix was wrong, the panic read was an artifact, and every correct answer came from a check that was free.


A hyperlocal ad set — one-kilometre radius around a clinic, modest daily budget. CPM stepped from ₹83 to ₹123 to ₹138 across three days. The reflex diagnosis writes itself: tight radius, small audience, exhaustion — widen the circle.

I nearly did. Three free checks later, the radius turned out to be innocent, and so did most of my other suspicions.

Check one: the reach estimate

Before touching anything, I pulled audience size estimates for each combination:

  • 1 km radius alone: ~150,000 people
  • 1 km + the 1% lookalike audience attached two days earlier: ~20,000

The lookalike had cut the addressable pool by 87%. Notably, the platform’s “expand audience beyond your targeting” toggle was on — and it did not expand past the lookalike seed. Widening to 2 km with the lookalike still attached would have yielded only ~35,000; I’d have sacrificed a deliberately tight local radius for nothing while the actual constraint stayed in place.

The CPM step landed on the exact day the audience went on. Attach dates are diagnosis data — line up every change against the day its metric moved before theorising.

Check two: never read a half-finished day

The same night, an 11pm pull showed CPM at ₹202 with impressions falling — a textbook fatigue signature, and briefly alarming.

The day closed at CPM ₹138 with impressions up 79% and frequency flat. The “fatigue” was an artifact of reading a day that wasn’t over: spend and delivery don’t accrue evenly across hours, so a partial day reliably manufactures trends that the full day erases. Any read taken mid-day is a rumour.

Check three: the “overspend” that wasn’t

Same account, same week: ₹217 spent against a ₹125 daily budget. Looks like a billing bug. It isn’t — pacing works on a weekly window, and the seven-day total came to ₹819 against a ₹875 allowance. Check the weekly sum before escalating an overspend that the platform’s own rules permit.

The honest summary

Three wrong conclusions were available that week — widen the radius, rotate the creative, dispute the bill — and each would have been acted on with confidence. What prevented them was not expertise but sequence: a reach estimate, a full-day close, a seven-day sum. All free, all under a minute.

Most of what gets called diagnosis in ad accounts is concluding early. The discipline is almost embarrassingly simple: list what changed and when, price up the audience before blaming geography, and refuse to read numbers that are still being written.