Short answer: roughly three times your target cost per purchase, per ad, before you can judge it. A “$20 and no sale, so kill it” rule ends most ads before they have produced a single readable number, which is why it feels like nothing ever works.
Why three purchases, not one
One purchase is noise. You cannot tell a 3% checkout rate from a 6% one on a single event. Three purchases is the smallest count where a rate starts to mean something, and below it every ad, good or bad, looks the same. Meta itself wants about 50 results a week per ad set to leave the learning phase; you cannot wait for 50 on one creative, but you can wait for three before you call it dead.
The arithmetic
Take your target cost per purchase. If a sale needs to come in around $45 for the math to work, three purchases is about $135 of spend before the ad has had a fair test. Kill it at $20 and you have spent less than half of one purchase. You are not judging the ad; you are flipping a coin and calling the result strategy.
A $20 kill rule kills winners and losers at exactly the same rate, because at $20 neither has produced a purchase. A creative that would have settled at a $45 cost per purchase and a genuine dud both show zero at $20.
What the rule is really costing you
The trap is worst on a small budget spread thin. Seven products at $10 a day each never reach three purchases on any of them, so every judgment is a guess and you churn through winners without knowing it. The fix is not more budget; it is fewer products tested at once, each given enough to reach three purchases. Test two or three, not eight.
When you genuinely cannot afford three purchases
If three purchases is more than you can spend to test one product, judge on a cheaper upstream event instead of the sale. Optimize and read on add-to-cart, which happens often enough to give you a rate in a day or two, and only promote a product to a purchase-optimized test once its add-to-cart economics look right. That is slower signal traded for signal you can actually afford.
Either way, judge on the trailing number, not today's. A day with zero at this volume is ordinary; a week under your break-even cost per purchase is the signal. This is also how our own optimizer reads an account: it waits for the count that makes a rate real before it moves a dollar, rather than reacting to a single quiet day.