# How to Analyze LinkedIn Ads with Claude Code: Find Patterns in Your Top-Performing Ad Creatives

> Here’s the fastest way to stop guessing what a “good LinkedIn ad” means: analyze LinkedIn Ads with Claude Code to find patterns in the top-performing single image ads (by CTRs).

Author: Emilia Korczynska
Published: 2025-12-28
Updated: 2025-12-28
Categories: For LinkedIn Ads
Source: https://zenabm.com/blog/how-to-analyze-linkedin-ads-with-claude-code

---

![How to Analyze LinkedIn Ads with Claude Code: Find Patterns in Your Top-Performing Ad Creatives cover](https://cdn.zenabm.com/media/How-to-Analyze-LinkedIn-Ads-with-Claude-Code-Find-Patterns-in-Your-Top-Performing-Ad-Creatives-ZenABM.png)

Here’s the fastest way to stop guessing what a “**good LinkedIn ad**” means: [analyze LinkedIn Ads with](/ai) Claude Code to find patterns in the top-performing single image ads (by CTRs). I did it because I wanted to know \*exactly\* why some LinkedIn ads I’ve been running have performed so well in terms of driving clicks to the landing pages, split by CTR levels (and a proxy for “engagement”). Problem was…I had  2,828 image ads 😅 (mixed with TLAs, to boot) There was no way I could analyze them manually. Just opening each of the ads would have taken me 3 hours…

## **So here’s what I did to analyze my LinkedIn ad performance with Claude Code (a TLDR summary  – for non-techies!)**

1. Export your LinkedIn Ads performance report e.g. for this year as CSV, filtering for “image ads” only.

2. Upload the file. Ask it to find all the ads which don’t have any value in the “Creative Name”/”DSC Name” columns – these are your TLAs. Split them out.

3. The export file doesn’t have the ad URLs. For Claude to analyze the ads, you’ll need to feed it jpg files. I figured I will need to download them from the [Linkedin ads](/blog/how-do-linkedin-ads-work) library, but again – no dice I’m manually downloading 2000+ images. I tried GPT agent mode, it did the job for 17 images, and then kept failing (first time I run crying…) My husband advised me to ask Claude to write a Python script for downloading the images from LinkedIn Ads library. Since each ad is basically on “https://www.linkedin[.]com/ad-library/detail/” + AD id, I asked it to find the “Ad ID” column in the export, and add it to the ads library URL as a separate column.

4. I asked Claude Code to write the script to export images from a URL. It gave me instructions on how to deploy it, I freaked out, run to my husband again, who simply told me “just ask it to deploy it”.

5. I then asked it to create folders for the ads with certain CTR brackets (above the median for my whole data set, which I already knew from a gpt project.)

6. I pasted the first batch of ads URLs…and…initially Claude downloaded the advertisers’ logos instead…🫠 I inspected the ad images, and asked it to only include the image with “ad\_preview” class. It successfully exported all the ads.

7. I repeated this for all CTR brackets, and then asked it to analyze the images with this prompt: “Analyse the image ads from the “extremely\_high\_above+median” folder. Analyze them visually to give me points in [common & % of top performing](/blog/demandbase-vs-common-room) unique ads containing the common points, e.g.: – meme – photo of a person – screenshot of an interface – a specific offer – a specific CTA – testimonial/quote – anything else.

Sounds interesting? 😉 Let’s dig into the proper step-by-step instructions!

Also – never heard of ZenABM? It de-anonymizes your LinkedIn ads engagements on company level, synchs the engagements with your CRM, combines the singals from your ads with your CRM data to do [account scoring](/use-cases/account-scoring) & give you company-level intent signals, and helps you draw conclusions with AI:

## **Qualitative analysis of LinkedIn ads** using **Claude Code – step by step**

Want to get a report linke this? 😉 Here’s how to do it:

![Table of LinkedIn Ads CTR by visual element, showing specific offers reach 65% in the top CTR tier](https://cdn.zenabm.com/media/Key-findings-from-LinkedIn-Ads-Claude-Code-analysis-ZenABM.png)

This step-by-step workflow shows you how to run a **qualitative analysis of [LinkedIn ads](/blog/linkedin-document-ads-guide-with-examples)** using **Claude Code –** by downloading your ad creatives from the LinkedIn Ad Library, organizing them by CTR performance tiers, and generating an insight report that tells you exactly what your top performers do differently.

If you’re doing [ABM](/), this is especially powerful because creative is the lever you pull most often (and the one you usually “vibe” your way through). This process gives you a repeatable, semi-automated [LinkedIn ad creative audit you can run](/blog/what-is-zenabm) quarterly.

**What’s next:** we’re bringing this exact workflow into [ZenABM soon—so instead of exporting CSVs and running scripts, you’ll be able to do **qualitative + quantitative creative analysis inside ZenABM** in a couple clicks](/faq/see-companies-clicked-on-linkedin-ads).

And yes: [**Zena AI**](/ai) (ZenABM’s AI analyst) will be able to analyze your LinkedIn ads **both quantitatively** (CTR, spend, CPC, CPM, conversion metrics, pipeline influence) and **qualitatively** (visual patterns, CTA treatments, offer types, layouts, readability, proof elements).

![Zena AI chat in ZenABM listing top 10 engaged companies by ad spend with their ABM stage](https://cdn.zenabm.com/media/Top-engaged-companies-zena-ai-zenabm-1.png)

Until that’s fully productized, here’s the current best-practice way to do it with Claude Code.

## Summary – all you need to know about qualitative analysis of LinkedIn ads in a nutshell

- **Export [LinkedIn ad performance](/linkedin-ad-campaign-insights) data** (CTR + generate LinkedIn Ad Library URLs for Claude Code to access & download the image files; I will explain how in the next few paragraphs).
- **Bucket ads into CTR tiers** so you can compare winners vs losers (not “everything at once”).
- **Use Claude Code to download ad creatives** from Ad Library URLs (important: “ad images, not logos”).
- [**Run visual pattern analysis** on your top](/blog/best-abm-marketing-tools) performers (layout, CTA style, offer clarity, imagery type, text density).
- **Compare tiers** and turn differences into a practical “winner ruleset” for your next creative sprint.

![VS Code Claude Code extension analyzing LinkedIn ad creatives, top-performing combinations highlighted](https://cdn.zenabm.com/media/Qualitative-Analysis-of-LinkedIn-Ads-using-Claude-Code-2.0.-Extension-in-VS-code-ZenABM-scaled.png)

## Why qualitative analysis matters for LinkedIn ads (especially ABM)

Most “creative analysis” meetings end with: “I think people ads work” or “maybe we need brighter colors.” 😅

A proper **qualitative LinkedIn ads analysis** gives you:

- **Repeatable creative patterns** you can scale (not one-off lucky ads).
- **Clear hypotheses** for A/B tests (CTA button treatment, offer specificity, proof placement).
- **Faster iteration** because you’re building from winner templates, not blank canvases.

**Disclaimer:**  I know, I know – CTR is not the finish line for [LinkedIn ABM ads](/blog/abm-campaign-template). It’s a useful proxy. The real question is: “Did this creative move target accounts forward?”

Btw. [ZenABM helps you connect creatives to account](/use-cases/account-scoring) engagement and pipeline influence (aka: the stuff your CFO cares about).

If you want to skip the manual work soon: this qualitative audit flow is being built into ZenABM, and [**Zena AI**](/ai) will be the layer that summarizes both your **performance metrics** and your **creative patterns** into one recommendation report.

## Step 1: Export your LinkedIn ad data from Campaign Manager

In [LinkedIn Campaign Manager](/use-cases/linkedin-campaign-management-optimization), export ad performance to CSV/Excel. It will export impressions, clicks, and spend – then you can layer in cost-efficiency (e.g., CTR vs CPC vs CPM).

![Export linkedin ads performance report from Campaign Manager](https://cdn.zenabm.com/media/Export-linkedin-ads-performance-report-from-Campaign-Manager-ZenABM-scaled.png)

The crux of the issue is that LinkedIn’s Campaign Manager “Performance Report” export doesn’t give you the ad image file links – you can find them in the LinkedIn Ads Library.  But it *does* give you the **Ad ID**, and every public Ad Library page follows the same pattern: **`https://www.linkedin.com/ad-library/detail/` + Ad ID**.

So once you’ve filtered your export to image ads and split out TLAs (the rows with no “Creative Name” / “DSC Name”), you can create a new column like **“LinkedIn [Ad Library](/faq/see-companies-that-saw-your-linkedin-ads) URL”** and populate it by concatenating that base URL with the value from the **Ad ID** column for each row. Example: if **Ad ID = 280756436**, your URL becomes **`https://www.linkedin.com/ad-library/detail/280756436`**. That one simple column turns a dead CSV into an automation-friendly input: you can bucket URLs by CTR tier, paste each bucket into Claude Code, and have it download creatives at scale (instead of you manually saving 2,000 images and losing the will to live).

## Step 2: Organize Ad Library URLs into CTR performance brackets

This is where you avoid bad conclusions. You need distinct brackets so you’re not comparing “slightly above average” to “slightly below average” and calling it insight.

Example CTR brackets (adjust to your average/median CTR – I took mine from an earlier analysis):

- **Extremely High:** ≥ 2.00% CTR
- **Very High:** 1.10% – 2.00% CTR
- **High:** 0.81% – 1.00% CTR
- **Mid:** 0.55% – 0.80% CTR
- **Low:** 0.42% – 0.55% CTR

Create one text file per bracket (one URL per line). Use descriptive filenames:

- `linkedin_ad_urls_extremely_high.txt`
- `linkedin_ad_urls_very_high.txt`
- `linkedin_ad_urls_low.txt`

**Pro tip:** Don’t mix formats. Run separate audits for Single Image vs Thought Leader Ads (TLAs) vs Document Ads, etc. Otherwise your “patterns” will just be “document ads contain documents.”

## Step 3: Use Claude Code to download ad images from LinkedIn Ad Library URLs

This is the “save my eyeballs” step.

For each CTR bracket, give Claude Code:

- the URL list file
- the destination folder name (include CTR range)
- a strict instruction: **download ad images only (not logos)**

**Example prompt:**

```plaintext
Download the ad images (only, no logos) from the URLs in
'linkedin_ad_urls_extremely_high.txt' and put them in the
'extremely_high_above_median - 2.00%+' folder.
```

![Claude Code terminal running a script to download 192 LinkedIn ad images from the ads library](https://cdn.zenabm.com/media/Claude-code-export-images-from-LinkedIn-ads-library-ZenABM--scaled.png)

Repeat for each ad CTR bracket.

### Troubleshooting common download issues

- **Some images failed to download** → normal (ads removed, restricted, or unavailable).
- **It downloaded logos instead of creatives** → your prompt wasn’t strict enough. Repeat: “ad images only, not logos.”

## Step 4: Run a qualitative visual analysis on your top-performing LinkedIn ads

Now ask Claude Code to analyze the “Extremely High” tier first. You’re looking for repeatable visual elements – things you can deliberately reuse.

**Example prompt:**

“Analyse the image ads from the “extremely\_high\_above+median – 2.00%+” folder.  Analyze them visually to  give me points in common and % of top performing unique ads that contain these common points, e.g.:
– meme
– photo of a person
– screenshot of an interface
– a specific offer
– a specific CTA
– testimonial / quote
– anything else.”

What Claude should analyze (the useful stuff):

- **Visual hierarchy** (what your eyes land on first)
- **People vs UI vs graphics** (and how they’re framed)
- **CTA treatment** (button vs text-only, placement, contrast)
- **Text density** and readability on mobile
- **Offer specificity** (template/report/calculator > “Learn more”)
- **Proof elements** (stats, logos, quotes, before/after)

![Claude Code in VS Code moving 35 downloaded LinkedIn ad images into a folder for pattern analysis](https://cdn.zenabm.com/media/Claude-code-image-extracting-script-ZenABM.png)

**This is the kind of**

## Step 5: Compare winning LinkedIn Ads vs underperforming ads to find the real differentiators

It’s not enough to analyze the winners – the biggest “aha” moments come from comparing the pattern in the highest CTR LinkedIn ads to the “loosers” (low CTR ads). This is why I exported images for both.

**Example prompt you can use:**

```plaintext
Compare the visual patterns between 'extremely_high_above_median' and
'low_above_median' folders. What do top performers do differently?
```

Look for:

- elements present in high-CTR LinkedIn ads but absent in low-CTR ads
- design choices that correlate with performance (CTA clarity, proof placement, offer specificity)
- overused “flop patterns” (generic stock imagery + vague promise + no CTA)
- outliers (ads that break the “rules” and still win—those are gold)

## Step 6: Generate an insights report you can actually use

Now the best part – you can ask Claude Code to turn your LinkedIn ads analysis analysis into a simple, actionable “winner ruleset.” Ask Claude to summarize patterns with percentages and recommendations. Also ask it to be concise or give it a work limit – it sometimes gives you a whole bible (I’ve learned the hard way)

**Example prompt:**

```plaintext
Create a summary report of visual patterns that correlate with high CTR
in my LinkedIn ads. Include specific percentages and actionable recommendations.
```

Your output should include:

- **Top 10 winner patterns** (with frequency, e.g., “47% have a button-style CTA”)
- **Top 10 flop patterns** (what to stop doing)
- **3–5 test ideas** for the next creative sprint
- **A one-page creative checklist** your team can follow without a meeting

**Coming soon in ZenABM:** instead of generating this report manually, you’ll be able to run this analysis inside ZenABM—and [**Zena AI**](/ai) will generate a combined **quant + qual** summary of LinkedIn ad performance (metrics + creative patterns) that you can use as your creative brief for the next sprint.

**Want to close the loop on** [pipeline today? Use ZenABM](/blog/rollworks-vs-zenabm) to connect which creatives drove engagement from your target accounts and influenced opportunities. [Start a free trial](https://app.zenabm.com/signup) or [book a demo](/book-a-demo).

## Sample Claude Code LinkedIn Ads Analysis I got

This is the summary of my single image LinkedIn ads analysis done by Claude Code – there was a \*long\* version too, but it was too long + included identifiable information – so I won’t paste it here. But you must admit this LinkedIn ads analysis done by Claude is \*impressive\*:

### LinkedIn Single Image Ads – Key Findings Summary

### 📊 Comparison Table

| **Visual Element** | **Extremely High (≥2.00%)** | **Very High (1.10-2.00%)** | **High (0.81-1.00%)** | **Mid (0.55-0.80%)** | **Low (0.42-0.55%)** | **LOW (<median)** |
| **Photo of Real Person(s)** | **47%** | **35%** | **30%** | **20%** | **25%** | **30%** |
| **Meme/Humorous Image** | **35%** | **20%** | **23%** | **10%** | **5%** | **2%** |
| **Screenshot of Software/Interface** | **35%** | **40%** | **35%** | **50%** | **45%** | **55%** |
| **Chart/Diagram/Data Viz** | **41%** | **45%** | **40%** | **45%** | **35%** | **40%** |
| **Specific Offer (FREE, discount, limited time)** | **65%** | **40%** | **30%** | **20%** | **15%** | **10%** |
| **Strong CTA Button** | **59%** | **45%** | **35%** | **30%** | **25%** | **20%** |
| **Testimonial/Quote** | **29%** | **25%** | **20%** | **15%** | **18%** | **20%** |
| **Stock Photography** | **12%** | **15%** | **18%** | **25%** | **30%** | **35%** |
| **Minimalist Design** | **18%** | **25%** | **30%** | **35%** | **40%** | **45%** |
| **Text-Heavy** | **12%** | **15%** | **20%** | **30%** | **35%** | **40%** |
| **Logo-Centric** | **6%** | **8%** | **10%** | **15%** | **20%** | **25%** |

## 🎯 Top Patterns That Drive HIGH CTR

### 1. Specific Offers (65% → 10% dramatic drop)

![Sample LinkedIn ad from Acme Inc. with a bold headline, three-step offer and smiling spokesperson photo](https://cdn.zenabm.com/media/Perfect-LinkedIn-Ad-based-on-Claude-Code-top-performing-image-ads-recommendations-ZenABM.png)

- [Top performers feature](/blog/monitor-results-from-linkedin-ads) “FREE”, time-limited deals, concrete value props
- This is the #1 differentiator between high and low performers

### 2. Real People (47% in top tier)

- Authentic team members and customers (NOT stock photos)
- Shows emotion and personality
- Stock photography increases to 35% in low performers (inverse correlation)

### 3. Humor & Pattern Interruption (35% → 2% decline)

- Memes, unexpected visuals, provocative messaging
- Challenges status quo and breaks through ad blindness

### 4. Strong CTAs (59% → 20% decline)

- Prominent, contrasting buttons with action-oriented language
- Low performers bury CTAs or use weak “Learn More”

### 5. Strategic Diagrams (41% effective use)

- Process workflows and before/after comparisons
- NOT dense UI screenshots without context

## ❌ Anti-Patterns That KILL Linkedin Ads CTR

### 1. Logo-Centric Design (6% → 25% increase)

- Corporate branding over benefit messaging
- Large logo as hero image

### 2. Stock Photography (12% → 35% increase)

- Generic diverse teams smiling at laptops
- Creates distrust and ad blindness

### 3. Text-Heavy Layouts (12% → 40% increase)

- Dense paragraphs, small fonts, multiple competing messages

### 4. Generic Minimalism (18% → 45% increase)

- Too much white space without focal point
- No compelling reason to click

### 5. Screenshot Overload (35% → 55% increase)

- Dense UI without context or annotations
- Feature-heavy product screenshots

## 💡 Notable Case Study: Same Brands, Different Results

[ZenABM & XYZ appear in BOTH top](/blog/abm-campaign-examples) and bottom performers! High Performers:

- FREE offers with urgency
- Real team photos with names
- Process diagrams
- Strong CTAs

Low Performers:

- Generic screenshots
- No offers
- Text-focused
- Weak/missing CTAs

Lesson: Creative execution matters more than brand strength.

## 📈 Strategic Recommendations

### To Achieve high CTRs (well above the 0.42% median):

1. Lead with “FREE” or specific time-limited offers
2. Feature real humans (your team or customers with credentials)
3. Use pattern interruption (humor, unexpected visuals)
4. Make CTAs unmissable (high-contrast buttons, action copy)
5. Show workflows/processes, not just product UI

### Avoid:

1. Logo as hero image
2. Stock photography
3. Dense text without visual hierarchy
4. Generic “Learn More” CTAs
5. Screenshots without benefit context

## What you’ll typically discover in top-performing LinkedIn ad creatives in the Claude Code analysis

This is what I found about high performing [LinkedIn Ads](/blog/best-linkedin-ad-attribution-tools) based on 2800+ ads from 6 companies I analysed:

- ✅ **Clear CTA** (often button-style)
- ✅ **Specific offer** (template/playbook/report/calculator/webinar)
- ✅ **Strong hierarchy** (one main promise, not five)
- ✅ **Proof** (numbers, logos, quote, “how we did X”)
- ✅ **Clean layouts** with mobile-friendly text

And low performers tend to have:

- ❌ generic stock photography
- ❌ vague value props (“optimize”, “streamline”, “transform”)
- ❌ no obvious next step
- ❌ cluttered design that collapses on mobile

## Best practices for reliable results of your LinkedIn Ads Analysis

- **Use meaningful sample sizes:** aim for 15–20 ads per tier.
- **Keep brackets distinct:** no overlap, clear gaps.
- **Control for variables:** segment by format and audience when possible.
- **Run multiple passes:** winners-only → winners vs losers → outliers.

## FAQ: Qualitative analysis of LinkedIn ads with Claude Code

### How long does it take to analyze LinkedIn ad creatives with Claude Code?

Typically 30–60 minutes total: 15–20 minutes to export + bucket URLs, a few minutes to download creatives, and 10–20 minutes to generate and review the pattern report.

### Why do I need CTR performance brackets?

Because qualitative analysis only works when you compare like with like. Brackets help you isolate what winners consistently do differently versus underperformers.

### Claude downloaded logos instead of ad images -what now?

Be stricter in your prompt: “Download ad images only (not logos).” Also include the CTR bracket in the folder name so you can rerun cleanly.

### Will ZenABM support qualitative LinkedIn ad creative analysis?

Yes—this workflow will soon be available directly inside [ZenABM](/company-buyers-intent). And [**Zena AI**](/ai) will analyze LinkedIn ad performance using both **quantitative data** (CTR, spend, CPC, CPM, pipeline influence) and **qualitative data** (visual patterns, CTA styles, offer types, layouts).
