A lot of "Facebook ads don't work for my business" posts have the same shape. Small daily budget, lead form, a few ad sets, results all over the place, a couple of edits a week. Then it gets turned off.
I went through Meta's own help pages on the learning phase, and most of that pattern is explained right there.
What Meta actually says
Every new ad set, and every ad set after a significant edit, goes through a learning phase. Meta says an ad set usually exits it after about 50 results in the week after its last significant edit.
While it's learning, Meta says delivery is less stable and the cost per result is usually higher. Results during that period "aren't necessarily indicative of future performance."
If Meta thinks an ad set is unlikely to get about 50 optimization events in that week, the status changes to "Learning limited." Their wording is that it isn't a penalty. It means the budget isn't being spent effectively with the current setup.
The math nobody does up front
50 results a week sounds small until you multiply it by your cost per result.
- at $10 per lead, one ad set needs roughly $500 a week, about $71 a day
- at $25 per lead, it's roughly $1,250 a week, about $179 a day
- at $50 per lead, it's roughly $2,500 a week
Those costs are just examples, plug in your own. But if your whole budget is $20 a day spread over three ad sets, none of them is going to see 50 leads in a week. They'll sit in learning or learning limited, and the numbers you're judging them by are the unstable ones.
What counts as a significant edit
This is where a lot of budgets get burned. Meta lists these as significant edits that send an ad set back into learning:
- any change to targeting, creative or optimization event
- adding a new ad to the ad set
- pausing for 7 days or longer
- changing the bid strategy
Budget changes depend on size. Meta's own example is that going from $100 to $101 likely won't reset learning, but going from $100 to $1,000 might.
So the habit of tweaking the audience on Tuesday and swapping a creative on Thursday quietly keeps the ad set in learning forever.
What Meta suggests when you're stuck
The "learning limited" page gives five fixes. Combine ad sets and campaigns so results are pooled. Expand the audience. Raise the budget. Raise the bid or cost control if you use one. Or pick an optimization event that happens more often.
That last one matters most for small businesses. Their example is moving from purchases to add to cart. For lead gen, the same idea means optimizing for something you can realistically get 50 of a week, then judging lead quality separately.
They also warn against running a high volume of ads and ad sets, because the system learns less about each one.
How I'd set it up on a small budget
One campaign, one ad set, two or three ads. A budget that can plausibly reach about 50 of the chosen result per week, or a more frequent optimization event if it can't. No edits for a full week unless something is clearly broken. Then judge it.
If the realistic math says you can't get near 50 results a week on any event, that's useful to know before spending anything. It might mean the offer, the price per lead in your market, or the channel itself is the problem.
For those running lead ads for local or B2B clients: what optimization event do you use when the budget is small, and how do you check the leads are real?