
Hey all, happy Friday,
On Saturday, we took James to Gun Hill Brewery in Industry City because my guitar teacher was playing in an Allman Brothers cover band. (They also played the Stones, the Beatles, and a few others.) This kid is genuinely obsessed with music. He was there bopping and dancing in front of the speakers like a tiny, uncoordinated concertgoer (don't worry, not for too long, no ear damage). We went with his cousins, and afterward we went to the next-door arcade that had a photo booth. James kept trying to select "Kiss Me, I'm Irish" (with a Guinness) as the photo template. His cousin wanted Spider-Man. Spider-Man won.
Quick New York weather update for those of you who care about the emotional state of 8 million people: Monday and Tuesday were gorgeous. Like, 65 and sunny. I biked to work. People were holding doors open for each other. Strangers were smiling. It was genuinely unsettling. You forget that this entire city is just seasonally depressed for half the year and then collectively snaps out of it the second the sun comes out. And then today it snowed and hailed, so we're all back to normal.
Also, Linus got scratched by a squirrel. He went after one in the park, and it fought back. So that's new. And Maddie informed me that apparently, some version of the plague is making a comeback on the West Coast, which is great. Love a good disease resurgence. Really rounding out the week.
Oh, and James got new sneakers because he's apparently moving around at daycare that much. His hair is also getting very long. He's developing what I can only describe as lacrosse flow, which, for the record, I fully support. I played lacrosse in high school and played on a club team in college. D3 club lacrosse. Let that breathe for a second.
Anywhooo.
The last two newsletters were about Nano Banana 2. The first one was "holy crap this thing can make real ads, here are 14 formats" [LINK: Nano Banana 2 Is HERE, and I Abandoned All Client Work to Test It]. The second one was "here's the full system to turn one winning ad into 15 with brand research and reference cards" [LINK: Turn 1 Winning Ad Into 15 With Nano Banana 2].
Both of those assume you already know which ads to make.
Which is a pretty big assumption. Because the honest answer for most brands is: you don't. You're making the same 3-4 formats on repeat because they worked six months ago, and you haven't stopped to ask whether your competitors figured out something you haven't.
This week is the missing piece. How to figure out exactly which ads you should be making next, and then go make them in Nano Banana 2.
Here's the short version. I built a prompting doc with three prompts that run in sequence inside a Claude Project:
Prompt 1: Classify. Upload your competitors' top ads from Meta Ad Library. Claude classifies every one across four dimensions: format, persona, angle, and emotion.
Prompt 2: Compare. Claude puts your brand's ads next to your competitors' ads and finds the gaps. What are they doing that you're not?
Prompt 3: NB2 Brief. Claude turns those gaps into production-ready ad briefs you can generate in Nano Banana 2.
The full prompting doc is here: [LINK TO PROMPTING DOC]
I'm going to walk through the entire workflow, using Jones Road Beauty and ILIA as examples. By the end, we'll have two finished ads, both driven entirely by the competitive gap analysis.
Let's get into it.
Setting Up Your Claude Project
This workflow runs inside a Claude Project. If you went through the last two newsletters [LINK: NB2 Issue 1] [LINK: NB2 Issue 2], you already have one set up with your brand research, reference cards, and format prompts. You're adding to it.
If you're starting fresh, go set up your project first: 1 Winning Ad → 15 Formats: Complete Prompt Library. That walks you through the brand research prompt, Brand Spec Card, Visual Style Card, everything. That's the foundation. This newsletter is the layer on top.
Two things to add:
First, upload the Format Classification Guide (Section 2 of the prompting doc [LINK]) into your Project Knowledge. This is an 18-format taxonomy with a decision tree that Claude uses to classify ads. It needs to live in the project so every conversation has access to it.
Second, start a new conversation in the project. Everything from here (classifying, comparing, generating briefs) happens in one conversation thread so Claude keeps the context across all brands.
The Data Source: Meta Ad Library
Yes. You heard that right.
Before we get to the prompts, we need ads to classify. And this is where most people go wrong.
There are a ton of ad intelligence platforms out there. Foreplay, Motion, Atria. They're good for building swipe files and organizing creative inspiration. I use some of them.
But for this workflow, I keep going back to Meta Ad Library directly. Here's why.
Those platforms aren't sorting ads by impressions. They can't. The API calls to pull impression-ranked data at scale would be prohibitively expensive. So what you're getting is a curated library of ads that look interesting, not ads that are actually performing. There's a meaningful difference between "this ad has a cool layout" and "this ad is spending more money than anything else this brand is running right now."
Meta Ad Library is free. It shows every active ad for every brand on Facebook and Instagram. And the ads are sorted by impressions. The ones at the top are spending the most money. Those are the ones we care about.
Here's how to pull them.
Step 1: Pull Your Competitors' Top Memes
Go to facebook.com/ads/library.
Quick terminology note: Meta calls static image ads "memes." I don't make the rules. It's under the media type filter.
Here's the exact flow:
Search for a competitor brand name
Filter: Country -> United States (or your market)
Filter: Media type -> Memes (these are the static ads)
Results default to sorted by impressions. Top of the list = most spend = most likely working.


Pro tip: You don't have to screenshot each ad individually. Use a Chrome extension called Imageye (imageye.net) to bulk-download ad images from the page. Set the size filter to "Medium" to skip profile pics and UI junk.
Sort by "Position in Page" so they stay in impression order. Select the first 15 and download.

15 is the magic number. It's enough to see strategic patterns, and it's the maximum Claude can process in a single upload. If you want to go deeper, do two rounds of 15.
Do this for your brand + 3-5 direct competitors. If you're not sure who your competitors are, ask Claude!
It knows a lot about your brand at this point.
And then upload the ads to Claude
Fwiw, this is one of the parts Skipper automates. It pulls every active static ad for a brand, sorts them by impressions, downloads full-resolution images, and automatically classifies them across all four dimensions. The manual version works. It just takes longer. If you'd rather skip the downloading and go straight to the analysis, Skipper is in beta: getskipper.ai

For the API people: there's a separate doc that walks through how to pull ads programmatically using SearchAPI, sorted by impressions, with the media_type=meme filter. Same approach we use internally.
Step 2: Classify Every Ad Across 4 Dimensions
Open your Claude Project. In the new conversation you started, upload a competitor's ad screenshots (all 15 at once).

Uploaded to Claude
And then paste Prompt 1: Classify from Section 3 of the prompting doc:
Here's what happens. Claude goes through each ad one by one. For every single ad, it describes what it sees first (the headline, the layout, the visual), walks the decision tree from the Format Classification Guide, and then classifies it across four dimensions:
The four dimensions:
Format (18 types): What kind of ad is this? Testimonial? UGC? Before & After? The structure of how the message is delivered.
Persona (43 archetypes): Who is this ad targeting? Not demographics. Archetypes. "Sleep-Deprived New Parent" vs. "Overworked Busy Professional" vs. "Skeptical Clean Label Shopper."
Angle (16 categories): What specific benefit is this ad promising? Health Benefit? Time Savings? Transformation? Plus a specific 2-4 word angle within that category.
Emotion (15 types): What is this ad trying to make the viewer feel? Trust? FOMO? Empowerment? Humor?
Each ad gets one line. You can scan the whole thing in 30 seconds and verify every classification matches what you see in the screenshot. That's the accountability layer.
I ran the same thing for ILIA. Then it was time to compare.
After classifying all ads individually, Claude gives you the aggregate breakdown

Step 3: Find the Gaps
With both brands classified in the same conversation, I pasted Prompt 2: Compare from Section 4 of the prompting doc: [LINK TO PROMPTING DOC]
Claude builds side-by-side distribution tables for every dimension, then finds three things:
Blind spots: Categories where competitors are investing 5%+ and you're at zero. These are the things you're completely ignoring that the market has decided matter.
Overindexing: Categories where more than 30% of your ads use the same classification but the competitor average is under 15%. You're over-relying on one approach and it's probably fatiguing your audience.
Opportunities: A ranked list of the top 10 things to test, with a suggested NB2 format for each one.
Here's what it looked like when I compared Jones Road against ILIA:

The distributions are interesting, but the opportunities table is where it gets real:

This is the part where it gets uncomfortable. Jones Road has zero Press-format ads despite featuring Bobbi Brown, one of the most press-covered founders in beauty history. Zero Statistics format. Zero humor. ILIA is running screenshots of NewBeauty articles as ads. ILIA leads with "91% said it doesn't feel like wearing makeup." ILIA has a sticky note ad with humor that made their top 15.
Jones Road is leaning hard on Headline (29%) and Relief (29%). Almost a third of their top ads are the same format and the same emotion.
Step 4: Turn Gaps Into NB2 Briefs
I pasted Prompt 3: NB2 Brief from Section 5 of the prompting doc:
The key insight (and this is the thing most people miss): the format is just the container. The persona, angle, and emotion determine what goes inside it. The competitive analysis doesn't just say "try a Press ad." It says "try a Press ad targeting a Skincare Obsessive with a Social Proof angle and a Trust emotion." That combination is what generates the headline, the copy, the visual direction.
Claude takes the top opportunities and turns each one into a production-ready brief. Here are two we actually generated:
Opportunity #1: Humor emotion (JR: 0% / ILIA: 8%)
Gaps filled:
Format: Negative Marketing (Jones Road: 0%)
Persona: Skincare Obsessive (Jones Road: 0%, ILIA: 17%)
Angle: Health Benefit (Jones Road: 0%, ILIA: 8%)
Emotion: Humor (Jones Road: 0%, ILIA: 8%)
The copy targets a Skincare Obsessive. So the review speaks to their ingredient obsession: "I finally read a clean ingredient list that actually delivered. Now I check every label against this, and nothing compares. I've thrown out three foundations. My medicine cabinet has never been this empty or this expensive."
Here's what Nano Banana 2 generated:

Ad 1
And here's the full NB2 prompt that produced it (so you can see the level of detail):
Use the attached images as brand reference for exact brand colors and typography style. Do NOT replicate the layouts or compositions shown.
Create a static ad for Jones Road Beauty's Miracle Balm. 1080x1920px (9:16 ratio).
One continuous image filling the entire 1080x1920 frame with no panels, boxes, borders, or overlays of any kind.
SCENE:
Dark charcoal (#1A1A1A) background filling the entire frame edge to edge. This is the one Jones Road ad that breaks the white/cream rule. The darkness is intentional.
Center-bottom of the safe zone: a single open Miracle Balm pot, white/silver twist-off lid resting beside it, balm texture visible and slightly broken like a finger has been dragged through it. Warm directional light from the upper left, creating a strong shadow on the right side. The product glows against the dark background. Shot on 85mm f/1.8, shallow depth of field. The pot is tactile and real, not floating.
TEXT positioned in the center area of the image, not in the top 250px or bottom 340px:
A white rounded-rectangle review card, centered above the product. Inside the card:
Top left: small gray circle (generic user icon)
Next to it: "Rachel M." in Ringside (Source Serif 4), dark text
Below the name: one filled gold star, four empty gray stars
Below the stars: small orange rounded badge reading "Verified Purchase" in white text
Review text in Ringside (Source Serif 4), bold, dark, generous line spacing:
"I finally read a clean ingredient list that actually delivered. Now I check every label against this and nothing compares. I've thrown out three foundations. My medicine cabinet has never been this empty or this expensive."
Review copy is written for a Skincare Obsessive. The "complaint" is about ingredient standards ruining their ability to use anything else. The humor is in the obsession, not the convenience.
Below the review card, in Geogrotesque Condensed Bold (Barlow Condensed 800), uppercase, white, centered, wide letter-spacing:
THE REVIEWS ARE IN.
Style: dark, dramatic, editorial. High contrast. The product glows warm against cold darkness. The fake one-star review is the scroll-stopper. The humor comes from the mismatch between the rating and the review content. No other decorative elements. Clean and confident.Opportunity #2: Press format (JR: 0% / ILIA: 13%)
Gaps filled:
Format: Press (Jones Road: 0%, ILIA: 13%)
Persona: Skincare Obsessive (Jones Road: 0%, ILIA: 17%)
Angle: Social Proof (Jones Road: 0%, ILIA: 17%)
Emotion: Trust (Jones Road: 7%, ILIA: 25%)
Different format, but the persona + angle + emotion generate a completely different headline: "THE ONLY CLEAN FOUNDATION EDITORS ACTUALLY WEAR." This targets a Skincare Obsessive who trusts editorial authority. The CTA changes too. Not "Take the Quiz" (that's for the confused shopper). "Shop Miracle Balm" (the editors already told you what to buy).
Here's what Nano Banana 2 generated:

Use the attached images as brand reference for exact brand colors and typography style. Do NOT replicate the layouts or compositions shown.
Create a static ad for Jones Road Beauty's Miracle Balm. 1080x1920px (9:16 ratio).
One continuous image filling the entire 1080x1920 frame with no panels, boxes, borders, or overlays of any kind.
SCENE:
Warm cream (#F5F0EB) background filling the entire frame edge to edge. Generous negative space everywhere. This should breathe.
Lower third of the safe zone: a single open Miracle Balm pot on a clean white marble surface, viewed from slightly above. White/silver twist-off lid beside it. Balm texture visible, warm peachy tone, slightly broken surface where a finger has dragged through. Soft diffused natural window light from the right, clean shadows. Shot on 85mm f/2.8, medium format sensor. The product is grounded on the surface, not floating. Open pots, visible balm texture, fingers in product (tactile).
TEXT positioned in the center area of the image, not in the top 250px or bottom 340px:
Top of the safe zone, in Base Mono (Space Mono), uppercase, small, wide letter-spacing, muted gray (#999):
AS FEATURED IN
Below, evenly spaced in a horizontal row: five grayscale publication logos. Use placeholder text in a restrained serif if logos aren't available:
VOGUE | ALLURE | FAST COMPANY | BUSINESS OF FASHION | WELL+GOOD
Below the logos, generous spacing, then the headline in Geogrotesque Condensed Bold (Barlow Condensed 800), uppercase, #1A1A1A, centered:
THE ONLY CLEAN FOUNDATION EDITORS ACTUALLY WEAR
This headline targets a Skincare Obsessive through Trust. "Clean" signals their ingredient standards. "Editors actually wear" is Social Proof from authority figures. "Only" creates a category of one. This person doesn't want to experiment. They want to be told by someone credible.
Below the headline, centered, in italic Ringside (Source Serif 4), warm gray text:
"Skin-loving ingredients that melt in to leave skin feeling smooth and comfortable."
— ALLURE
The pull quote uses actual Jones Road product language from the brand card. It speaks directly to the Skincare Obsessive's ingredient fixation while borrowing Allure's credibility.
CTA styled as black rectangle with white Base Mono (Space Mono) uppercase text: SHOP MIRACLE BALM
Style: soft, editorial, magazine-inspired. Full-page Vogue energy. Prestigious but warm, not cold or clinical. The white space is intentional. The press credibility does the selling. No cluttered layouts, no rounded shapes, no playful energy. Quiet confidence. Real skin texture, natural beauty. The background should disappear. Product and words are the only heroes.Two net new ad concepts. Different formats, different headlines, different CTAs, different visual directions. Every decision driven by the four-dimensional gap analysis, not vibes.
TLDR;
The full loop:
Meta Ad Library tells you what's working in your vertical.
Claude classifies and finds the gaps.
The gaps become NB2 briefs (format + persona + angle + emotion = headline + copy + visual direction).
Brand cards + NB2 turns briefs into actual ads.
One competitor insight -> one production-ready ad in your brand's visual system. That's the workflow.
I'm going to go figure out how to explain to James that the photo booth template with the Guinness on it is not, in fact, appropriate for a 16-month-old. He disagrees. He's very firm on this.
If you try this workflow, reply and tell me what gaps you found. I'm building a dataset of which formats work for which verticals, and your data would actually help.
Have a great weekend,
Will