Every ad goes through review before it delivers, and the first pass is automated. Models read the text, the image or video, the landing page and the account's history, and either approve, reject or route to a human. Because the first pass is a model, it is pattern driven: certain phrasings are strongly associated with past violations and get caught regardless of intent. That is why a supplement ad that says "reverses ageing" is rejected while a nearly identical ad that says "supports skin as you age" goes through. The words map to a pattern, not to a judgement about your product. This checker is built on the same idea from the other side: it looks for the phrasing that most reliably trips the review, so you can rewrite before submitting rather than after a rejection.
The personal attributes rule, in practice
This is the single most common copy rejection and the least intuitive. Meta's policy forbids asserting or implying knowledge of a person's traits: their health, weight, finances, race, religion, sexual orientation, criminal record and so on. The test reviewers apply is whether the ad talks to the reader about themselves. "Tired of being broke?" fails. "A budgeting app for people who want to stop living paycheque to paycheque" passes, because it describes an audience rather than addressing a trait to the person reading it. The fix is almost always the same grammatical move: turn a second person question into a third person description of who the product is for.
Where the copy is clean and the ad is still rejected
The landing page is the next most common cause. Meta checks that the page makes the same claims as the ad and that it does not carry claims the ad avoided. A clean ad pointing at a page full of before and after photos and "guaranteed" badges will be rejected for the page, and Ads Manager will still label it as an ad problem. Imagery is the other one: comparison photos, close-ups of body parts, images of cash or medical devices all carry their own restrictions. And account history matters. A new account with no spend is reviewed more cautiously than one with a year of clean delivery, and an account with several recent rejections is reviewed more cautiously still.
Common mistakes when responding to a rejection
Resubmitting the same ad unchanged, hoping a different reviewer sees it. Sometimes it works, and each time it does not it adds to the account's rejection count. Editing a live ad under review one word at a time, which restarts the clock with every save. Duplicating a rejected ad into a new campaign to dodge the flag, which Meta treats as circumvention. And appealing every rejection reflexively, which is fine when the rejection was wrong and counterproductive when it was right. The productive order is: read the stated policy, rewrite the flagged part properly, check the landing page, then resubmit once.
Why this matters more at volume
At one ad a day, a rejection costs a review cycle. At a batch of two hundred ads that share four primary texts, one phrase in one of those texts gets fifty ads rejected simultaneously, and the account health hit lands fifty times too. Checking the shared copy before it fans out is the highest leverage moment in the whole workflow. Pair this with the copy length checker so the approved text also survives truncation, use the naming generator so rejected variants are easy to find and pause together, and read why Facebook ads get rejected for the categories that go beyond text. When you are ready to launch, a bulk launcher with pre-launch guardrails runs this kind of check on every ad before anything publishes.