What $372 of Meta Ads Actually Bought
Seven campaigns, 29,148 impressions, three weeks and not one attributable customer. Here is the whole account, event by event, from my own log rather than from the ad platform's dashboard.
I spent $372.12 on Meta ads. Meta told me it produced two leads. Both of them were me.
This is the whole account. I am publishing it because almost nobody publishes the small failed test, and the small failed test is where the useful information lives. A case study about a campaign that worked teaches you very little, because you cannot tell which part did the work. A campaign that produced nothing, instrumented properly, tells you exactly where the floor is.
The numbers, and where each one comes from
Two separate sources here, and the gap between them is the entire point.
The first is Meta's own reporting, pulled through the API into a table I keep called ad_insights_snapshots. As of the most recent fetch: 7 campaigns, $372.12 spent, 29,148 impressions across those campaigns, 2 leads reported.
The second is my own event log, a table called ad_events that records every tracked event from my own site rather than from Meta. Between 23 June and 27 August 2026 it holds:
- 1,184 PageView events across 954 distinct sessions
- 120 ViewContent events across 110 sessions
- 74 EngagedLPView events across 66 sessions
- 45 DemoStarted events across 27 sessions
- 14 Lead events across 6 sessions
- 10 AuditStarted events across 3 sessions
- 2 Schedule events across 2 sessions
One caveat before anyone builds an argument on that shape. The event log window is wider than the campaign window and it catches traffic that never came from an ad. So the funnel above is not a pure picture of paid performance, and I am not going to pretend it is.
The number that ends the argument
Every PageView row carries an fbclid field when the visitor arrived by clicking a Meta ad. 639 of the 1,184 PageView rows have one. So the ads did work as ads. People saw them, people clicked, people landed.
Now the Lead events. Fourteen rows. Zero of them carry an fbclid. Not a low number. Zero.
And 8 of those 14 rows share a single session id. One session, mine, testing the form.
So the honest reading is this. The ads bought 639 tracked arrivals and no attributable conversion at all. The two leads Meta reported were my own test submissions, counted back to me as performance.
Why this is not a story about bad creative
The tempting conclusion is that the ads were bad, or the offer was wrong, and that a better hook would have fixed it. I do not think that is what happened, and the structure of the spend is the reason.
$372 was split across 7 campaigns. The largest impression count was 15,078 and the smallest was zero. Two campaigns got under 400 impressions each. That is not one test with a clear answer. That is seven separate nothings running at the same time, none of them with enough volume to tell me anything.
There is a harder structural problem underneath it. Meta's conversion optimization needs a meaningful number of conversion events per ad set per week before it stops guessing. A rare event at a budget this size never gets there. So the machine that is supposed to find your buyer never has enough signal to start looking. At this spend, conversion optimization is not underperforming. It is structurally unavailable.
What I would tell a practitioner reading this
If you are a coach, a consultant or any kind of practitioner thinking about putting a few hundred dollars into ads to see whether it works, here is the thing the dashboard will not tell you.
A small ad budget does not buy you a small version of the result. It buys you a result with no statistical content, presented in an interface designed to look confident. The platform will report leads. It will not tell you that the leads were you.
If you are going to test paid traffic, instrument it yourself first. Not because the platform lies, but because the platform is measuring its own work. Own the event log. Own the definition of a lead. Then the number you get back is a number about your business rather than a number about the ad account.
I did not have that on day one. I had it by the end, and that is the only thing $372 actually bought.
The standard I hold myself to now
Every figure in this post comes from a table I can name, on a date I can state, and you can hold me to the method. 7 campaigns and $372.12 from ad_insights_snapshots. The event counts from ad_events, 23 June to 27 August 2026. The zero-fbclid finding from a single query against the Lead rows.
I have no client results to publish yet, so I publish my own numbers instead, including the ones that make me look slow. That is the trade. When there are client results, they will be reported the same way: the input alongside the output, the method fixed before the work starts, and anything unstable named as unstable rather than quoted on its best run.
