// HELP
How The Ad Bench works.
Everything you need to use The Ad Bench — upload formats, modes, reading your report, sharing, accounts, privacy, and what to do when something breaks.
// GETTING_STARTED
Drop in any ad — four ways
// GETTING_STARTED
Drop in any ad — four ways
- Upload video— MP4, MOV, WebM, MKV, M4V, AVI, or 3GP. Frames get extracted in your browser (your original file never leaves the device); only the JPEG keyframes upload. MP4 (H.264) is the most reliable; if your browser can’t decode a file you’ll get a clear prompt to re-export. Works best on clips under 60 seconds.
- Video URLs (TikTok, YouTube, Instagram, Facebook) — paste any public video URL. TikTok and YouTube Shorts URLs are reviewed from the actual video — we fetch the clip and run the same frame-by-frame + voiceover-transcript pipeline as an upload. Instagram Reels and Facebook videos are reviewed from the cover frame and caption (Meta blocks third-party video fetches).
- Image — JPG, PNG, WebP, GIF, HEIC/HEIF, or AVIF. Large photos and screenshots are downscaled in your browser before upload. Good for anystatic ad creative — Spark Ad stills, planned thumbnails, static social or display ads, marketplace (e.g. Amazon) ads, or a photo of an out-of-home / print ad. The analyzer identifies the format and reviews it on its own terms — it won't judge a billboard as a failed TikTok ad.
- Script— paste a script before you film. We'll score the hook, structure, and CTA so you can rewrite before burning a shoot day.
// ACCOUNT_VALUE_SCORE
Account Value Score — what a creator is worth
// ACCOUNT_VALUE_SCORE
Account Value Score — what a creator is worth
A separate free tool at /account-value-score. Paste a public TikTok, Instagram, or YouTube profile URL and we return a transparent monthly-value estimate across every income stream that fits the platform — AdSense, TikTok Shop, LTK, sponsored content, paid memberships — as a low / mid / high band with every assumption shown.
It's honest back-of-envelope math: for YouTube channels, live stats (subscribers, total views, upload cadence) are pulled directly from the YouTube Data API — no input needed. For every other platform, industry RPM and commission benchmarks are applied to the numbers you provide. Every narrowing input (followers, last-30-day views, niche, monetization signals) tightens the range — last-30-day views helps most. Reports now include growth milestone projections (what the account could earn at 50k / 100k / 250k / 500k / 1M subscribers) and a list of untapped monetization opportunities with effort tags (quick win / medium / long-term).
Free with a free account — sign in (about 10 seconds) and you get 3 scores a day on the free plan (Pro: 15/day · Agency: 100/day), tracked separately from your Quick Check / Deep Dive analyze quota. Scores you run while signed in are saved to My Reports alongside your ad reports.
// AD_CREATIVE_SCORE_MODES
Quick Check vs Deep Dive
// AD_CREATIVE_SCORE_MODES
Quick Check vs Deep Dive
Quick Check
About 60 seconds
A one-line verdict, an overall 0–100 comprehensive score (with a letter grade), an engagement read, and a 5-category breakdown (Hook · Native feel · Clarity · CTA · Brand fit) — and up to 5 fixes. Pick this when you want a fast read before re-shooting or before kicking spend.
Deep Dive
The full bench
Hook-rate prediction, hook-formula classification with quoted evidence, 6-category rubric, 10 predicted performance metrics, algorithm signals, risk flags, ranked top issues with fixes, 3 hook rewrites + new caption + 3 CTA variants + shot-list edits. Plus depth signals: tropes (earned vs. lazy), cultural fluency (native / reaching / cringe voice match), clip detection (assets cut off or out of frame), policy notes (FTC disclosure gaps, unverified claims), and a reading-level chip. Plus the narrative layer: vertical archetype + gap, emotional positioning, hook valence, production craft direction, 3–6 macro-shot prescriptions, and a beat-by-beat storyboard rebuild. Pick this for a real review before launch or when planning a campaign.
// READING_YOUR_REPORT
What the numbers mean
// READING_YOUR_REPORT
What the numbers mean
Every report leads with a comprehensive score — a single 0–100 read of the whole ad — paired with a letter grade from F to A+++. The grade is just the comprehensive score banded: A+++ is 95+, A is ~80–84, B is ~65–69, C is ~50–54, D is ~30–44, and F is below 30. It gives you the verdict before you read a single line.
Alongside it, the verdict shows Hook (how hard the first 3 seconds stop the scroll) and Engagement (likes / saves / shares strength). Quick Check then breaks the score into 5 categories (Hook, Native feel, Clarity, CTA, Brand fit); Deep Dive uses a 6-category rubric with evidence.
All scores are 0–100, color-coded so you can read them at a glance:
- 75–100 — strong. Ship it. Rare for first drafts.
- 50–74 — fixable. Address the top issues and re-score.
- 0–49 — overhaul needed. The model will tell you exactly what to change.
Every score carries a one-sentence justification — the model doesn't leave you guessing why a category dropped. In Deep mode, scores also point at evidence: a frame timestamp or a transcript span.
// FOR_AFFILIATES
Using The Ad Bench for short-form affiliate ads
// FOR_AFFILIATES
Using The Ad Bench for short-form affiliate ads
If your script, caption, or transcript carries any affiliate signal — #ad, #tiktokshop, use code XYZ20, link-in-bio language, LTK / Spark Ad markers — The Ad Bench automatically tilts the analysis to weigh FTC disclosure timing, code/link clarity, save-bait, comment-bait CTA, and native execution penalty.
Every report also includes a GMV projector: tweak the AOV / commission % / monthly views inputs and we project the affiliate revenue this ad should drive at your current score, then again if you got the score to 85.
The full affiliate-specific rubric lives at /learn/affiliate-advertising. Vertical-specific landings (TikTok Shop, LTK, DTC beauty) are at /for/affiliates and /for/dtc-beauty. For how the same affiliate cut should land differently across surfaces, see /learn/cross-platform-hook-portability.
// ACCOUNTS
Sign in
// ACCOUNTS
Sign in
Three ways to sign in, all free:
- Social sign-in — one tap with Google or Apple (and Facebook, LinkedIn, or TikTok where enabled). We only see your name and email — never your password — and we never post or message on your behalf.
- Email + password — go to /login and enter your email + password. Optional; set one at /account if you want a faster sign-in than the magic-link round-trip.
- Magic link — enter your email at /login, we send a one-click sign-in link. The link expires in 15 minutes and works once. No password required.
Forgot your password?You don't need it — sign in with a magic link from /login, then set a new password at /account. The magic link opens a short window to set a new password without your old one.
Signed-in benefits: higher daily analysis limit, saved report history, view counts on shared links, PDF export, side-by-side comparison at /compare.
// PROFILE
Manage your profile (display name, email, Agency name)
// PROFILE
Manage your profile (display name, email, Agency name)
The Profile card on /account has inline editors for the fields you control:
- Display name — the name we show on reports, the nav header, and shared links. Click Edit next to the field, type a new name (up to 80 chars), hit Save.
- Email — click Change, type the new address, hit Send link. We email a verification link to the new address. Click it within 15 minutes and we'll migrate your account data (display name, password, plan, API keys, team membership, batch jobs, saved-report index, credits, partner record) to the new email and mint a fresh session. The mailto you click on lands in the new inbox — if it doesn't arrive, check spam first, then try again. If the destination is already on another account we'll refuse and tell you.
- Agency name — Agency Plan only. Shows up on the team brand kit, weekly digest emails, and the Slack digest if you have Slack wired. Same inline editor pattern as Display name.
// PRIVACY
Where your data goes
// PRIVACY
Where your data goes
For video uploads: your original file never leaves the browser. Frame extraction happens client-side; only the JPEG keyframes (~80–150 KB each) upload to Vercel Blob storage at unguessable URLs.
The audio track is extracted client-side and sent to OpenAI Whisper for voiceover transcription, then dropped.
Anthropic's commercial API terms forbid training on the content we send them. We don't fingerprint, retain, or resell the creative content of reports.
The full sub-processor list, retention windows, and contact details live at /privacy.
// YOUR_DATA_RIGHTS
Access, correct, delete, export
// YOUR_DATA_RIGHTS
Access, correct, delete, export
You have the right to access, correct, delete, or export your data, and to object to or restrict processing — globally, regardless of where you live. We don't gate these rights by jurisdiction.
How to exercise them: email legal@theadbench.ai from the address on your account. We verify identity by replying to that same address before actioning. Response window: 7 days for deletion, up to 30 days for an export.
Signed-in users can also delete saved reports themselves from /account/reports without opening a request.
To permanently close your account, use Cancel my account in the Danger Zone on /account — it cancels any active subscription, deletes your data (saved reports, API keys, settings), and signs you out. To cancel a paid plan but keep your account, use Manage subscription instead.
We don't sell or share your data with third parties for cross-context behavioral advertising — full statement at /privacy#do-not-sell.
// SECURITY
Reporting a vulnerability
// SECURITY
Reporting a vulnerability
Found something? Email security@theadbench.ai — we treat security disclosures as priority and reply within 48 hours.
Our public disclosure metadata lives at /.well-known/security.txt (RFC 9116). Please email us first so we can patch before any public disclosure.
We don't currently offer a paid bug bounty, but we credit researchers in changelog notes by request.
// DAILY_CAP
Why is the daily cap so low?
// DAILY_CAP
Why is the daily cap so low?
The Free plan is intentionally tight:
- Anonymous (not signed in): 1 Quick Check/day.
- Free account (signed in): 3 Quick Checks + 1 Deep Dive/day.
The point isn't to gate the rubric; it's to keep the analyzer responsive while we're single-operator and the per-analysis Anthropic cost adds up. Sign in (it's free) to open the 3+1 bucket.
When you hit your cap, the upgrade prompt shows two options: Upgrade to Pro · $49/mo (10 Quick Checks + 10 Deep Dives/day) or wait until tomorrow at midnight UTC when the counter resets.
// PRO_PLAN
What Pro gets you
// PRO_PLAN
What Pro gets you
Pro is $49/mo. Subscribe on the Pro card at /pricing.
What Pro adds the day Stripe activates:
- 10 Quick Checks + 10 Deep Dives/day — separate buckets. Free accounts get 3 Quick + 1 Deep/day; Pro lifts both to 10 each.
- Full Deep Dive report — the complete bench: hook rewrites, predicted metrics, storyboard rebuild, algorithm signals, and the narrative layer (vertical archetype, emotional positioning, production craft).
- Voiceover transcript + per-frame video timing read on every video analysis.
- Saved report history at /account/reports with one-click share-link copy + view counts.
Agency plan ($199/mo) layers in API access (programmatic /api/analyze with sk_tab_… Bearer keys), bulk batch analysis (up to 50 ads at once), team seats, and a weekly digest. Subscribe at /pricing.
// CONTACT
Talk to a human
// CONTACT
Talk to a human
The Ad Bench is a Bloody Finger Software production. For anything this page doesn't answer:
- Product / feedback / bug reports: tap Report a bug in the footer of any page — screenshots welcome, we reply within 24h.
- Privacy / data deletion: legal@theadbench.ai
- Security disclosures: security@theadbench.ai (RFC 9116 metadata at /.well-known/security.txt)
- Partner program applications: partners@theadbench.ai
// GETTING_STARTED
Drop in any ad — four ways
// GETTING_STARTED
Drop in any ad — four ways
- Upload video— MP4, MOV, WebM, MKV, M4V, AVI, or 3GP. Frames get extracted in your browser (your original file never leaves the device); only the JPEG keyframes upload. MP4 (H.264) is the most reliable; if your browser can’t decode a file you’ll get a clear prompt to re-export. Works best on clips under 60 seconds.
- Video URLs (TikTok, YouTube, Instagram, Facebook) — paste any public video URL. TikTok and YouTube Shorts URLs are reviewed from the actual video — we fetch the clip and run the same frame-by-frame + voiceover-transcript pipeline as an upload. Instagram Reels and Facebook videos are reviewed from the cover frame and caption (Meta blocks third-party video fetches).
- Image — JPG, PNG, WebP, GIF, HEIC/HEIF, or AVIF. Large photos and screenshots are downscaled in your browser before upload. Good for anystatic ad creative — Spark Ad stills, planned thumbnails, static social or display ads, marketplace (e.g. Amazon) ads, or a photo of an out-of-home / print ad. The analyzer identifies the format and reviews it on its own terms — it won't judge a billboard as a failed TikTok ad.
- Script— paste a script before you film. We'll score the hook, structure, and CTA so you can rewrite before burning a shoot day.
// ACCOUNT_VALUE_SCORE
Account Value Score — what a creator is worth
// ACCOUNT_VALUE_SCORE
Account Value Score — what a creator is worth
A separate free tool at /account-value-score. Paste a public TikTok, Instagram, or YouTube profile URL and we return a transparent monthly-value estimate across every income stream that fits the platform — AdSense, TikTok Shop, LTK, sponsored content, paid memberships — as a low / mid / high band with every assumption shown.
It's honest back-of-envelope math: for YouTube channels, live stats (subscribers, total views, upload cadence) are pulled directly from the YouTube Data API — no input needed. For every other platform, industry RPM and commission benchmarks are applied to the numbers you provide. Every narrowing input (followers, last-30-day views, niche, monetization signals) tightens the range — last-30-day views helps most. Reports now include growth milestone projections (what the account could earn at 50k / 100k / 250k / 500k / 1M subscribers) and a list of untapped monetization opportunities with effort tags (quick win / medium / long-term).
Free with a free account — sign in (about 10 seconds) and you get 3 scores a day on the free plan (Pro: 15/day · Agency: 100/day), tracked separately from your Quick Check / Deep Dive analyze quota. Scores you run while signed in are saved to My Reports alongside your ad reports.
// AD_CREATIVE_SCORE_MODES
Quick Check vs Deep Dive
// AD_CREATIVE_SCORE_MODES
Quick Check vs Deep Dive
Quick Check
About 60 seconds
A one-line verdict, an overall 0–100 comprehensive score (with a letter grade), an engagement read, and a 5-category breakdown (Hook · Native feel · Clarity · CTA · Brand fit) — and up to 5 fixes. Pick this when you want a fast read before re-shooting or before kicking spend.
Deep Dive
The full bench
Hook-rate prediction, hook-formula classification with quoted evidence, 6-category rubric, 10 predicted performance metrics, algorithm signals, risk flags, ranked top issues with fixes, 3 hook rewrites + new caption + 3 CTA variants + shot-list edits. Plus depth signals: tropes (earned vs. lazy), cultural fluency (native / reaching / cringe voice match), clip detection (assets cut off or out of frame), policy notes (FTC disclosure gaps, unverified claims), and a reading-level chip. Plus the narrative layer: vertical archetype + gap, emotional positioning, hook valence, production craft direction, 3–6 macro-shot prescriptions, and a beat-by-beat storyboard rebuild. Pick this for a real review before launch or when planning a campaign.
// READING_YOUR_REPORT
What the numbers mean
// READING_YOUR_REPORT
What the numbers mean
Every report leads with a comprehensive score — a single 0–100 read of the whole ad — paired with a letter grade from F to A+++. The grade is just the comprehensive score banded: A+++ is 95+, A is ~80–84, B is ~65–69, C is ~50–54, D is ~30–44, and F is below 30. It gives you the verdict before you read a single line.
Alongside it, the verdict shows Hook (how hard the first 3 seconds stop the scroll) and Engagement (likes / saves / shares strength). Quick Check then breaks the score into 5 categories (Hook, Native feel, Clarity, CTA, Brand fit); Deep Dive uses a 6-category rubric with evidence.
All scores are 0–100, color-coded so you can read them at a glance:
- 75–100 — strong. Ship it. Rare for first drafts.
- 50–74 — fixable. Address the top issues and re-score.
- 0–49 — overhaul needed. The model will tell you exactly what to change.
Every score carries a one-sentence justification — the model doesn't leave you guessing why a category dropped. In Deep mode, scores also point at evidence: a frame timestamp or a transcript span.
// FOR_AFFILIATES
Using The Ad Bench for short-form affiliate ads
// FOR_AFFILIATES
Using The Ad Bench for short-form affiliate ads
If your script, caption, or transcript carries any affiliate signal — #ad, #tiktokshop, use code XYZ20, link-in-bio language, LTK / Spark Ad markers — The Ad Bench automatically tilts the analysis to weigh FTC disclosure timing, code/link clarity, save-bait, comment-bait CTA, and native execution penalty.
Every report also includes a GMV projector: tweak the AOV / commission % / monthly views inputs and we project the affiliate revenue this ad should drive at your current score, then again if you got the score to 85.
The full affiliate-specific rubric lives at /learn/affiliate-advertising. Vertical-specific landings (TikTok Shop, LTK, DTC beauty) are at /for/affiliates and /for/dtc-beauty. For how the same affiliate cut should land differently across surfaces, see /learn/cross-platform-hook-portability.
// SHARING
Share a report
// SHARING
Share a report
Hit SHARE_REPORT on any report. We mint a 10-character share URL like theadbench.ai/r/abc123xyz that anyone can open without signing in. Read-only. Lasts 1 year.
If you're signed in, we also save the report to your account so you can come back to it from /account/reports. Each saved report shows its view count.
To export as PDF, sign in, open the saved report, and click PRINT— it opens a print-optimized view that auto-fires your browser's print dialog. Pick "Save as PDF" from there.
// ACCOUNTS
Sign in
// ACCOUNTS
Sign in
Three ways to sign in, all free:
- Social sign-in — one tap with Google or Apple (and Facebook, LinkedIn, or TikTok where enabled). We only see your name and email — never your password — and we never post or message on your behalf.
- Email + password — go to /login and enter your email + password. Optional; set one at /account if you want a faster sign-in than the magic-link round-trip.
- Magic link — enter your email at /login, we send a one-click sign-in link. The link expires in 15 minutes and works once. No password required.
Forgot your password?You don't need it — sign in with a magic link from /login, then set a new password at /account. The magic link opens a short window to set a new password without your old one.
Signed-in benefits: higher daily analysis limit, saved report history, view counts on shared links, PDF export, side-by-side comparison at /compare.
// PROFILE
Manage your profile (display name, email, Agency name)
// PROFILE
Manage your profile (display name, email, Agency name)
The Profile card on /account has inline editors for the fields you control:
- Display name — the name we show on reports, the nav header, and shared links. Click Edit next to the field, type a new name (up to 80 chars), hit Save.
- Email — click Change, type the new address, hit Send link. We email a verification link to the new address. Click it within 15 minutes and we'll migrate your account data (display name, password, plan, API keys, team membership, batch jobs, saved-report index, credits, partner record) to the new email and mint a fresh session. The mailto you click on lands in the new inbox — if it doesn't arrive, check spam first, then try again. If the destination is already on another account we'll refuse and tell you.
- Agency name — Agency Plan only. Shows up on the team brand kit, weekly digest emails, and the Slack digest if you have Slack wired. Same inline editor pattern as Display name.
// PRIVACY
Where your data goes
// PRIVACY
Where your data goes
For video uploads: your original file never leaves the browser. Frame extraction happens client-side; only the JPEG keyframes (~80–150 KB each) upload to Vercel Blob storage at unguessable URLs.
The audio track is extracted client-side and sent to OpenAI Whisper for voiceover transcription, then dropped.
Anthropic's commercial API terms forbid training on the content we send them. We don't fingerprint, retain, or resell the creative content of reports.
The full sub-processor list, retention windows, and contact details live at /privacy.
// YOUR_DATA_RIGHTS
Access, correct, delete, export
// YOUR_DATA_RIGHTS
Access, correct, delete, export
You have the right to access, correct, delete, or export your data, and to object to or restrict processing — globally, regardless of where you live. We don't gate these rights by jurisdiction.
How to exercise them: email legal@theadbench.ai from the address on your account. We verify identity by replying to that same address before actioning. Response window: 7 days for deletion, up to 30 days for an export.
Signed-in users can also delete saved reports themselves from /account/reports without opening a request.
To permanently close your account, use Cancel my account in the Danger Zone on /account — it cancels any active subscription, deletes your data (saved reports, API keys, settings), and signs you out. To cancel a paid plan but keep your account, use Manage subscription instead.
We don't sell or share your data with third parties for cross-context behavioral advertising — full statement at /privacy#do-not-sell.
// SECURITY
Reporting a vulnerability
// SECURITY
Reporting a vulnerability
Found something? Email security@theadbench.ai — we treat security disclosures as priority and reply within 48 hours.
Our public disclosure metadata lives at /.well-known/security.txt (RFC 9116). Please email us first so we can patch before any public disclosure.
We don't currently offer a paid bug bounty, but we credit researchers in changelog notes by request.
// DAILY_CAP
Why is the daily cap so low?
// DAILY_CAP
Why is the daily cap so low?
The Free plan is intentionally tight:
- Anonymous (not signed in): 1 Quick Check/day.
- Free account (signed in): 3 Quick Checks + 1 Deep Dive/day.
The point isn't to gate the rubric; it's to keep the analyzer responsive while we're single-operator and the per-analysis Anthropic cost adds up. Sign in (it's free) to open the 3+1 bucket.
When you hit your cap, the upgrade prompt shows two options: Upgrade to Pro · $49/mo (10 Quick Checks + 10 Deep Dives/day) or wait until tomorrow at midnight UTC when the counter resets.
// PRO_PLAN
What Pro gets you
// PRO_PLAN
What Pro gets you
Pro is $49/mo. Subscribe on the Pro card at /pricing.
What Pro adds the day Stripe activates:
- 10 Quick Checks + 10 Deep Dives/day — separate buckets. Free accounts get 3 Quick + 1 Deep/day; Pro lifts both to 10 each.
- Full Deep Dive report — the complete bench: hook rewrites, predicted metrics, storyboard rebuild, algorithm signals, and the narrative layer (vertical archetype, emotional positioning, production craft).
- Voiceover transcript + per-frame video timing read on every video analysis.
- Saved report history at /account/reports with one-click share-link copy + view counts.
Agency plan ($199/mo) layers in API access (programmatic /api/analyze with sk_tab_… Bearer keys), bulk batch analysis (up to 50 ads at once), team seats, and a weekly digest. Subscribe at /pricing.
// CONTACT
Talk to a human
// CONTACT
Talk to a human
The Ad Bench is a Bloody Finger Software production. For anything this page doesn't answer:
- Product / feedback / bug reports: tap Report a bug in the footer of any page — screenshots welcome, we reply within 24h.
- Privacy / data deletion: legal@theadbench.ai
- Security disclosures: security@theadbench.ai (RFC 9116 metadata at /.well-known/security.txt)
- Partner program applications: partners@theadbench.ai
// BRIEF_TO_DRAFT
Brief → draft
// BRIEF_TO_DRAFT
Brief → draft
The drafting workbench at /draft turns a 4-line brief into 6-10 distinct hook variants + a 3-7-cut shot list + one full sample script + vertical-specific risk flags. Aimed at the moment between “client wants 5 hook ideas by end of week” and “crew shoots Friday”.
How to use it:
- Fill in product / offer, target audience, CTA goal. Optionally vertical, target length, production style (UGC / studio / hybrid), and brand-voice notes (banned words, tone constraints, compliance posture).
- Click Draft concepts. ~15 seconds later you get the full pack.
- Each hook variant has a Run through The Ad Bench link that pipes it into the regular analyzer at Quick mode — grade your own drafts before shooting. Works for the sample script too.
Cap is 60 drafts per day per user(overrideable on request). Drafts run on the fast tier (~5-15 second latency); your daily Agency analyze quota is unaffected unless you click “Run through The Ad Bench” on a draft.
// VARIANTS
Variants from a winner
// VARIANTS
Variants from a winner
Got an ad that scored well? Iterate without starting from scratch. The generator at /draft/variants takes the winning script + its The Ad Bench score + a transformation axis, then drafts up to 10 variants that preserve the parent’s working structure while varying along the chosen axis only.
Five transformation axes:
- Hook-only swap — same body + CTA, vary only the first-2-seconds opener
- CTA-only swap — same hook + body, vary only the closing ask
- Full rewrite — preserve the angle + audience, write fresh hook + body + CTA
- Format shift — same script, different production style (UGC ↔ studio)
- Tone shift — same script + format, different tonal register
Each variant lists what was preserved vs changed (concrete, not vague), a rationale tying back to the chosen axis, a predicted score band, and a one-click button to run it through the analyzer for a real grade.
// CREATOR_BRIEFS
Creator brief generator
// CREATOR_BRIEFS
Creator brief generator
Hiring N UGC creators this week and writing the same brief N times? The generator at /draft/creator-brief drafts up to 10 outbound briefs in one shot, each tilted to a different angle so the resulting ads aren’t carbon copies. Tier-aware (nano / micro / mid / macro) — the DM voice + length + payment-terms framing match the creator size you’re hiring.
What each brief gives you:
- One-line angle (so you can pick which to send to which creator)
- DM opener — paste-into-DM ready, ≤300 chars
- Brief body — plain text, sized for the creator tier
- 3-4 hook options the creator can pick from
- Must-include lines (claim language, CTA, brand mention)
- Banned moves (no comparative claims, no studio lighting, etc.)
Briefs share the daily drafting cap with /draft — 60 items/day per user across both endpoints. Generating 5 briefs counts as 5 against the cap.
// TEAM_SEATS
Team seats
// TEAM_SEATS
Team seats
Agency includes 5 seatson one shared subscription. Invite teammates by email; they sign in via the link in the invite (no password) and immediately get the team’s daily quota + every Agency feature (bulk batch, API keys, /docs/api). Saved reports stay tied to whoever ran the analysis, but the team’s daily cap pool is shared — so a 5-person team has the same 1000/day ceiling as a solo Agency owner, just spread across more seats.
How to set up a team:
- On your own Agency-paying account, go to /account/team → name your team → Create team.
- Invite teammates by email. Each gets a 7-day invite link. Click it → they’re signed in + on the team in one step (no separate sign-up).
- Manage the roster from the same page — see who’s on, cancel pending invites, remove members. Members can leave on their own at any time.
Heads-up — v1 limits worth knowing:
- +$25/seat extension is in flight. v1 lets you add up to 25 members on the included quota. The Stripe seat-quantity sync that turns extra seats into actual line-item billing ships with the rest of the Stripe activation.
- One team per email. You can’t belong to two teams simultaneously. Leave the current one before accepting a new invite.
- Owner can’t leave. Ownership transfer ships in v1.5 — for now, tap Report a bugin the footer with "ownership transfer" in the description and we'll handle it.
// WEBHOOKS
Outbound webhooks
// WEBHOOKS
Outbound webhooks
Push every analyze completion, batch finish, or weekly digest into your existing stack — Slack, Frame.io, Asana, Linear, Zapier, n8n, BigQuery ingest, anywhere that accepts a signed POST. Up to 5 webhook subscriptions per team, each with its own HMAC-SHA256 signing secret + filterable event types.
How to set one up:
- On /account/team/webhooks → label, URL, pick events → Add webhook.
- Copy the
whsec_…signing secret immediately. It’s shown once and never re-derivable. - On your endpoint, verify the
X-AdBench-Signatureheader against the raw request body using HMAC-SHA256. Full Node / Python examples live at /docs/api under the Webhooks section. - Click Test on the webhook row to fire a one-off event end-to-end before relying on it in production.
Heads-up:
- Single delivery attempt per event, no auto-retry in v1. Check the delivery log (per-webhook button) for status history.
- 10 consecutive failures → webhook auto-disables. Recreate to re-enable (forces you to fix the root cause first).
- 5-second request timeout. Ack synchronously and queue the heavy work on your end.
// WEEKLY_DIGEST
Team digest: email + Slack
// WEEKLY_DIGEST
Team digest: email + Slack
A summary of the team’s The Ad Bench activity lands in the owner’s inbox on a schedule you choose — daily (previous day’s activity) or weekly (Monday, covering the last 7 days). Total reports, average score, per-teammate counts, top + bottom scoring ads with direct links. Skips periods with no activity.
Configure frequency and Slack from /account/team/integrations. Frequency choices: Off, Daily, or Weekly. Default is weekly.
For Slack: paste an incoming-webhook URL from your Slack workspace in the Slack section of the integrations page. The same digest is posted as a Block Kit message to the configured channel. Email and Slack fire independently — you can have both or either.
// BULK_BATCH
Bulk batch analysis
// BULK_BATCH
Bulk batch analysis
Drop up to 50 TikTok / Reels / Shorts URLs (or scripts) at once and The Ad Bench grades them in parallel — concurrency-capped at 5 requests in flight, so a 50-item batch finishes in 2-3 minutes instead of dragging on serially. Useful for weekly creative reviews, agency portfolio audits, or CI gating before client deliverables go out. For batching a single cut into per-platform variants, see /learn/cross-platform-recut-strategy.
How to run a batch:
- Sign in (Agency plan required — subscribe at /pricing).
- Go to /account/batch → pick the URLs or Scripts tab → paste your list → click Run batch.
- Wait ~1-3 minutes for all items to grade. Results appear in a sortable table; each row links through to the auto-saved Quick report at
/r/<id>. - Click Download CSV for label / format / hookScore / report URL / error per item.
Batches use Quick mode only in this version — Deep Dive at 50 items would exceed the 5-minute serverless function ceiling. Each item still counts toward your daily Agency quota (shared across the team, or per-key when authed via Bearer).
// API_ACCESS
API access
// API_ACCESS
API access
Agency users can call /api/analyze programmatically from CI/CD, scripts, or third-party tools — same analyzer as the UI, no browser required. Useful for hook-score gating in a creative approval workflow (Frame.io, Asana, Linear), batch grading after a weekly shoot, or piping scores into a dashboard.
How to get a key:
- Sign in (Agency plan required — subscribe at /pricing).
- Go to /account/api-keys → label → Generate key.
- Copy the
sk_tab_…value immediately— it’s shown once and never re-derivable. Store it in your secret manager (1Password, Bitwarden, GitHub Actions secrets, etc.).
How to use it:
curl -X POST https://theadbench.ai/api/analyze \
-H "Authorization: Bearer sk_tab_…" \
-H "Content-Type: application/json" \
-d '{"format":"url","url":"https://www.tiktok.com/@handle/video/…","mode":"deep"}'Quotas, error envelopes, and full request/response shape live in the public reference at /docs/api (curl, JS, Python, GitHub Actions examples).
Each key has its own quota bucket so a runaway script on one key can’t starve another. Need a higher ceiling? Tap Report a bug in the footer with your traffic estimate. Revocation is immediate — the next request after you click Revoke returns 401.
// BRAND_KIT
Brand kit
// BRAND_KIT
Brand kit
The brand kit lives at /account/team/brand-kit and lets you inject your brand’s creative rules into every AI output. It has five parts:
- Voice doc — a free-text brief (tone, vocabulary, energy level, persona) that shapes how hooks, CTAs, and rewrites are worded.
- Banned words — comma- or line-delimited list of words or phrases the model must never use (competitor names, expired claims, avoided slang, etc.).
- Compliance posture — Standard, Strict, FTC-disclosure, or TikTok Shop. Swaps the compliance rules baked into every report.
- Rubric weights — slide each of the six rubric dimensions (Hook · Clarity · CTA · Brand fit · Native feel · Pacing) to reflect what your brand actually cares about most. Pre-built presets for DTC, SaaS, UGC, Beauty, and Affiliate ship out-of-the-box.
- Brand vertical— your brand’s category. Informs the Brand fit score (does the creative read as a fit for a brand in that vertical?). Reports still classify each ad’s actual on-screen content.
The brand kit applies automatically to every Deep Dive run your team does. Quick Check uses the rubric weights; the full kit (voice + banned words + compliance) applies on Deep Dive.
When the kit shapes a report, the report says so: a small // AGENCY · BRAND KIT note lists which parts applied, and the Brand-fit line is tagged Per your Brand Kit with your vertical. Free and Pro reports show none of these markers.
// HOOK_LIBRARY
Team hook library
// HOOK_LIBRARY
Team hook library
Every strong hook your team encounters can be saved to a shared library at /account/team/hooks. Library entries include the hook text, pattern tag (curiosity gap, pattern interrupt, social proof, etc.), optional vertical tag, score, source URL, and notes.
How to save a hook:
- On any Deep Dive report, find the rewrites section → click the ↓ Save hook button next to a rewrite.
- On any Quick Check Report (script input), the same ↓ Save hook button appears in the feedback section.
- From the library page itself, click + Add hook to enter one manually.
The library cap is 500 hooks per team. Use ↓ CSV on the library page to export the full library to a spreadsheet.
// WORKBENCH
Workbench tools
// WORKBENCH
Workbench tools
The Agency workbench adds purpose-built AI tools beyond standard ad review. All live in the /draft and /compare sections of the nav.
Flag FTC, TikTok Shop, or brand-voice violations before a script goes to production.
Test multiple hook variants side-by-side — scored, ranked, with pattern and pattern-fit notes.
Paste a script and get a tone/language alignment score against your brand voice doc.
Score two or more creative concepts against the same brief and rank them.
Generate AI image prompts for short-form video cover frames optimized for scroll-stop.
Score a creator's recent short-form video posts for fit against a campaign brief and vertical.
Extract hook patterns, creative signals, and style notes from a creator's content.
// DIGEST_FREQUENCY
Digest frequency: daily vs weekly
// DIGEST_FREQUENCY
Digest frequency: daily vs weekly
From /account/team/integrations, you can choose how often the team digest fires:
- Off — no digest emails or Slack posts.
- Daily— a digest fires every day at 9am UTC with the previous day’s activity. Skips days with no reports.
- Weekly (default) — a digest fires every Monday at 9am UTC with the previous 7 days. Skips weeks with zero activity.
When a Slack incoming-webhook URL is configured, the same digest content is also posted to the connected Slack channel. Set the URL in the Slack section of the integrations page.