Policy Affects: image_link image

Fix “Image contains text overlay” on Meta Commerce Manager

Meta's catalog policy bans promotional text overlay on product images. When the auto-reviewer flags this, affected SKUs stop serving in Dynamic Product Ads, Advantage+ Catalog Ads, and organic Shopping placements until the image is replaced.

What you see in Meta Commerce Manager:

Image contains text overlay

Meta's image text overlay policy is the single largest cause of DPA / Advantage+ Catalog Ads rejections in 2026. The threshold isn't published officially; operational evidence across accounts puts it at roughly 20% of the image area covered by text. The auto-reviewer over-flags during peak retail windows when manual review capacity is stretched.

The hand-edit-every-image instinct doesn't scale. Removing overlay from 50 product images is feasible work; removing it from 50,000 isn't. The scalable answer separates source-image policy compliance from creative branding entirely.

The model: image_link is clean source photography (no overlay, no badges, no aggressive watermarks). The branded creative — sale badges, dynamic price tags, brand colour treatment, conditional promotional elements — is applied at render time through a template that pulls data from the feed. The template renders against every SKU automatically; output is published to a URL Meta pulls from. The source image stays policy-compliant; the rendered creative carries the brand and promo signal.

This is what the [DPA Creative Editor](/features/dpa) does. It's also covered in detail in the [branded DPA creative playbook](/blog/branded-dpa-creative-catalogue-ads-at-scale). The principle: stop baking promotional elements into source images; treat catalog imagery and ad creative as different asset classes with different policy constraints.

The CTR data backs this up. Branded DPA creative (rendered templates against clean images) outperforms default Meta DPA templates by 30-60% on click-through across most retail verticals. That gap closes when default templates use the same clean source images — which is the same approach this issue's fix forces.

Top causes

  • 1

    Sale badges baked into product images ('50% OFF', 'FREE SHIPPING')

  • 2

    Brand watermarks covering more than ~20% of the image area

  • 3

    Lifestyle imagery with promotional text in the scene

  • 4

    Auto-reviewer false positives on legitimate text that's a physical part of the product (book covers, garment text)

How to fix it

  1. 1

    Identify affected items

    Commerce Manager → Catalog → Items → filter by rejected. The specific reason appears in each item's detail panel.

  2. 2

    Strip text overlay from image_link

    Use clean product photography — white background or environmental, no badges, no text, no watermarks beyond minimal corner branding.

  3. 3

    Move promotional elements to the creative layer

    Sale badges, dynamic price tags, brand elements — these become template-driven, applied at render time from feed data. The product image stays policy-compliant; the rendered creative carries the design language.

  4. 4

    Force a catalog refresh

    Commerce Manager → Data Sources → Fetch now. Items with corrected images clear at the next review cycle (typically 24-48 hours).

  5. 5

    Appeal genuine false positives

    Account Quality → Restrictions. Appeals work best when the 'text' is a physical part of the product (book covers, garment text) rather than promotional overlay.

Before and after

Broken
Product shot with 'SALE 50% OFF' rendered across the bottom and a 'NEW' sticker over the product. ~40% of image area is text overlay.
Fixed
Same product, photographed clean — no overlay. Branded template adds dynamic price tag, conditional sale badge, brand colour bar at render time, applied separately from image_link.

The fix isn't to remove the design language — it's to separate the source image (which Meta sees in image_link) from the rendered creative (which carries the promo design).

Related fields

FAQ

Where is the 20% threshold documented?

Meta doesn't publish a precise percentage — it's a heuristic established by partner documentation and ad ops community knowledge. Treat 20% as a practical ceiling; design below it to be safe.

Will replacing the image lose the item's ad history?

No. The catalog item's id carries learning, not the image URL. Replacing the image doesn't reset Advantage+ optimisation.

Why does this only get flagged in some retail windows?

Meta's auto-reviewer is more conservative during high-volume periods. The same image that passed in March may flag in November because the reviewer's confidence threshold tightens when manual review capacity is constrained.

Last reviewed: 26 May 2026

Free plan · No card

Why wait? Try it free today.

Stop managing feeds manually. Start optimising with AI in 30 seconds.

  • Free plan, no credit card required
  • 1 brand, 1 feed, 100,000 products per feed
  • Full AI Product Optimisation, Rule Engine, and 200+ channel exports
  • Pay only for AI credits when you need them