Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Ad Creative Tagger

Hand an AI a folder of ads and get back consistent tags on every creative choice — how each ad opens, what it argues, what proof it shows, how it looks, what it asks for.

flowchart LR
  A["<b>1 · Your ad library</b><br/>images, video, carousels<br/>+ their captions"]
  B["<b>2 · The tagger</b><br/>dedupe → visual pass<br/>→ argument pass"]
  C["<b>3 · A tagged sheet</b><br/>33 traits per creative<br/>ready to join to spend"]
  A --> B --> C
  style A fill:#f6f8fa,stroke:#57606a,color:#1f2328
  style B fill:#ddf4ff,stroke:#0969da,color:#1f2328
  style C fill:#dafbe1,stroke:#1a7f37,color:#1f2328
Loading

Once your creative is tagged, performance data can be grouped by creative decision instead of by ad name. That is the difference between "these five ads did well" and "soft CTAs with a customer quote outperform on LinkedIn decision-stage by 39%."

Built on the Creative Intelligence Trait Taxonomy (CITT) v4 — 33 traits, 164 defined values, every value written with an explicit rule separating it from its nearest neighbour.


Run it

  1. Put SKILL.md in your AI tool's instructions field — Claude Project, Custom GPT, Gemini Gem, or an API system prompt.
  2. Put reference/citt-taxonomy.csv in its knowledge base or file uploads.
  3. Send it a creative with its caption and the computed counts.

No code required. If you are tagging more than a few hundred ads, use reference/output-schema.json with your provider's structured-output mode and batch it.


What you need per ad

Required
asset_id The deduplicated creative ID — run duplicate-ad-creative-finder first
The creative Image, video file, or the full ordered carousel
caption_text Verbatim
platform
Computed counts Word count, slide count, duration — measured, not estimated

The skill halts rather than guessing if any of these are missing. That is deliberate.


How it works

  1. Preflight — five checks, each of which halts the run. The most important confirms your input is keyed by creative, not by platform ad ID.
  2. Visual pass — everything visible in the creative itself, walked through the taxonomy layers in order.
  3. Argument pass — everything in the caption, tagged separately so the copy cannot contaminate the visual traits and vice versa.
  4. Resolution — where two values could apply, the taxonomy's own disambiguation rule decides.
  5. Flagging — genuine ambiguity gets flagged, never silently resolved.
  6. Defect detection — after a full library, check the value distributions for impossible results. They usually indicate a delivery bug, not a finding.

The part worth reading even if you never run it

reference/tagging-rules.md — every operational rule for getting a vision model to classify a large asset library reliably, and what each one cost to learn.

Deduplicate before tagging and 1,006 vision calls become 202. Sample video keyframes at (i + 0.5) / n, because the exact first and last frames of an ad are usually a fade. Downscale to 1280px — full resolution costs 3–5× the tokens for no accuracy gain, but below 1000px small CTA text starts dropping out. Send the whole carousel deck, not slide 1, or proof traits read as absent on 73% of your carousels and you will believe it.

None of this is specific to advertising. It is how you make a vision model classify any large library consistently.


Files

File What it is
SKILL.md The skill. Goes in your AI tool's instructions field
reference/citt-taxonomy.csv 33 traits, 164 values, each with a definition and a disambiguation rule
reference/output-schema.json JSON schema for structured-output mode. Enums generated from the taxonomy — never retyped
reference/tagging-rules.md The operational manual. Every rule, and what it cost to learn

Related

duplicate-ad-creative-finder → run before this · creative-pattern-miner → run after this · winning-ad-formula-finder · creative-diversity-audit


MIT © Raneq Barber

About

Tag your whole ad library against a fixed 33-trait taxonomy, so you can group performance by creative decision instead of by ad name.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors