Grammarly for ad launch.

With Kitchn.io every ad gets checked for simple mistakes and against your team's standards. Spelling, client wording, asset specs, the Meta switches you actually meant to flip. Launches stay blocked until everything is clean. Mistakes don't reach the client.

The problem

An agency can't afford to ship ads with mistakes. Even harmless ones.

A typo that never touches performance still costs you client trust, so quality is one of the most important things to get right. And one of the hardest. Either it lives in someone's memory, or your media buyers run a manual 35-item QA checklist before every launch, double- and triple-checking each one. Sure, you stay accurate. But everything grinds to a crawl.

QA Engine

Every launch, checked. Before it ships

Quality control that doesn't depend on heroics. Every ad checked against your team's standards. Spelling, client wording, asset specs, and the Meta switches you actually meant to flip. Launches stay blocked until everything is clean. Mistakes don't reach the client.

Ad namePre-launch checkHeadlineCTA
Spring-Single-2026
'acme' doesn't match your client's wording guidelines 'Acme'Spring drop, now live.Shop now
Reels-Hero-2026
Aspect ratio 9:18. Should be 9:16 for Reels and StoriesMade for Reels.Learn more
Holiday-Stories-2026
CTA requiredNew colours dropped.
LAL-Static-2026
ReadyFor everyday wear.Shop now
Creator-Remix-2026
ReadyReal reviews from real fans.Sign up
B2B-Lead-2026
Naming doesn't match conventionsFor finance teams.Sign up
⚠ Launch blocked2 errors · 2 warnings must be resolved before this batch can ship.
Spelling and copy errors, caught
No more "Shop nwo." Typos flagged on the row, before the client sees them.
Creative Enhancements, locked
Set them once per ad set. They stay set. No more Meta silently flipping them on between launches.
Client-specific wording & language
US vs GB spelling, approved phrases, brand voice. Caught on the row.
Placement-aware creative checks
Reels need 9:16, Feed needs 1:1. Flagged before the API ever sees it.
Slack alerts

Bad news finds you before the client does.

Kitchn's rule engine watches every ad account around the clock and pings the right Slack channel the moment something looks off. The quiet failures nobody spots until Monday? You hear about them right away.

  • Ads disapproved. Meta rejects an ad, your channel knows within minutes.
  • No spend. An account that stopped delivering overnight gets flagged, not discovered.
  • Too few ads live. Coverage drops below the minimum you set? Ping.
  • Your own rules. If a rule can check it, a rule can alert on it.
🚫
Ads disapproved
2 ads rejected on “Anthora EU · Spring”. Reason: ad text policy.
now · #paid-social
💤
No spend since midnight
“Acme US” has spent €0 today. Yesterday: €1,840.
07:00 · #acme-alerts
📉
Too few ads live
Only 3 ads delivering on “Verdant DE”. Your minimum is 8.
07:00 · #paid-social
Performance alerts

Set the threshold once. The rules keep watch.

Pick a metric, a timeframe and a limit. When CPA creeps past it or CTR drops off a cliff, the rule pings Slack, pauses the ad or adjusts the budget on its own. And every trigger lands in the activity log.

How a rule works
1
Pick the metric
Spend, CTR, cost per result, conversions. Yesterday, last 7 days, any window.
2
Set the trigger
CPA above €45 for three days straight. CTR down 20% week over week.
3
Choose the action
Ping a Slack channel, pause the ad, adjust the budget. Or all three.
4
It runs on its own
The rule checks on schedule. No dashboard babysitting.
Rule activity · this morningevery run logged
CPA guardpaused 2 ads · CPA above €45 for 3 days09:41
CTR watchpinged #paid-social · CTR down 22% vs last week08:15
Budget pacingraised budget 10% · “Spring Hero” under-delivering07:02
Delivery checkflagged ad set · zero spend since midnight06:30

Manage more ad accounts
with the same team.

Walk through your team's workflows with us.