AI Systems · AdGuard · Demo, public

AdGuard put four platform rulebooks where a distributed team could reach them

Meta, Google, LinkedIn and Bing advertising policy, structured as schema so ad copy can be audited automatically. Built for regional specialists working eleven hours away from me in a category the platforms scrutinise hardest.

4 platform rulebooksrestructured from prose into schema
Reviewed where the work isno waiting on a timezone
Eleven hours apart

A distributed team, a high-risk category, and eleven hours of time difference

I was running marketing specialists across Vietnam, India and the wider region. Some were early in their careers, and nobody arrives already knowing platform advertising policy: it runs long, it differs per platform, and it shifts.

Financial services is a high-risk category, so the platforms read our ads harder than most. A phrasing that passes for a SaaS product gets an account flagged for a cross-border payments brand. The cost of a mistake was not a rewrite, it was a disapproval mid-flight and a live campaign going dark.

The time difference made the obvious fix impossible. Reviewing every draft myself meant every specialist waited most of a day to learn that a headline was three characters too long.

01 · Build A specialist drafts the ad

In Vietnam, India or elsewhere in Southeast Asia, working a full day inside the platform's ad manager.

their morning
02 · Sleep The review waits for me

Eleven hours of time difference between the person who wrote the ad and the person allowed to approve it.

+11h
03 · Reply I read it and send notes

Their day is over by then, so the fix lands the following morning at the earliest.

+1 day
04 · Reject The platform disagrees anyway

A headline three characters too long, or a claim its policy reads as a guarantee. The loop restarts with nobody having learned the rule.

most of a day lost
2 days The realistic round trip on a change that took two minutes to make. The specialists knew their craft. The rulebook lived in my head, eleven hours away, and I was asleep for most of their working day.
What the team did instead

Platform review, four rulebooks, a chatbot

Three options, each of which the team was already using in some form.

OptionWhat it gaveWhere it brokeVerdict
Submitting and waiting for review

The only genuinely authoritative verdict, straight from the platform that will serve the ad.

It arrives after the campaign is live, after budget has moved, and after the account has taken the quality hit.

Rejected
Reading the four rulebooks

The real rules, published, free, and more detailed than any summary of them.

There are four, they revise on four different schedules, and expecting a junior specialist to hold all of them is setting the person up to fail.

Became the schema
A chatbot with the policy pasted in

A fast opinion at any hour, which mattered with eleven hours between us.

The same ad came back with different verdicts on different days. For somebody learning the rules, an inconsistent teacher is worse than none.

Rejected

The rulebooks were right and unusable. Making them machine-readable is what turned four documents into one consistent answer a specialist could get at midnight.

Rulebook as schema

Turn four rulebooks into schema, so the review happens where the work happens

Meta, Google, LinkedIn and Bing each publish their advertising policy as long prose. Structured as schema, the same rules become something copy can be checked against automatically: the creative specifications as hard limits, the policy guidelines as conditions with a severity.

That single change moves the feedback from me to the tool. A specialist in Hanoi drafts, audits, sees which rule the copy trips and why, fixes it, and ships. The correction arrives in seconds instead of waiting for my morning.

Company rules sit alongside the platform rulebooks as toggles, each one on or off, some pointing at the brand or legal page that defines them. Policy that changes is a switch rather than a message asking everyone to remember something new.

Where the team worked

A specialist in Hanoi can read the rule that failed them, at midnight

Single audit

One ad, one verdict: headline, body, landing page and image checked against the selected platform rulebooks with each risk explained.

Bulk upload

A whole campaign at once, which is how the work actually arrives before a launch.

Policy center

Each platform's requirements as a browsable database, so a specialist can read the rule rather than only its verdict.

Company policy

Our own overlays as toggles: brand voice, competitor mentions, disclaimers, discount limits, inclusive imagery.

The Policy Center matters more than it looks. A tool that only returns a score teaches nobody anything, and the gap I was managing was knowledge. Showing the rule beside the finding meant the team needed the tool slightly less each month.

adguard-adcopy-checker.vercel.app
AdGuard company policy screen with nine brand and legal rules as individual toggles
AdGuard policy center showing Meta creative specifications and detailed policy guidelines
Why it was worth building

A rejection costs more than the ad it stopped

Three separate costs sit behind every disapproval, and only the first one is visible on the day it happens.

01 The account remembers

Each rejection counts against account quality. A run of them narrows delivery on everything else you are running, and a bad enough run ends the account outright.

02 The launch slips

Waiting on legal or platform review pushes the launch date, and the creative team spends the gap in a revision loop instead of on the next test.

03 The rules keep moving

Meta, Google, LinkedIn and Bing each maintain their own policy and each revises it on its own schedule. Tracking four moving rulebooks by hand is work nobody finishes.

A worked example from the demo. Submit "Switch to SmartYield and earn 8% APY immediately. Risk-free returns guaranteed for all new accounts." and it comes back with a safety score of 12 out of 100 and the violation named: misleading guarantee.

Naming the violation type rather than reporting a number is what a specialist eleven hours away actually needs. It tells them which class of problem they have, which rule in the Policy Center to read, and what to change, all without a call. The same submission is checked against every selected platform at once, with the firm's own brand and legal overlays applied on top.

Two authorities, two tools

The platform rulebook, next to the regulator's

Two different authorities can reject the same sentence. FinGuard reads the regulator: FINRA, SEC, MiCA and the local equivalents. AdGuard reads the platform: what Meta, Google, LinkedIn and Bing will accept into an auction.

Both started as checks that ran after the copy existed. CreativeOS is where they were folded into the generation step instead, so the constraints apply while the draft is being written.

After

A management problem solved with tooling rather than meetings

It is a small product, and I would describe it that way in an interview. What it did was remove me from the middle of a loop I was slowing down, and give a distributed team one place to check their own work before it reached spend.

That is the pattern I keep finding worth building for: a specific operational failure, a team that cannot easily ask for help, and a rulebook that only lived in someone's head.

The bottleneck had a face, and it was mine

Every ad a specialist in Hanoi or Bangalore wrote had to wait for one person in San Francisco to wake up and read it. Nobody in that loop lacked skill. The rulebook simply lived in my head, which made me the slowest component in a team of eight time zones. Turning the four platform rulebooks into schema is what let the people doing the work check it themselves, at their own hour, before any money moved.

What it runs on

The rulebook runs before the model does

Application

React logoReactSingle audit, bulk upload, policy center and company policy. TypeScript logoTypeScriptThe policy schema is typed, so a malformed rule cannot ship. Vite logoViteBuild tooling. Tailwind logoTailwindThe design layer.

Rules

Platform policy schemaMeta, Google, LinkedIn and Bing requirements as structured records with creative specs, severities and violation types. Company policy togglesNine brand and legal rules, each independently switchable and owned by a named person.

Models

DeepSeek logoDeepSeekThe bulk pass. Cheap enough to run across a whole campaign upload rather than one ad at a time. Gemini logoGeminiReads the copy against the rules the deterministic pass could not settle, and names the violation type. OpenAI logoGPT-4oThe tie-break. Where the other two disagree on a judgement call, the third read decides whether it escalates to a human.

Delivery

Vercel FunctionsThe audit endpoint, one call per submission.

The character counts, aspect ratios and banned-term checks are plain code that runs before any model call, which is why the same ad gets the same verdict twice. Only the judgement calls reach a model, and there the three disagree often enough to be worth running all of them: two agreeing is a verdict, three splitting is a flag for a human.

Want this kind of guardrail in your ad workflow?

Nine systems shipped, compliance, reporting, intelligence, content.