creatorhub admin

Last 14 days USD

Ad spendAd revenueOrganic revenue

Per creator click a row for detail · money in USD, Owed/Paid in the creator's currency

Pending approval grouped by creator · oldest first · approving launches the ad · feedback required when rejecting

Add creator

Creators

Record payout bank transfer — details per creator below

Payout history attach the transfer confirmation per payout, then send it to the creator

Audit trail who did what, when — moderation + money events, latest first

Brand assets creators see these as download buttons on their dashboard

or

Commission

The 10% pays on every store sale carrying the creator's discount code or their link — the code on its own counts, they don't have to send the customer through the link. The one exception is traffic we put spend behind: if the order's UTMs show it came from an ad, it pays no 10%, because that revenue already pays them the 1% below. TikTok organic counts — that's where the creators post, so it's their audience — but a TikTok post we boost does not. The 1% on ad revenue has no ROAS threshold.

What counts as "came from an ad" UTM values that disqualify an order from the 10% — used by the daily ingest

Comma-separated, case-insensitive. An order is ad-driven when its utm_source is in the source list (platforms we only ever appear on by paying) or its utm_medium is in the medium list (we paid for it, whatever the platform).
This is what separates TikTok organic from TikTok ads. A creator's own post arrives as utm_source=tiktok with an organic or empty medium, so it pays. A boosted one carries utm_medium=paid (or utm_source=tiktokads), so it doesn't. Never add plain tiktok to the source list — it would cut creators out of their own organic sales.

Turn-off rule advisory — live ads under the floor get flagged in the Pipeline as your signal to pause them in Ads Manager

You pause ads in Meta Ads Manager yourself — the hub has read-only Meta access and the daily sweep mirrors each ad's status automatically (paused in Meta → "Turned off" here, running again → back to Live). Turning off freezes figures — accrued commission stays owed and payable; the creator gets a gentle notification, never a verdict.

Product links one affiliate link per product, auto-generated per creator

Milestones & guarantees fixed ladder — bonuses paid manually via a payout entry

FX table for ≈ displays only · auto-refreshes weekly (open.er-api.com)

Upload form options comma-separated — creators pick from these dropdowns

Changes apply retroactively to what dashboards display — commissions are always computed live from the current rules.

Ingest daily Meta stats

Paste rows as JSON array or CSV with columns: ad_name, date, spend, impressions, clicks, purchases, revenue, ad_status (ad_status optional — the ad's Meta status, mirrored automatically: not ACTIVE → Turned off, ACTIVE again → Live). Rows are matched to videos by the CH-… code inside the ad name. Re-ingesting a day overwrites it (safe to re-run).

Ingest creator sales code or link, minus ad-driven orders

Rows: creator, date, orders, revenue — creator can be their slug, @handle, name, or their discount code. Count every order carrying the creator's discount code or their link — the code on its own counts. Then drop the orders whose UTMs say we put ad spend behind them (the values set in Rules → What counts as "came from an ad"); those already pay the creator 1% as ad revenue. TikTok organic is never dropped — that's the creators' own posts; only boosted TikTok traffic is. Optional sources breaks orders down per link (utm_content: store / product), and optional excluded reports what you filtered out. Re-ingesting a day overwrites it.

Automate it (daily Claude agent)

Schedule a daily Claude agent (e.g. /schedule in Claude Code) with this prompt — it pulls yesterday's ad-level insights from Meta via AdNova and posts them here:


    
creatorhub admin