Layers

UGC Content Gating

How ad-eligibility is gated for creator content — scoring, overrides, and safety.

View as Markdown

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.

On this page