MARI
Post-rejection forensics

Your ad was rejected. Find out what most likely caused it — with the evidence.

MARI reads your creative, copy, landing page and rejection notice, then produces a ranked set of likely contributing factors, each one quoting the exact text or image detail behind it. Built for agencies and media buyers who have to explain the problem to a client this afternoon.

What we can analyse

  • Ad copy, headline and description as submitted
  • Creative imagery, including text embedded in the image
  • Your landing page, its redirect chain and what it actually says
  • What changed between a version that was approved and one that was not
  • Industry and offer context that raises review scrutiny

What nobody outside Meta can see

  • Meta's internal classifier scores
  • Account-level trust signals and full enforcement history
  • Signals from connected pages, domains and payment methods
  • Reviewer notes and unpublished heuristics

So we do not claim to know why Meta acted. Every report separates what the evidence supports from what it cannot settle, and says which is which.

How a diagnosis is built

Eight stages. The deterministic checks run before any interpretation, so findings you can verify yourself are never mixed up with findings that required judgement.

01

Extract

Read the creative and the rejection notice into text, including claims embedded in the image.

02

Fetch

Load your destination the way a reviewer would, following every redirect.

03

Diff

Compare against a previously approved version — the strongest signal available.

04

Scan

Run high-precision rules that flag known phrasings with the exact text quoted.

05

Ground

Retrieve the policy clauses those hits implicate, from a dated snapshot.

06

Reason

Generate ranked hypotheses, each citing evidence, each with a confidence.

07

Calibrate

Re-weight by signal family and cap confidence by how complete your evidence was.

08

Track

Record what you changed and whether the resubmission was approved.

The signals we weigh

Findings are grouped into signal families and weighted by how much each family actually explains enforcement — so a confident finding in a weak family never outranks a solid one in a strong family.

Policy language

Personal-attribute phrasing, prohibited claims, deceptive or absolute language in the ad text.

1.00

weight

Creative semantics

What the image or video implies: before/after framing, sensitive imagery, unrealistic outcomes, embedded text.

1.00

weight

Industry sensitivity

Elevated scrutiny categories: financial services, health, employment, housing, crypto, dating.

0.85

weight

Landing-page mismatch

The destination promises something different from, or stronger than, the ad.

1.00

weight

Business identity

Inconsistencies between the advertiser, the page, the offer and the destination.

0.70

weight

Behaviour & context

Patterns the advertiser reports: repeated resubmissions, bulk duplication, prior enforcement.

0.70

weight

Version delta

What changed between a version that was approved and the one that was rejected. The single strongest available signal.

1.25

weight

Account-level signals

Often not determinable

Restriction type, enforcement history, connected assets. High impact, but rarely visible from outside Meta.

1.00

weight

Start with one rejected ad

Upload the creative, paste the copy and the rejection message, and add the landing page URL. You will get a report you can send to a client, and a case you can reopen when you resubmit.