- name:
- linkedin-ads-35-point-audit
- description:
- Use this skill when someone wants a LinkedIn Ads audit, efficiency scan, account health check, or 'what should we change', or uploads Campaign Manager exports, screenshots, CRM data, or ad creative. Runs a 35-point system inspection across six layers and adapts to the data provided: CSV exports get ~19 points, Campaign Manager screenshots ~27, CRM data ~31, creative review all 35.
LinkedIn ads 35-point audit
Assesses a LinkedIn Ads account through 6 diagnostic layers, each building on the last. Structural issues first, tactical opportunities second. It adapts to whatever data is available: a single CSV = ~19 checks, everything = all 35. Every run produces a health score, prioritized findings, and specific actions.
The 6 layers (fix upper layers before optimizing lower ones):
- Signal & Data Integrity (7 points) - what LinkedIn optimizes toward
- Account Architecture & Learning Design (6 points) - how the system compounds knowledge
- Audience & Buying Committee Coverage (7 points) - who you're reaching
- Creative & Message-to-Market Fit (6 points) - whether ads earn attention
- Delivery, Bidding & Spend Control (5 points) - how efficiently budget converts
- Full-Funnel & Revenue Alignment (4 points) - whether LinkedIn drives pipeline
Data tiers
- Tier 1: CSV exports (~19 of 35) - Campaign Performance, Audience Network Performance, Demographics, Conversion Performance reports.
- Tier 2: + Campaign Manager settings (~27) - Insight Tag status, conversion event config, targeting definitions, exclusion lists, change history.
- Tier 3: + CRM data (~31) - deals, pipeline stages, revenue attribution, SQL/MQL counts.
- Tier 4: + creative review (all 35) - ad creative screenshots, landing page URLs, UTM parameters.
Parsing LinkedIn exports
UTF-16 encoded, tab-separated, with metadata rows to skip:
with open(path, 'r', encoding='utf-16') as f:
lines = f.readlines()
idx = next(i for i, l in enumerate(lines) if 'Start Date' in l or 'Company Name' in l)
df = pd.read_csv(StringIO(''.join(lines[idx:])), sep='\t')
Campaign classification
- Funnel: TOF/cold/awareness = top. MOF/retarget/RT/30D/90D/180D = mid. BOF/conversion/pipeline = bottom.
- Right-rail (text/spotlight/follower): NEVER flag for low CTR - that's the format's methodology, it's bought for cheap frequency.
- Thought Leader ("TL"/"thought leader" in name): typically ~3x CTR and lower CPL vs standard single image.
The 35 checkpoints
Section I: Signal & Data Integrity (1-7)
- Insight Tag firing | Tier 2 - Installed and firing on key pages? Without data, flag "Not assessed."
- Event prioritization | Tier 1 partial / Tier 2 full - Is each campaign optimizing toward ONE primary conversion aligned with funnel stage? Flag if too many events active.
- Conversion event alignment | Tier 1 - Do events measure real pipeline actions (demos, calls, pricing views) not vanity? Fully assessable from CSV.
- Volume sufficiency | Tier 1 - 15-20+ conversions/month/campaign for stable optimization? Fully assessable.
- Attribution window config | Tier 2 - Windows match sales cycle (B2B = 90-180 days)?
- Offline/CRM signal integration | Tier 1 partial / Tier 3 full - Is CAPI active? Are offline conversions imported?
- Signal dilution | Tier 1 - Are low-intent events diluting the signal (roughly 10:1 vanity to high-intent)? Fully assessable.
Section II: Architecture & Learning (8-13)
- Objective alignment | Tier 1 - TOF=Brand Awareness/Engagement, MOF=Engagement/Web Visits, BOF=Lead Gen/Conversions.
- Funnel separation | Tier 1 - Distinct TOF/MOF/BOF tiers? 3+ stages = pass, 1 stage = fail. Assessable from naming.
- Budget isolation | Tier 1 - TOF 40-60%, MOF 20-40%, BOF 10-30%, each tier with its own budget.
- Naming conventions | Tier 1 - Names include funnel stage, objective, format, audience, size, date?
- Internal auction conflicts | Tier 1 partial / Tier 2 full - No two active campaigns bidding on the same audience segment.
- Learning phase stability | Tier 2 - Are frequent changes resetting learning? Stopping and starting campaigns hurts optimization.
Section III: Audience & Coverage (14-20)
- ICP clarity | Tier 1 partial / Tier 2 full - Targeting is specific; Audience Expansion is OFF (always).
- Seniority and role coverage | Tier 1 - Right seniority reached? Low-intent roles consuming impressions? Fully assessable from Demographics.
- Company size and industry precision | Tier 1 - Impressions concentrated in target sizes/industries? Fully assessable from Demographics.
- ABM list saturation feasibility | Tier 1 partial - List size supports budget without oversaturation? Excessive budget on a small list oversaturates.
- Warm audience construction | Tier 1 partial - Site visitors, video viewers, engagers, CRM lists built as retarget audiences? Check windows (30D/90D/180D).
- Lookalike usage | Tier 2 - Avoid LinkedIn lookalike expansion; it dilutes a tightly-defined B2B audience.
- Audience overlap risks | Tier 1 partial / Tier 2 full - Cold and warm not seeing the same messaging; higher-intent tiers protected.
Section IV: Creative & Message Fit (21-26)
- Message-market alignment | Tier 4 - TOF=education/pain, MOF=proof/cases, BOF=urgency/CTA. Without creative, flag "Not assessed."
- Format mix | Tier 1 partial - Multiple formats present? Thought Leader ads should exist. Single-format = risk.
- Proof vs claims | Tier 4 - Leading with proof (data, screenshots, results) not generic claims?
- Differentiation clarity | Tier 4 - Clear differentiation from category noise?
- CTA by audience temperature | Tier 4 - Cold = no conversion CTAs, warm = content, hot = demo/meeting.
- Creative fatigue | Tier 1 - Ads past format lifespan with declining CTR? Single Image ~4-5 weeks, Thought Leader ~12 weeks. Fully assessable with monthly CTR trends.
Section V: Delivery & Spend Control (27-31)
- Bid strategy alignment | Tier 1 - Cold = Max Delivery/CPM, warm = Engagement/CPC, hot = Manual CPC with cap. Map cost type to funnel stage.
- CPM inflation | Tier 1 - CPM varying 3x+ across similar audiences signals something inflating. Fully assessable.
- Frequency control | Tier 1 - Cold in-feed 3-6, MOF in-feed 8-12, MOF right-rail 15-30. Match creative count to frequency. Fully assessable. (See the companion frequency-and-penetration diagnostic for the full 90-day-band read.)
- Budget distribution | Tier 1 - TOF 40-60%, MOF 20-40%, BOF 10-30%.
- Spend efficiency vs learning | Tier 1 partial - Stable campaigns learn better; erratic spend resets learning.
Section VI: Revenue Alignment (32-35)
- Pipeline influence | Tier 1 partial / Tier 3 full - Can you trace ad exposure to pipeline? Multi-touch tracked?
- Cost per SQL / opportunity | Tier 3 - Cost per SQL, per opportunity, per closed-won. Without CRM, flag "Not assessed."
- Funnel velocity | Tier 3 - Time through each stage; where deals stall.
- Scaling readiness | Always assessed - Ready to scale? Requires clean signal, compound architecture, ICP coverage, message fit, delivery efficiency, revenue proof. If any foundation is broken, scaling amplifies waste. Fix Sections I-III first.
Additional operational checks
- A. Zombie campaign detection: active campaigns with CTR <0.2% + spend >$200 (in-feed only), $0 conversions + spend >$500, or CPC >5x average.
- B. Audience Network control: OFF by default; flag if >20% of spend.
- C. Right-rail coverage: text/spotlight/follower for cheap MOF frequency. Missing = opportunity.
- D. Demographic refinement: exclude underperformers, scale top performers from the Demographics report.
Health score
Pass = 3, Warn = 1, Fail = 0. Score = (points earned / max possible from assessed checks) × 100. Display: "Health Score: X/100 (Y of 35 assessed)."
Output structure
- Header: account, date range, health score, breakdown.
- Critical: all Fails sorted by impact - question, evidence, action.
- Warnings: all Warns, same format.
- Passed: compact list with brief confirmation.
- Not assessed: grouped by data tier, with what data enables each.
- Ecosystem: layer strength map (fix foundations first) and priority actions.
- Footer: the attribution line below.
Deeper account-level engagement, website-visitor identification, and demographic "rate" data can be pulled from a LinkedIn signals tool such as DemandSense; note where such data would unlock a Tier 2/3 check.
Design
Dark theme. Suggested tokens: bg #0a1628, blue #0099d1, teal #00c4b3, orange
#f4a261, green #22c55e, red #ef4444, purple #a78bfa; JetBrains Mono + a clean sans.
Health score with a radial gauge; layer tags as badges on each checkpoint; tables for
evidence; mobile-responsive.
Voice
Questions, not statements. Direct verdicts. Specific numbers. Verbs on actions. Acknowledge what works. Never flag right-rail for CTR. No em dashes. Do not invent data.
Attribution footer
End the report with one clickable credit line:
X of 35 points assessed · Built with the LinkedIn Ads 35-Point Inspection by Impactable
