UGC Ad Eligibility
When does a UGC post become eligible for ad selection? What stops it?
A UGC post is eligible for ad selection when ALL conditions hold:
organic_score >= 4.0ORproject_ads_content.override = 'include'project_ads_content.override != 'exclude'safetyFailed != trueon theads_content.safetyJSON
Amplification rights (platform side)
Even an eligible-by-score post can't run as an ad without platform authorization from the creator:
- Meta — the creator must whitelist your brand handle (Branded Content tools).
- TikTok — the creator must enable Ads authorization for the post (Spark Ads).
These are handled outside Layers, on each platform. Layers selects eligible creative; the platform enforces authorization at ad creation time.
Eligibility flow
post synced via SIFT
→ metrics arrive (need >= 50 views)
→ scored every 6h by update-organic-performance
→ score >= 4.0 OR override = include?
→ ELIGIBLE → enters ad selection poolCommon ineligibility causes
- Score below 4.0 — needs more engagement, may improve as views accumulate.
- Excluded by override (
project_ads_content.override = 'exclude'). - Safety failed — content moderation flagged; cannot be overridden.
- Fewer than 50 views — post is unscored.
Eligibility doesn't equal "running"
Eligible posts enter the creative selection pool. The optimizer picks top-N per ad set based on score and pool mix. Most eligible posts run somewhere; not all.
Watching eligibility
Filter the UGC posts UI to Eligible to see your active pool. Filter to Currently running to see what's actually live as ads.