Cross-Client Ad Creative Analysis: How Agencies Tag, Track and Scale What Works in 2026

You run 10 med spa accounts on Meta. Each runs 20 ad variants a month. That is 200 creatives a month. The question that matters is which hook plus body plus CTA combination is universally working across the niche, versus which one is working for just one lucky client. Meta Ads Manager will not tell you. Sheets break by the sixth week. This article walks through the exact 5-field tagging system we use internally, the two pivot tables that drive 90% of our weekly media-buying decisions, and the 3-tool stack (Foreplay.co plus Inflowave plus the ad platform APIs) that makes it run without a data engineer or a $15k a month BI consultant.

If you are running paid social at agency scale, this is the framework we wish we had when we hit client number eight and the chaos started.

Why per-account dashboards fail at scale

With one to three client accounts you can spot-check Meta Ads Manager and remember which creatives are working. At ten plus accounts that approach silently kills your agency. You stop seeing patterns and start treating every campaign as an independent puzzle. The data is there, just not in a shape that lets you compare across clients.

The two failure modes we see most often, repeated across agencies that have come to us for a creative audit:

The first failure mode is agencies who never tag creatives at the component level. You can compare ad A to ad B, but you cannot compare hook A to hook B because the hook is embedded inside the ad name. Without component-level data you can never answer "which hook is universally winning" or "which CTA is universally losing". You can only answer "which ad is winning" which is useless at scale.

The second failure mode is agencies who tag with free-text names like "med-spa-promo-Q2-v3-final-FINAL.mp4". The data is technically tagged but it is unjoinable because every team member uses slightly different spellings, formats, and abbreviations. Spreadsheets treat "PAS-hook-1" and "PAS_hook_1" as different rows. By the time you have 200 creatives you have 150 unique tag strings.

Both modes converge on the same outcome: the analysis collapses around client eight, the team starts running on vibes instead of data, and your scaling stalls.

The fix is mechanical, not creative. Codify your creative components into structured IDs before you launch the ad. Aggregate performance at the component level, not the ad level. Done right, this takes 30 days to roll out and pays back forever.

The 5-field tagging system

Every creative gets five fields stamped onto it. We store the tags in Foreplay.co (each saved swipe file becomes a Foreplay label) and mirror the same tags into the campaign UTM via utm_content. The tag travels with each click through to lead capture, qualification, booking, show, and sale.

1. hook_id, the codified hook style

We maintain about 30 hook IDs total. Examples:

Free-text names are banned. If someone wants a new hook style, they request a new ID and it gets added to the cheat sheet after the creative director signs off. New IDs get added maybe twice a quarter. The vocabulary stabilises fast.

2. body_id, the body structure

PAS (problem agitate solution), AIDA (attention interest desire action), BAB (before after bridge), 4U (urgent, unique, useful, ultra-specific), STORY. Each one gets a length tier: 1 (short, under 90 words spoken), 2 (medium, 90 to 180 words), 3 (long, 180 plus). So PAS-1 is a short pain-agitate-solve body. STORY-3 is a long-form story. About 15 body IDs total once you do the matrix.

3. cta_id, the codified call to action

About 15 CTA IDs: BOOK-CALL, DM-WORD, GET-GUIDE, SHOP-NOW, JOIN-WAITLIST, FREE-CONSULT, BOOK-DEMO, TRY-FREE, GET-PRICE, CLAIM-OFFER, JOIN-COMMUNITY, LEARN-MORE, WATCH-FREE-TRAINING, START-FREE-TRIAL, GET-AUDIT. We keep the list tight because too many CTAs makes cross-creative comparison noisy. If you have 40 unique CTAs you cannot pivot on them, you can only group them by hand.

4. vibe_id, the visual and tonal vibe

LUXURY, RAW-UGC, ANIMATED, BTS (behind the scenes), COMPARISON, TESTIMONIAL, EDUCATIONAL, ENTERTAINMENT, MEME, CINEMATIC. About 10 vibe IDs. Quick to spot in thumbnails, which matters when you are scanning 200 saved creatives in Foreplay. The vibe tag is what lets you say "TRANSFORM-6 + STORY-3 works, but only in RAW-UGC, not in LUXURY". Without the vibe field that insight is invisible.

5. client_niche, the niche bucket for cross-client rollups

MED-SPA, FITNESS, COACHING, ECOM-DTC, B2B-SAAS, REAL-ESTATE, FINANCIAL-SERVICES, WELLNESS, BEAUTY, HOSPITALITY. Note that we do not use individual client names here. The join key for cross-client analysis is the niche, not the brand. Individual client names break the analysis because you can never aggregate across them.

The UTM-encoded full tag looks like this: utm_content=PAIN1-PAS2-BOOKCALL-RAWUGC-MEDSPA. Five tags, five hyphens between them, one underscore replaces any internal hyphens in IDs. We chose this format because every analytics tool can parse it with a split on hyphens, and the URL stays under 100 characters which Meta does not truncate.

How we use Foreplay.co specifically

We have been a Foreplay customer for two years. Most agencies use it for ad inspiration only, scrolling competitors and saving thumbnails. The real value is using it as your creative database. Here is how that works in practice:

Saved swipe files become your creative library. Every creative your agency ships gets saved to a Foreplay swipe file, with the 5 tags applied as Foreplay's custom labels. The team can filter by hook_id, by client_niche, by vibe, and see a wall of thumbnails matching any cross-section. Search by "TRANSFORM-6 RAW-UGC MED-SPA" and get every transform-hook UGC ad you have run in the med spa niche. That is your reference library when briefing the next video.

Foreplay Spyder watches your competitors automatically. You add competitor brands to Spyder and it pulls in their Meta ads daily. Each one comes pre-tagged with what Foreplay's AI can infer (rough format, rough hook style), and your team adds the 5-field tags as part of the morning ad-review ritual. This is how cross-agency creative intelligence stops being a manual scrape job.

Boards group creatives by client or campaign. Each client gets their own Foreplay board where saved competitor ads, internal winning ads, and inspiration sit together. New creative briefs reference the board ("brief is based on the third row of the med-spa-q2 board") instead of vague aesthetic notes.

The Foreplay-Inflowave bridge is what unlocks attribution. Foreplay holds the creative side, Inflowave holds the revenue side. The bridge is the utm_content tag. When you save a winning creative in Foreplay, you also stamp the 5-tag string onto the ad URL. The tag follows every click through to Inflowave's lead pipeline, qualification, booking, and sale. Now you can ask Inflowave "what is the CPS for every creative tagged TRANSFORM-6 across all med-spa clients" and get an answer in one query.

Foreplay competitors worth knowing about, in order of how much agencies actually use them: ManyHash (cheaper but less polished UI), SocialPeta (enterprise-priced, broader platform coverage), Atria (newer, AI-first), and BigSpy (cheaper but data quality is mid). We picked Foreplay because the tagging system and team boards are the most agency-friendly, and the integrations with TikTok and Meta API are the most reliable.

Foreplay pricing as of mid-2026 starts around $99 a month for the Creator tier and scales to $599 plus a month for the Agency tier with unlimited workspaces. Worth it at five plus clients.

The two pivot tables that drive 90% of decisions

Once tags are on every creative, there are exactly two pivots that drive most weekly media-buying decisions. We compute both weekly per niche and review them Monday morning.

Pivot 1, the component-level performance

Group every creative across all clients in a niche by a single component (start with hook_id). Aggregate cost-per-qualified-lead (CPQL) and cost-per-sale (CPS). The pivot tells you which hooks are universally winning across the niche, versus which ones are only working in one or two accounts.

hook_id n_creatives CPQL CPS qualified%
PAIN-1 18 $24 $310 62%
TRANSFORM-6 14 $19 $245 71%
CURIOSITY-2 22 $48 $620 38%
SOCIAL-PROOF-4 11 $31 $385 55%
CONTRARIAN-3 8 $22 $285 64%
AUTHORITY-1 12 $35 $410 52%

Read this pivot every Monday. Kill the money pit (CURIOSITY-2 in this example), scale the universal winner (TRANSFORM-6). The same logic applies if you pivot by body_id, cta_id, or vibe_id. Each reveals a different layer of the creative.

Watch out for sample-size traps. A hook with only three creatives behind it can look like a winner due to noise. We do not move budget based on any pivot row with fewer than seven creatives behind it. The lower bound matters.

Pivot 2, the combo-level performance

Group by hook_id plus body_id plus cta_id. This surfaces winning combinations, not just winning components. Components do not combine linearly. A great hook paired with the wrong body can underperform an average hook in a proven body.

combo CPQL CPS qualified%
TRANSFORM-6 + STORY-3 + BOOK-CALL $14 $180 78%
TRANSFORM-6 + PAS-1 + DM-CONSULT $22 $290 65%
PAIN-1 + PAS-1 + BOOK-CALL $19 $260 68%
PAIN-1 + STORY-3 + BOOK-CALL $42 $580 34%
SOCIAL-PROOF-4 + AIDA-2 + BOOK-CALL $25 $310 60%
AUTHORITY-1 + STORY-3 + GET-AUDIT $28 $340 58%

The combo pivot is the single most underrated piece of media-buying analysis. Most teams never get this far because they did not codify the components in the first place. The pivot is also where you find your scaling combos: the rows with the lowest CPS and highest qualified percentage are where you put incremental budget next week.

Pivot 3, the bonus pivot for advanced teams

If you want to push further, add a fourth dimension: time-since-launch. Group by combo plus week-since-launch (week 1, week 2, week 3, week 4 plus). This surfaces creative-fatigue patterns. A combo that wins in week 1 and falls off in week 3 needs angle refreshes more often than a combo that holds for four weeks.

We do not run this pivot every week, only at end-of-month for the post-mortem. The insight does not change fast enough to warrant weekly review.

The 3-tool stack we use

1. Foreplay.co for creative library and tagging

Every winning creative across the agency lives in a Foreplay swipe file with the 5 tags applied as Foreplay labels. The team can filter by hook_id, by client_niche, by vibe, and see a wall of thumbnails matching any cross-section. Foreplay also pulls competitor ads (Spyder mode) so the same library doubles as our inspiration source. Pricing is reasonable at agency scale ($300 to $600 a month depending on tier), which makes it the cheapest creative-intel investment a paid-social team can make.

2. Inflowave for lead pipeline and attribution

Captures the UTM-tagged lead, qualifies it via the AI Setter agent, and tracks booking, show, and sale through the pipeline. The utm_content tag travels with every lead row. Sub-accounts per client mean cross-client rollups are a single query, not a per-client export plus a merge step. The CRM is built for Instagram-first agencies so DM-driven leads land in the same pipeline as ad-driven leads. Pricing is $89 a month for 22 sub-accounts on the Agency plan.

3. Meta and Google Ads APIs for spend source only

We pull spend and impressions per ad set via the Marketing API (Meta) and Google Ads API. We do not trust the platforms for conversion reporting since iOS14 broke that pipeline permanently. Conversion data comes from Stripe webhooks routed through Inflowave's pipeline, never from Meta's reporting.

Most teams skip this rule and end up trusting Meta's "purchases" column, then wonder why their finance team's numbers do not match their dashboard's numbers. The two numbers will never match. Trust your money flow (Stripe), not the platform's attribution.

A 30-day rollout plan

The system is mechanical but the rollout requires discipline. Here is the four-week plan that has worked for us and for agencies we have coached:

  1. Week 1: Lock the tag vocabulary. About 30 hook IDs, 15 body IDs, 15 CTA IDs, 10 vibe IDs, 10 niche IDs. Print it as a one-page cheat sheet. Anyone who launches a creative without these tags fails the QA checklist. Resist the urge to make the vocabulary perfect. Ship a v1 and refine over the next quarter.

  2. Week 2: Backfill the last 90 days of creatives in Foreplay with the new tags. This is manual and painful. You only do it once. Budget six to ten hours per junior media buyer to backfill a 200-creative library. Use AI suggestion in Foreplay to speed this up: it pre-fills the hook and vibe based on the creative content, and the human just confirms or overrides.

  3. Week 3: Wire utm_content into your ad-URL templates per client. Most agencies skip this step. It is the difference between attribution that works and attribution that lies. Update the URL builder in your Inflowave or GHL setup so the utm_content auto-populates from the creative's 5 tags. The team should never have to type the tag string into a URL manually.

  4. Week 4: Build the two pivot tables in your CRM reporting view. Component-level plus combo-level. Run them weekly per niche. Make scaling and kill decisions on Monday morning. Add a Slack reminder so the review actually happens. Without the calendar discipline the dashboard becomes a graveyard.

After week 4, the system runs itself. You will spend more time interpreting the data than gathering it, which is the right ratio.

Common objections (and what we tell people)

"This is too much process, we move fast."

You will move slower in week 1. By week 4 you will launch 2 to 3 times faster because you are replicating proven combos rather than guessing. The compounding effect kicks in around month 2 when the team starts referring to the cheat sheet automatically and the briefs to your video editor become tactically precise.

"Sheets work fine for us."

Sheets work at 1 to 3 clients. At 10 plus clients with 20 creatives a month each, you spend more time fixing sheet formulas than analysing data. The tagging system stays in Foreplay; the pivots run in your CRM where lead data already lives. If you really must use sheets, export from Inflowave weekly to a Google Sheet via the API. Do not try to build the tagging system in a sheet itself.

"What if clients ban us from sharing data across accounts?"

You are not sharing client revenue with other clients. You are comparing your own internal creative-performance patterns. The tags are yours, not theirs. If client contracts explicitly prohibit cross-client analytics (rare in our experience, only seen with regulated finance accounts), strip the data to component-level aggregates only.

"Can AI just do this for me?"

AI can suggest tags from creative content. We use it to pre-fill the 5 fields. AI cannot make the pivot decisions for you because those require knowing your clients' offer, niche dynamics, and pricing context. AI shortcuts the tagging cost by about 80%. It does not replace the framework.

"What about TikTok ads, do these tags work there too?"

Yes. The same 5 tags work for TikTok creatives, the only difference is vibe_id tends to skew more heavily toward RAW-UGC and ENTERTAINMENT on TikTok versus LUXURY and TESTIMONIAL on Meta. Track both platforms in the same Foreplay library and the cross-platform comparison surfaces interesting patterns (some hooks port well, some die in translation).

"We outsource creative production, can our editors handle this?"

Yes, with one prep step. Add the 5 tag fields to your creative brief template. The editor does not need to know what the tags mean; they just fill them in based on the brief. Internal team validates on QA before launch.

What this unlocks beyond the immediate metric

Once the tagging system is running, the second-order benefits start to show up:

Creative briefs become tactically specific. Instead of "give me three Reels for med spa client X in the luxury vibe", the brief becomes "give me three TRANSFORM-6 hooks in STORY-3 body, BOOK-CALL CTA, LUXURY vibe, for MED-SPA niche". The editor knows exactly what to make. Iteration cycles drop.

Onboarding new clients in a known niche becomes faster. You do not start from scratch on creative testing. You start with the proven combos for that niche and adapt the specific offer. Time-to-first-result drops from 6 weeks to 2.

The creative library itself becomes a moat. A year of tagged historical data is hard for a competing agency to replicate. Even if they hire your best media buyer, they cannot take the library. This is one of the more underrated competitive advantages a paid-social agency can build.

Pitching becomes easier. When prospects ask "what is your process", you have a concrete answer with a screenshot of the Foreplay library, a screenshot of the pivot dashboard, and a one-page cheat sheet. Other agencies cannot show this because they do not have it.

Closing thought

The tagging discipline is the foundation. Everything else, better creative briefs, faster client onboarding, defensible IP, flows from it. Most agencies will never do this because the upfront cost is real and the payoff is delayed. The ones that do it become the agencies that scale past 20 clients without the operational chaos.

Want to run this stack? Inflowave handles the lead pipeline, attribution, qualification, and revenue side. Pair with Foreplay for the creative side. Start a free trial of Inflowave.