Teaching AI to Read Every Ad Server's Tag Sheet
Every ad server exports campaign tag sheets, and every ad server disagrees about what a tag sheet is. One sends INS tags, another iFrames, a third a legacy format that predates both; the columns shift, the macros differ, and the person trafficking a campaign reconciles all of it by hand — a 50-field, 4-to-6-hour ritual per campaign, with every field a chance to ship a broken tag to a live campaign.
In December 2025 I built the pipeline that automates it. The design question worth a case study is not "can AI read tag sheets" — it can — but where the AI belongs and where it absolutely does not.
Five Stages, One Split
The pipeline runs Upload → Detect → Transform → Inject → Traffic:
- Upload accepts what agencies actually send — .xls, .xlsx, .txt, any ad server, any era.
- Detect is where the AI lives: classifying the ad server and creative format from the sheet itself. Across 12+ formats (CM360 in three dialects, Flashtalking, Sizmek, MediaPlex, and the long tail), detection runs above 98% accuracy — validated against 50+ real production tag sheets, not synthetic fixtures.
- Transform inserts the DSP-specific macros. Deterministic code, no model.
- Inject adds verification pixels and privacy flags. Deterministic, audit-logged.
- Traffic pushes directly to the DSP APIs — DV360, The Trade Desk, Xandr, Amazon.
The split is the architecture: AI sits exactly at the boundary where the inputs are messy, and nowhere else. Format detection is a perception problem with irreducible variance, so a model earns its place. Macro insertion and pixel injection are correctness problems, so they are code — testable, reproducible, provable. An AI that is 98% right at detection is a triage engine; an AI that is 98% right at macro insertion is a liability shipping one broken campaign in fifty.
The Unglamorous Parts That Make It Trustworthy
Every transformation writes to an audit log, so any output tag can be traced back to the exact input cell and rule that produced it. Nothing pushes to a DSP without human review of the transformed sheet. The parser refuses ambiguous inputs instead of guessing — a sheet it cannot classify confidently is a sheet a human sees, not a sheet the model bluffs through.
The result was a reduction of more than 80% in per-campaign trafficking time, on work validated against real production sheets.
The Pattern Across Everything I Ship
This is the third system I have built on the same skeleton — an LLM briefing agent a 1,400-person org adopted, an account platform whose AI assistant drafts but never auto-acts, and this pipeline:
models at the messy boundary, deterministic code at the core, an audit trail through the middle, and a human in front of anything irreversible.
The AI is the least interesting part of an AI system that people trust with production work. The trust is built by everything around it.