UGC Content Gating
How ad-eligibility is gated for creator content — scoring, overrides, and safety.
Layers does not have a per-post approval queue UI for UGC. Gating for whether a creator's post enters the ads creative pool is driven by three signals, all evaluated automatically:
1. Organic score
update-organic-performance (every 6 hours) assigns an
organic_score to each post. Posts with organic_score >= 4.0 are
eligible. Posts below threshold are ineligible until they accumulate
more engagement.
2. Override
Per-project override on project_ads_content:
override = 'include'— always eligible, bypasses the threshold.override = 'exclude'— always ineligible, regardless of score.null— score-based eligibility.
Overrides are set from the Ads / Creative Library surface.
3. Safety
If ads_content.safety.safetyFailed = true (platform-flagged
content), the post is ineligible. Cannot be overridden.
Auditing
Every change to project_ads_content.override is tracked in audit
history. Query the ads_content and project_ads_content tables for
the full signal state on a given post.