Paid media creative management is one of those problems that feels small until it isn’t. You start with a folder on someone’s Google Drive, a naming convention that made sense in January, and a shared Notion doc that nobody updates. Six months in, your team is re-briefing creative that already exists, testing variants that already failed, and spending an hour before every campaign launch just trying to find the right assets. Choco Media has run into this in our own work and with clients at every budget level — and the fix isn’t more storage. It’s a system. This post is a practical walkthrough of how to build a paid media creative library that actually gets used: how to organise assets, tag them for retrieval, track what each piece of creative learned, and retire content before it drags down performance.
This isn’t aimed at large media-buying teams with dedicated ops staff. It’s for the people running lean — a performance marketer and a designer, maybe an external creative partner — who need their creative assets to be findable, understandable, and useful the week after a campaign ends, not just the week it launched.
If you’re running paid media at any meaningful scale, the question isn’t whether you need a creative library. It’s whether the one you have is slowing you down.
Why most creative libraries fail before they start
The usual approach is to create a folder structure that mirrors the campaign structure: brand > campaign > ad set > assets. It feels logical. It collapses almost immediately.
The core problem is that campaign-mirrored folders optimise for filing, not retrieval. When you need to find “that UGC-style hook we tested in Q3 that performed on cold audiences,” you can’t navigate there. You have to remember which campaign it lived in, open it, hope the naming convention helps. Most of the time it doesn’t.
- Naming conventions drift. The person who set them up leaves or gets busy, and within a quarter you have three conventions running in parallel.
- Performance data lives elsewhere. The asset file doesn’t tell you whether it worked. You have to cross-reference the ads manager, which nobody does after the fact.
- Versions accumulate without hierarchy. V1, V2, V2-final, V2-final-REAL — the actual winner gets buried.
- Retired creative isn’t retired. Assets that burned out stay in the library, get rediscovered, get re-tested, and waste budget delivering the same result.
A functioning creative library is closer to a product knowledge base than a file system. The structure should serve the question: “what do we know about how our creative performs, and what can we brief next?”
The four layers of a working creative library
We’ve found it useful to think about creative libraries as having four distinct layers, each serving a different use case.
Layer 1 — Active assets
These are creative pieces currently live in campaigns or approved for use. They’re your working inventory. The standard should be high: every asset here has a clear status, a record of where it’s running, and at least a baseline performance note.
Layer 2 — Performance archive
Assets that have finished their run but whose results are worth keeping. When you brief a new round of creative, this is where you look for what’s already been learned. A good performance archive answers the question: “have we already tested this?”
Layer 3 — Reference and inspiration
Competitor ads, industry benchmarks, formats you want to try, visual references. This layer feeds briefing but doesn’t contain assets you own or plan to run.
Layer 4 — Rejected and retired
Assets that underperformed or were never approved. Keeping these in a clearly labelled layer prevents them from being rediscovered and re-used. This is the layer most teams skip, and it’s why the same creative mistakes repeat on a six-month cycle.
How to tag assets so you can actually find them
The tagging system is where creative libraries succeed or fail in practice. Too few tags and retrieval is still a manual hunt. Too many and nobody applies them consistently.
We use a core tag set of five dimensions. Every asset gets tagged across all five at upload — not retroactively, at the moment of upload. If it takes more than ninety seconds to tag an asset, the system is too complicated.
- Format: static, video, carousel, UGC, motion-graphic, story
- Hook type: question, problem-agitate, social-proof, demonstration, offer-led, curiosity-gap
- Audience type: cold, warm, retargeting, lookalike, existing-customer
- Platform: Meta, TikTok, Google Display, LinkedIn, Pinterest
- Funnel stage: awareness, consideration, conversion
With these five dimensions you can pull up every video, question-hook asset you’ve tested against cold Meta audiences at the awareness stage. That’s useful when you’re briefing the next round.
“The question we ask before briefing any new creative: have we already answered this? Most of the time, if the archive is searchable, we have. The brief then becomes a refinement rather than a starting point.”
Recording what each piece of creative learned
Performance data needs to live with the asset, not only in the ads manager. The ads manager data decays in usefulness over time — account structures change, campaigns get archived, and that CPL from eight months ago loses its context.
For each asset in the performance archive, we record a short learning note alongside the metrics. The format doesn’t need to be elaborate:
- Tested in: campaign name, dates
- Audience: what the ad set was targeting
- Key metrics: CTR, CPL or ROAS (whichever matters for this campaign), hook retention (if video)
- What it told us: one or two sentences. “This hook performed well in cold audiences but fatigued within 14 days. The offer-led version of the same creative held longer.” That’s enough.
This learning note is what transforms a file system into an institutional asset. New team members can read through the archive and understand what’s already been tested. Senior people stop having to answer the same questions. Briefing gets faster because the archive tells you what the market has already responded to.
If you’re also using AI to support content production, this same principle applies — the outputs of each experiment need to be captured in a form that trains your next brief. Our AI content creation process follows the same loop: test, record, brief forward.
The naming convention that holds up over time
Naming conventions are only useful if they’re consistent, and they’re only consistent if they’re simple. We’ve tried complex systems and they always collapse. The one that holds is a five-field string separated by underscores:
[BRAND]_[FORMAT]_[HOOK-TYPE]_[YYYYMM]_[VERSION]
For example: CHOCO_VID_QUESTION_202609_V2
- Brand identifier keeps assets sortable when a library covers multiple clients or sub-brands.
- Format and hook type are the two dimensions you most often search across.
- Date in YYYYMM format keeps the library chronologically sortable without getting precise enough to cause disputes (day-level dates create unnecessary variation).
- Version number with a clear winner convention: when V3 proves itself, rename it
V3-WINNER. When it’s retired, rename itV3-RETIRED. Two status suffixes, nothing else.
This convention can be applied in any storage system — Google Drive, Notion, Airtable, a purpose-built DAM. The tool matters less than the consistency.
When to retire creative (and what retiring actually means)
Most teams wait too long to retire creative. The signal is usually a declining CTR or rising frequency, and by the time those numbers are bad enough to notice, the asset has already dragged the account down for weeks.
We set retirement triggers at the asset level rather than relying on ad-set-level frequency signals:
- Video: hook retention below 25% on a second test after a creative refresh attempt
- Static: CTR dropped more than 40% from peak over a 21-day window
- Any format: more than three pauses and restarts for the same audience segment
Retiring doesn’t mean deleting. It means moving the asset to the Retired layer with a final performance note, tagging it RETIRED in the filename, and removing it from any active ad sets immediately. The reason to keep it in the library rather than delete it is the learning note — future teams need to know this format and hook combination was tested and where it peaked.
The briefing loop: using the library as your starting point
A creative library only pays for itself if it changes how you brief. The briefing loop we use starts with the archive, not a blank brief template.
- Pull the relevant archive entries for the audience type and funnel stage you’re briefing into. What has this audience segment already seen? What performed, what fatigued?
- Identify the untested combinations. If you’ve run question-hooks and offer-led hooks but never a demonstration format for this audience, that’s the brief direction.
- Write the brief as an iteration, not an origin. The brief references the existing assets explicitly: “This is a variation on CHOCO_VID_QUESTION_202603_V2-WINNER, testing a demonstration approach to the same hook problem.”
- Upload the new asset to Active as soon as it’s approved, before it goes live — not after the campaign ends.
This loop means the library grows in usefulness with every round of creative. The second quarter of running it is faster than the first. The fourth quarter is materially different from where you started.
Tools that work (and the ones that over-engineer it)
The tool question is secondary to the system question, but it’s worth addressing.
- Airtable is the most flexible option for teams who want the tagging system to be searchable and filterable without building a custom tool. The grid view handles asset records; gallery view is useful for visual review. Works well up to a few hundred assets.
- Notion works if you’re already living there. The database view with custom properties covers the five tag dimensions reasonably well. The weakness is visual browsing — Notion isn’t great for image-heavy libraries.
- Google Drive + a tagging spreadsheet is the lowest-friction starting point for teams without a dedicated ops person. It scales to a point and then becomes painful.
- Purpose-built DAMs (Bynder, Brandfolder, Canto) are worth considering once you’re managing creative at volume across multiple channels and clients. Before that point, they’re usually over-engineered for the use case.
We generally recommend starting with the simplest tool that covers the five tag dimensions and move up only when retrieval is consistently painful. The system design matters far more than the software.
Building the habit: who owns the library and when
Creative libraries succeed or fail on ownership. If “everyone is responsible,” nobody is. The maintenance load is light if the habit is right — about twenty minutes per campaign launch and thirty minutes per campaign close. That’s the full cost of a working system.
- At campaign brief: the performance marketer pulls the relevant archive entries before writing the brief. This takes ten minutes and changes the quality of the output.
- At asset approval: the designer or creative lead uploads to Active with full tags and naming. Five minutes per asset.
- At campaign close: the performance marketer writes the learning notes, moves assets to the appropriate layer, and updates retirement status. Fifteen to twenty minutes per campaign.
In client work we’ve found that agencies which assign library maintenance to a single accountable person — even if it rotates quarterly — ship creative faster and repeat fewer experiments than teams where it’s treated as a shared responsibility with no owner.
If you’re building a paid media system and want a second opinion on how your current creative workflow is structured, get in touch — we’re usually happy to look at what you have and say where the leverage is.