Claude Cursor Skill

ads

Comprehensive ad account analysis across all major platforms (Google, Meta

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download aaaaqwq-agi-super-team-skills_ads-cdb04e8.zip · 69 KB
Part of aaaaqwq/agi-super-team — 46 skills

Install

skills CLI npx skills add https://github.com/aAAaqwq/AGI-Super-Team/tree/main/skills/ads
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install aaaaqwq-agi-super-team@llmmart
Git git clone https://github.com/aAAaqwq/AGI-Super-Team.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole aaaaqwq/agi-super-team collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Ads — Multi-Platform Paid Advertising Audit & Optimization

Comprehensive ad account analysis across all major platforms (Google, Meta, LinkedIn, TikTok, Microsoft). Orchestrates 12 specialized sub-skills and 6 subagents.

Quick Reference

Command What it does
/ads audit Full multi-platform audit with parallel subagent delegation
/ads google Google Ads deep analysis (Search, PMax, YouTube)
/ads meta Meta Ads deep analysis (FB, IG, Advantage+)
/ads youtube YouTube Ads specific analysis
/ads linkedin LinkedIn Ads deep analysis (B2B, Lead Gen)
/ads tiktok TikTok Ads deep analysis (Creative, Shop, Smart+)
/ads microsoft Microsoft/Bing Ads deep analysis (Copilot, Import)
/ads creative Cross-platform creative quality audit
/ads landing Landing page quality assessment for ad campaigns
/ads budget Budget allocation and bidding strategy review
/ads plan <business-type> Strategic ad plan with industry templates
/ads competitor Competitor ad intelligence analysis

Orchestration Logic

When the user invokes /ads audit, delegate to subagents in parallel:

  1. Collect account data (exports, screenshots, or API access details)
  2. Detect business type and identify active platforms
  3. Spawn subagents: audit-google, audit-meta, audit-creative, audit-tracking, audit-budget, audit-compliance
  4. Collect results and generate unified report with Ads Health Score (0-100)
  5. Create prioritized action plan with Quick Wins

For individual commands (/ads google, /ads meta, etc.), load the relevant sub-skill directly.

Industry Detection

Detect business type from ad account signals:

  • SaaS: trial_start/demo_request events, pricing page targeting, long attribution windows
  • E-commerce: purchase events, product catalog/feed, Shopping/PMax campaigns
  • Local Service: call extensions, location targeting, store visits, directions events
  • B2B Enterprise: LinkedIn Ads active, ABM lists, high CPA tolerance ($50+), long sales cycle
  • Info Products: webinar/course funnels, lead gen forms, low-ticket offers
  • Mobile App: app install campaigns, in-app events, deep linking
  • Real Estate: listing feeds, property-specific landing pages, geo-heavy targeting
  • Healthcare: HIPAA compliance flags, healthcare-specific ad policies
  • Finance: Special Ad Categories declared, financial products compliance
  • Agency: multiple client accounts, white-label reporting needs

Quality Gates

Hard rules — never violate these:

  • Never recommend Broad Match without Smart Bidding (Google)
  • 3x Kill Rule: flag any ad group/campaign with CPA >3x target for pause
  • Budget sufficiency: Meta ≥5x CPA per ad set, TikTok ≥50x CPA per ad group
  • Learning phase: never recommend edits during active learning phase
  • Compliance: always check Special Ad Categories for housing/employment/credit/finance
  • Creative: never run silent video ads on TikTok (sound-on platform)
  • Attribution: default to 7-day click / 1-day view (Meta), data-driven (Google)

Reference Files

Load these on-demand as needed — do NOT load all at startup.

Path resolution: All references are installed at ~/.claude/skills/ads/references/. When sub-skills or agents reference ads/references/*.md, resolve to ~/.claude/skills/ads/references/*.md.

  • references/scoring-system.md — Weighted scoring algorithm and grading thresholds
  • references/benchmarks.md — Industry benchmarks by platform (CPC, CTR, CVR, ROAS)
  • references/bidding-strategies.md — Bidding decision trees per platform
  • references/budget-allocation.md — Platform selection matrix, scaling rules, MER
  • references/platform-specs.md — Creative specifications across all platforms
  • references/conversion-tracking.md — Pixel, CAPI, EMQ, ttclid implementation
  • references/compliance.md — Regulatory requirements, ad policies, privacy
  • references/google-audit.md — 74-check Google Ads audit checklist
  • references/meta-audit.md — 46-check Meta Ads audit checklist
  • references/linkedin-audit.md — 25-check LinkedIn Ads audit checklist
  • references/tiktok-audit.md — 25-check TikTok Ads audit checklist
  • references/microsoft-audit.md — 20-check Microsoft Ads audit checklist

Scoring Methodology

Ads Health Score (0-100)

Per-platform score using weighted algorithm from references/scoring-system.md. Cross-platform aggregate weighted by budget share:

Aggregate = Sum(Platform_Score x Platform_Budget_Share)

Grading

Grade Score Action Required
A 90-100 Minor optimizations only
B 75-89 Some improvement opportunities
C 60-74 Notable issues need attention
D 40-59 Significant problems present
F <40 Urgent intervention required

Priority Levels

  • Critical: Revenue/data loss risk (fix immediately)
  • High: Significant performance drag (fix within 7 days)
  • Medium: Optimization opportunity (fix within 30 days)
  • Low: Best practice, minor impact (backlog)

Sub-Skills

This skill orchestrates 12 specialized sub-skills:

  1. ads-audit — Full multi-platform audit with parallel delegation
  2. ads-google — Google Ads deep analysis (Search, PMax, YouTube)
  3. ads-meta — Meta Ads deep analysis (FB, IG, Advantage+)
  4. ads-youtube — YouTube Ads specific analysis
  5. ads-linkedin — LinkedIn Ads deep analysis
  6. ads-tiktok — TikTok Ads deep analysis
  7. ads-microsoft — Microsoft/Bing Ads deep analysis
  8. ads-creative — Cross-platform creative quality audit
  9. ads-landing — Landing page quality for ad campaigns
  10. ads-budget — Budget allocation and bidding strategy
  11. ads-plan — Strategic ad planning with industry templates
  12. ads-competitor — Competitor ad intelligence

Subagents

For parallel analysis during full audits:

  • audit-google — Google Ads checks (G01-G74)
  • audit-meta — Meta Ads checks (M01-M46)
  • audit-creative — Creative quality for LinkedIn, TikTok, Microsoft
  • audit-tracking — Conversion tracking health across all platforms
  • audit-budget — Budget, bidding, structure for LinkedIn, TikTok, Microsoft
  • audit-compliance — Compliance, settings, performance across all platforms
Files (agi-super-team)
  • references
    • benchmarks.md 6.2 KB
      # Industry Benchmarks 2026
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Claude Research (WordStream/LocaliQ 16K campaigns, Triple Whale 2025), Gemini Research -->
      
      ## Google Ads — Search Benchmarks
      
      ### All Industries Average (WordStream/LocaliQ 2025, 16K campaigns)
      | Metric | Average | YoY Change |
      |--------|---------|------------|
      | CTR | 6.66% | +3.74% |
      | CPC | $5.26 | Up for 87% of industries (fifth consecutive year of increases) |
      | CVR | 7.52% | Up for 65% of industries |
      | CPL | ~$70 | +5% |
      
      ### By Industry (Search)
      | Industry | CPC | CTR | CVR | CPL |
      |----------|-----|-----|-----|-----|
      | Arts & Entertainment | $1.60 | 13.10% | — | — |
      | Travel | $2.12 | — | — | — |
      | Restaurants | $2.05 | — | — | — |
      | E-commerce | $1.15 | 4.13% | 2.81% | — |
      | B2B SaaS | $4.50-$8.00 | 4.28% | 1.65% | $100-$200 |
      | Education | $6.23 | — | — | — |
      | Local Services | $7.85-$15.00 | 5.50%-6.37% | 7.33%-15.0% | $90.92 |
      | Dental | $7.85 | 5.44% | — | — |
      | Healthcare | $40+ | 4.90% | 3.10% | — |
      | Legal | $8.58-$9.21 | 5.20%-5.97% | 4.60%-5.09% | — |
      | Finance | $3.46-$3.77 | 4.65%-8.33% | 2.55%-3.50% | — |
      | Real Estate | $1.55-$2.53 | 8.43% | 3.28% | — |
      
      ### E-commerce Specific (Triple Whale 2025)
      | Metric | Median | YoY Change |
      |--------|--------|------------|
      | CPA | $23.74 | +12.35% |
      | CPM | $12.79 | +10.01% |
      | ROAS | 3.68 | -10.03% |
      
      Note: CTR improved across all 14 tracked industries while CVR declined in 13 of 14.
      
      ## Meta Ads Benchmarks
      
      ### By Objective (WordStream 2025, 1K campaigns)
      | Objective | CTR | CPC | CVR | CPL |
      |-----------|-----|-----|-----|-----|
      | Traffic (all) | 1.71% | $0.70 | — | — |
      | Leads (all) | 2.59% | $1.92 | 7.72% | $27.66 |
      
      ### ROAS Benchmarks
      | Segment | ROAS |
      |---------|------|
      | All industries median | 2.19:1 |
      | Retargeting | 3.61:1 |
      | Advantage+ Sales | 4.52:1 |
      
      ### CPM by Industry
      | Industry | CPM |
      |----------|-----|
      | Arts & Entertainment | $5.82 (lowest) |
      | Most industries | $6-$8 |
      | E-commerce | $12.50 |
      | Local Services | $18.00 |
      | Healthcare | $28.00 |
      | B2B SaaS | $35.00 |
      | Healthcare (highest) | $36.82 |
      | Legal | $45.00 |
      | Finance | $50.00 |
      
      ### CPC Trend
      - January 2026: $0.85 (24% below prior January)
      - November 2025 peak: $1.32 (Q4 surge)
      
      ### Creative Fatigue Thresholds
      | Signal | Warning | Fail |
      |--------|---------|------|
      | Frequency (prospecting) | >3 | >5 |
      | Frequency (retargeting) | >8 | >12 |
      | CTR decline over 14 days | — | >20% |
      | Exposures before conversion drop (~45%) | 4 | — |
      | TOF creative lifespan | 3-4 weeks | — |
      | BOF creative lifespan | 6-7 weeks | — |
      
      ## LinkedIn Ads Benchmarks
      
      | Metric | Benchmark |
      |--------|-----------|
      | Average CPC | $5-$7 globally; median $3.94 |
      | Average CPM | $31-$38 |
      | CTR (Sponsored Content) | 0.44%-0.65% |
      | CTR (exceptional) | >1.0% |
      | Average CPL | $60-$150+ |
      | Lead Gen Form CVR | 13% (3.25× higher than landing pages) |
      | Message Ads CTR | 3% (30% open rate) |
      | Conversation Ads | 50% open rate, 10-12% CTR |
      | B2B ROAS | 113% ($1.13 per $1) |
      | TLA CPC | $2.29-$4.14 (vs $13.23 standard) |
      | TLA CTR | 1.7× higher than standard |
      | Min daily budget | $10/day |
      
      ### CPL by Industry
      | Industry | CPL |
      |----------|-----|
      | Education | $64 |
      | Media | $65 |
      | Retail | $80 |
      | Manufacturing | $100 |
      | Finance | $100 |
      | Software & IT | $125 |
      | Healthcare | $125 |
      
      ### Cost Factors
      - Senior decision-makers (VP/Director/C-suite): $6.40+ CPC
      - North America premium: 40-50% above global averages
      - CPC YoY trend: +8% (2025)
      - Q3 highest CPC ($15.72); Q4/Q1 typically lower
      
      ## TikTok Ads Benchmarks
      
      | Metric | Range | Average |
      |--------|-------|---------|
      | CPM | $3.21-$10 | ~$4.26 |
      | CPC | $0.20-$2.00 | ~$1.00 |
      | CTR | 0.5%-1.5% | ~0.84% |
      | CVR | 0.3%-1.0% | ~0.46% |
      | Engagement Rate | 5-16% | Far exceeds FB 0.09%, IG 1.22% |
      
      ### Format Comparison
      | Format | CTR | CPA |
      |--------|-----|-----|
      | Spark Ads | ~3% | ~$60 |
      | Standard In-Feed | ~2% | ~$100 |
      
      ### Key Thresholds
      - Minimum campaign budget: $50/day
      - Minimum ad group budget: $20/day
      - Learning phase exit: ~50 conversions in 7 days
      - TikTok Shop CVR: >10% (vs 0.46-2.4% standard)
      - CPM advantage: 40-60% cheaper than Meta
      
      ### Smart+ Performance
      - Median ROAS: 1.41-1.67
      - Adoption: 42% of US TikTok performance campaigns
      
      ## Microsoft Ads Benchmarks
      
      | Metric | Value | vs Google |
      |--------|-------|-----------|
      | Average CPC | $1.20-$1.55 | 20-35% discount |
      | Average CTR | 2.83-3.1% | Higher than Google ~2.0% |
      | Copilot CTR | 73% higher | vs traditional search |
      | Copilot CVR | 16% stronger | vs traditional search |
      | Users click paid ads | 25% more often | vs Google users |
      | Higher ROAS reported | 37% of advertisers | vs Google |
      
      ### Copilot Checkout (January 2026)
      - Users discover, compare, and purchase within Copilot conversations
      - 194% more likely to purchase when shopping intent is present
      - Ads in Copilot must be clearly labeled
      
      ### User Demographics
      - ~50% in top 25% household incomes
      - 34% hold degrees
      - 45-64 age group: 38% of searches
      - US all-devices share: 8.78% (record)
      - US desktop share: 16.75-17.58%
      - With Yahoo/AOL partners: ~25% US desktop
      
      ## ROAS Benchmarks by Industry (Cross-Platform)
      
      | Industry | Google | Meta | LinkedIn | TikTok |
      |----------|--------|------|----------|--------|
      | E-commerce | 3.68 | 2.19-4.52 (ASC) | N/A | 1.41-1.67 |
      | B2B SaaS | N/A | N/A | 1.13 | N/A |
      | Legal | 3.0 | — | — | — |
      | Finance | 3.5 | — | — | — |
      | Healthcare | 2.8 | — | — | — |
      | Local Services | 5.0 | — | — | — |
      
      ## Landing Page Benchmarks
      
      | Metric | Value |
      |--------|-------|
      | Mobile traffic share | 82.9% |
      | 1s load → CVR vs 5s load | 3× higher |
      | 1s delay | -7% conversions |
      | Median CVR across industries | 6.6% |
      | Top 10% CVR | 20%+ |
      | QS landing page high → CPC impact | 50% discount |
      | QS landing page low → CPC impact | 400% extra |
      
      ## Minimum Viable Ad Budgets
      
      | Platform | Minimum Monthly | Rationale |
      |----------|----------------|-----------|
      | Google Ads | $1,000+ | Need 15+ conversions/month for Smart Bidding |
      | Meta Ads | $600-$800 | Need 50 conv/week per ad set for learning |
      | LinkedIn Ads | $3,000+ | High CPCs ($5-$35) require scale |
      | TikTok Ads | $300+ | Low CPMs but need creative volume |
      | Microsoft Ads | 20-30% of Google budget | Proportional to search volume |
      
    • bidding-strategies.md 9.6 KB
      # Bidding Strategy Decision Trees
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Google Research PDF 2, Claude Research, Gemini Research -->
      
      ## Google Ads Bidding Decision Engine
      
      ### Strategy Selection Flow
      
      ```
      START → How many conversions in last 30 days?
      
      ┌─ < 15 conversions ──────────────────────────┐
      │  → Maximize Clicks (cold start)             │
      │  → Set Max CPC = Target_CPA / (CVR × 1.5)  │
      │  → Learning: 3-5 days                       │
      │  → Monitor until 15+ conversions achieved    │
      │  → OR use Manual CPC if full control needed  │
      │  → NOTE: eCPC deprecated March 31, 2025      │
      └──────────────────────────────────────────────┘
      
      ┌─ 15-29 conversions ─────────────────────────┐
      │  → Maximize Conversions (uncapped)          │
      │  → Learning: 7-14 days                      │
      │  → Transition when CPA SD < 20% over 14d   │
      │  → THEN switch to Target CPA               │
      └──────────────────────────────────────────────┘
      
      ┌─ 30+ conversions, NO dynamic values ────────┐
      │  → Target CPA                               │
      │  → Strict: 30+ (Google says 15, but 30+     │
      │    for reliable performance, 50+ ideal)      │
      │  → Set at: 1.1x-1.2x historical CPA        │
      │  → Adjust: Max 10% change every 14 days     │
      │  → Never lower by more than 15% at once     │
      └──────────────────────────────────────────────┘
      
      ┌─ 50+ conversions WITH dynamic values ───────┐
      │  → Target ROAS                              │
      │  → Requires dynamic conversion values        │
      │  → Set at: EXACT historical ROAS            │
      │  → Formula: Bid = P(conv) × Value × 1/tROAS│
      │  → Adjust: Same rules as tCPA              │
      └──────────────────────────────────────────────┘
      
      ### Smart Bidding Exploration (Google, 2025+)
      
      An opt-in feature for Target ROAS campaigns that temporarily eases
      ROAS targets to discover new, untapped search traffic:
      
      - **Effect**: +18% more unique search query categories, +19% more conversions
      - **How it works**: Algorithm temporarily relaxes ROAS constraints to
        enter auctions it would normally skip, testing new user segments
      - **When to enable**: Stable tROAS campaigns with 50+ conversions/month
        seeking incremental growth beyond current query coverage
      - **When to avoid**: Tight-margin accounts or campaigns already spending
        full budget (exploration adds volume, not just efficiency)
      - **Available on**: Target ROAS bid strategies only
      
      ┌─ Brand Protection campaigns ────────────────┐
      │  → Target Impression Share                  │
      │  → Target: 95-100% on brand keywords        │
      │  → No conversion data requirement           │
      │  → Search only (not available elsewhere)     │
      └──────────────────────────────────────────────┘
      
      SPECIAL CASES:
      - PMax: Always uses Maximize Conversions or Maximize Conv Value
      - Demand Gen: Supports Target CPC (new), tCPA, tROAS, Max Clicks
      - Display Pay per Conversion: Eligibility required
      ```
      
      ### Attribution Model (Google)
      - **DDA (Data-Driven Attribution) is now MANDATORY default** (September 2025)
      - Only two models remain: DDA and Last Click
      - All rule-based models deprecated (first-click, linear, time decay, position-based)
      - No minimum data threshold for DDA
      - Impact on bidding: DDA distributes conversion credit across touchpoints, affecting Smart Bidding signals
      
      ### Portfolio Bid Strategies
      
      When to use portfolios:
      - Multiple campaigns each with <15 conv, but combined >30
      - Need cross-campaign budget optimization
      - **CPC Cap Hack**: Only way to set max CPC bid on tCPA/tROAS
      
      Rules:
      - Minimum 3 campaigns per portfolio for meaningful data
      - Group campaigns with similar target CPAs/ROAS
      - Never mix brand and non-brand in same portfolio
      
      ### Transition Triggers (Google)
      
      | From | To | Trigger |
      |------|----|---------|
      | Maximize Clicks | Maximize Conversions | 15+ conversions in 30 days |
      | Maximize Conversions | Target CPA | CPA SD <20% over 14 days + 30+ conv |
      | Target CPA | Target ROAS | 50+ conv + dynamic values available |
      | Manual CPC | Maximize Clicks | Ready to test automation |
      | Any | Target Impression Share | Brand protection need identified |
      
      ---
      
      ## Meta Ads Bidding Decision Engine
      
      ### Auction Formula
      
      ```
      Total Value = Bid × Estimated Action Rate + User Value
      ```
      
      ### Strategy Selection
      
      ```
      DEFAULT (90% of campaigns):
        → Lowest Cost (no cap)
        → Best for: Most campaigns, volume maximization
        → Risk: CPA can spike during high-competition (Q4)
      
      IF need cost predictability:
        → Cost Cap
        → Set at: 1.2x - 1.5x target CPA
        → Best for: Scaling with margin protection
        → Risk: Under-delivery if cap too aggressive
      
      IF need strict cost control:
        → Bid Cap
        → Set at: 2x - 3x target CPA
        → Best for: Experienced advertisers with clear unit economics
        → Risk: Significant under-delivery if too low
      
      IF e-commerce with revenue tracking:
        → ROAS Goal
        → Best for: Advantage+ Sales Campaigns
        → Requires: Purchase event + dynamic values
      
      IF high-value diverse products:
        → Highest Value
        → Prioritizes high-value conversions
        → Best for: Wide AOV range
      ```
      
      ### CBO vs ABO Decision
      
      ```
      IF daily_budget < $100:
        → ABO (manual control for testing)
      
      IF daily_budget $100-$500:
        → Test both; CBO if similar audiences, ABO if diverse
      
      IF daily_budget > $500:
        → CBO (Advantage+ Campaign Budget)
        → Let Meta optimize distribution
      
      NOTE: Advantage+ Sales/Leads auto-enable CBO
      ```
      
      ### Learning Phase Rules
      
      **Exit criteria:** 50 conversions per week per ad set
      
      **Reset triggers (avoid during learning):**
      - Budget change >20%
      - Any targeting change
      - Creative edit (even text)
      - Bid strategy change
      - Pausing >7 days
      
      **If "Learning Limited":**
      1. Broaden audience
      2. Increase budget
      3. Switch to higher-funnel event (AddToCart instead of Purchase)
      4. Consolidate ad sets
      5. Ensure daily budget ≥5× target CPA
      
      ---
      
      ## LinkedIn Ads Bidding
      
      ### Strategy Selection
      
      ```
      Sponsored Content:
        → Maximum Delivery (recommended default)
        → Manual Bidding (for CPC control, experienced only)
        → Minimum daily budget: $10/day (recommend $50+)
      
      Message Ads:
        → CPS (Cost Per Send) — bid aggressively
        → Frequency cap: 1 per 30-45 days per user
        → Win the auction for limited inbox slot
      
      Lead Gen Forms:
        → Lowest Cost or Manual CPC
        → 13% CVR benchmark (3.25× landing pages)
      
      Conversation Ads:
        → CPS — similar to Message Ads
        → 10-12% CTR benchmark
      
      TLA (Thought Leader Ads):
        → Allocate ≥30% budget
        → CPC $2.29-$4.14 (vs $13.23 standard)
      
      Accelerate Campaigns:
        → AI-powered end-to-end
        → 42% lower CPA, 21% lower CPL
      ```
      
      ---
      
      ## TikTok Ads Bidding
      
      ### Strategy Selection
      
      ```
      DEFAULT:
        → Lowest Cost (volume maximization)
        → Most common, good starting point
      
      IF margin protection needed:
        → Cost Cap
        → Set target CPA, system tries to stay near
      
      IF strict cost control needed:
        → Bid Cap
        → Controls maximum bid per auction (not average CPA)
        → Set at 2-3x target CPA initially
        → Best for: retargeting, competitive niches (Q4/BFCM)
        → Risk: significant under-delivery if set too aggressively
      
      IF Smart+ campaign:
        → Modular automation (choose per module)
        → Up to 30 ad groups, 50 creatives per asset group
      
      GMV Max (TikTok Shop):
        → Default/only for Shop campaigns (July 2025)
        → Optimizes for Gross Merchandise Value
      ```
      
      ### Budget Rules
      - Campaign minimum: $50/day
      - Ad group minimum: $20/day
      - Budget should be ≥50× target CPA per ad group (provides sufficient learning room)
      - Learning phase: ~50 conversions in 7 days
      
      ---
      
      ## Microsoft Ads Bidding
      
      ### Strategy Selection
      
      ```
      IF importing from Google:
        → Match Google bid strategy
        → Validate settings transferred correctly
        → Adjust targets (typically 20-35% lower CPC on Bing)
      
      IF native campaign:
        → Same strategy framework as Google
        → Lower CPC targets (expect $1.20-$1.55 avg)
        → Enable Copilot placement for PMax
      
      PMax on Microsoft:
        → Enable "Target New Customers" (Beta 2026)
        → Copilot chat placement: 73% higher CTR
        → LinkedIn profile targeting (unique)
      ```
      
      ---
      
      ## Cross-Platform Bidding Red Flags
      
      | Red Flag | Severity | Platform | Action |
      |----------|----------|----------|--------|
      | Broad Match + Manual CPC | Critical | Google | Switch to Smart Bidding or Exact Match |
      | tCPA <50% of actual CPA | Critical | Google | Unrealistic target; set at 1.1-1.2× historical |
      | Smart Bidding with <15 conv/month | High | Google | Use Manual CPC or Maximize Clicks |
      | >50% ad sets "Learning Limited" | Critical | Meta | Consolidate, broaden audience, increase budget |
      | Cost Cap below historical CPA | High | Meta | Set at 1.2-1.5× target, not below |
      | Daily budget <5× CPA | High | Meta | Increase budget or switch to higher-funnel event |
      | Budget < $50/day campaign | High | TikTok | Increase to minimum or consolidate |
      | No negative keywords with Broad Match | Critical | Google | Add themed negative lists immediately |
      | No Portfolio strategy for low-vol campaigns | Medium | Google | Group <15 conv campaigns into portfolio |
      
    • budget-allocation.md 5.8 KB
      # Budget Allocation & Scaling Framework
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Google Research PDF 2, Claude Research, Gemini Research -->
      
      ## Platform Selection Matrix by Business Type
      
      | Business Type | Platform 1 | Platform 2 | Platform 3 | Other | Min Monthly | Primary KPI | Time to Profit |
      |--------------|------------|------------|------------|-------|-------------|-------------|---------------|
      | SaaS B2B | Google 35-45% | LinkedIn 30-40% | Meta 15-25% | YouTube 10% | $5,000 | Pipeline ROI, LTV:CAC | 3-6 months |
      | E-commerce DTC | Meta 50-68% | Google PMax 23-30% | TikTok 5-15% | Email 5% | $3,000 | ROAS, MER, POAS | 0-2 months |
      | Local Service | Google LSA/Search 60% | Meta 30% | Bing 10% | — | $1,500 | Cost Per Lead/Booking | 1 month |
      | B2B Enterprise | LinkedIn 39-60% | Google 20-35% | ABM Display 15-20% | Programmatic 11% | $10,000 | Pipeline, SQLs | 6-12 months |
      | Info Products | YouTube 40% | Meta 40% | Email 20% | — | $2,000 | ROAS, Webinar CPL | 1-3 months |
      | Mobile App | Apple Search 30% | Google App 30% | Meta/TikTok 40% | — | $5,000 | CPI, LTV, D7 Retention | 3-6 months |
      | Real Estate | Meta Lead Forms 50% | Google Search 40% | LinkedIn 10% | — | $2,500 | Cost Per Lead | 2-4 months |
      | Healthcare | Google Search 55% | Meta 20% | Microsoft 10% | YouTube/Display 15% | $4,000 | Cost Per Patient | 2-5 months |
      | Finance/Fintech | Google Search 40-50% | LinkedIn 20-30% | Meta 15% | YouTube/Display 10% | $8,000 | CAC, LTV:CAC | 4-8 months |
      | Agency (Own) | LinkedIn 50% | Meta 30% | Google 20% | — | $1,500 | Cost Per Lead | 1-3 months |
      | B2C / DTC | Meta 50% | Google 20% | TikTok 30% | — | $2,000 | ROAS, CAC | 1-3 months |
      
      ## Budget Distribution Rule: 70/20/10
      
      ```
      70% → Proven performers (campaigns with established positive ROAS/CPA)
      20% → Promising growth (campaigns showing traction, need scale)
      10% → Experiments (new platforms, audiences, formats)
      ```
      
      ## Scaling Decision Tree
      
      ### 20% Rule (Scale Up)
      ```
      IF actual_CPA < target_CPA by > 10%
      AND conversions_last_7d >= learning_threshold
      AND campaign NOT in learning phase
      THEN increase budget by 20%
      → Wait 3-5 days before next increase
      → Never increase more than 20% at once on Meta (triggers learning reset)
      ```
      
      ### 3× Kill Rule (Pause)
      ```
      IF spend > 3× target_CPA
      AND conversions == 0
      THEN pause ad/ad set/campaign immediately
      → Review: creative, targeting, landing page, tracking
      → Don't restart without changes
      ```
      
      ### Decreasing Returns Detection
      ```
      IF CPA increased > 15% after last budget increase
      THEN roll back to previous budget level
      → Wait 7 days
      → Try horizontal scaling instead (new audiences, platforms)
      ```
      
      ### Saturation Signals
      | Platform | Signal | Threshold | Action |
      |----------|--------|-----------|--------|
      | Google | Impression Share | >80% | Diminishing returns; diversify |
      | Meta | Frequency (7-day) | >4.0 | Audience exhausted; refresh creative or expand |
      | TikTok | Frequency | >3.0 | Creative fatigue; replace assets |
      | LinkedIn | Audience penetration | >50% | Audience exhausted; expand targeting |
      
      ## Marketing Efficiency Ratio (MER)
      
      ```
      MER = Total Revenue / Total Ad Spend (all platforms combined)
      ```
      
      | Business Type | Healthy MER | Excellent MER | Danger Zone |
      |--------------|-------------|---------------|-------------|
      | E-commerce | 3.0-5.0 | >5.0 | <2.0 |
      | SaaS | Use LTV:CAC (3:1 target) | >4:1 | <2:1 |
      | Lead Gen | Revenue/Lead × CVR / CPL | — | <1.5 |
      
      **Why MER over ROAS:**
      - ROAS is platform-reported (overclaims by 20-40%)
      - MER captures true business economics
      - Cross-platform; not inflated by attribution overlap
      
      ## Seasonality Adjustments
      
      ### Q4 (October-December)
      - CPMs increase 30-50%
      - Reduce ROAS targets by 20%
      - Front-load creative testing in September
      - Increase budgets 40-60% for Black Friday / Cyber Monday
      - Meta: Advantage+ Sales performs best during peaks
      
      ### Q1 (January-March)
      - CPMs decrease 20-30% post-holiday
      - Best time for new campaign testing
      - Aggressive customer acquisition (lower competition)
      - Meta Jan 2026 CPC: $0.85 (24% below prior January)
      
      ### Q2 (April-June)
      - Steady CPMs, good testing window
      - Mother's Day / Father's Day spikes for retail
      
      ### Q3 (July-September)
      - LinkedIn CPC peaks in Q3 ($15.72 average)
      - Back-to-school surge for education
      - Good time to build retargeting pools for Q4
      
      ## Incrementality Testing (Geo-Lift)
      
      ### Setup
      - Duration: 2-4 weeks minimum
      - Holdout: 10% of geographic regions (matched pairs)
      - Method: Compare conversion rates exposed vs holdout
      - Statistical significance: p < 0.05
      
      ### Tools
      - Meta: Robyn (R-based, open source) — best for ~80% of orgs
      - Google: Meridian (Python, Bayesian, geo-level)
      - Advanced: PyMC-Marketing (fully customizable)
      - Budget: Significant — allocate 10% of monthly spend for testing
      
      ### Post-Purchase Surveys
      - Fill ~30% of attribution gap that digital tracking misses
      - Question: "How did you first hear about us?"
      - Implement on order confirmation page
      - Weight responses against platform-reported data
      
      ## Minimum Viable Budgets
      
      | Platform | Minimum Monthly | Rationale |
      |----------|----------------|-----------|
      | Google Ads | $1,000 | 15+ conv/month minimum for Smart Bidding |
      | Meta Ads | $600-$800 | 50 conv/week/ad set × $CPA |
      | LinkedIn Ads | $3,000 | High CPCs; $10/day minimum × multiple campaigns |
      | TikTok Ads | $300 | $50/day campaign min × creative testing needs |
      | Microsoft Ads | $200-$300 | 20-30% of Google budget |
      
      ## Cross-Platform Attribution Hierarchy
      
      ```
      Source of Truth (best → worst):
      1. CRM Data (actual revenue, closed deals, LTV)
      2. MER (total revenue / total ad spend)
      3. Post-Purchase Surveys ("How did you hear about us?")
      4. Google Analytics 4 (cross-channel, multi-touch)
      5. Platform-Reported Data (always overclaims 20-40%)
      
      RULE: Never trust platform-reported ROAS alone.
      Always cross-reference with ≥2 other data sources.
      ```
      
    • compliance.md 7.7 KB
      # Advertising Compliance & Privacy Reference
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Claude Research, Gemini Research -->
      
      ## Google Ads Policies
      
      ### Enforcement System: Three-Strike Policy
      | Strike | Consequence | Duration |
      |--------|------------|----------|
      | Strike 1 | 90-day probation | Warning period |
      | Strike 2 | 90-day restriction | Limited functionality |
      | Strike 3 | Permanent suspension | Account terminated |
      
      ### Prohibited Content (Immediate Disapproval)
      - Counterfeit goods
      - Dangerous products or services
      - Dishonest behavior enablement
      - Inappropriate content (hate speech, violence, shocking content)
      
      ### Restricted Categories (Certification Required)
      | Category | Requirement |
      |----------|-------------|
      | Online pharmacies | Google certification + LegitScript |
      | Telemedicine | Platform certification |
      | Health insurance | Certification in applicable regions |
      | Gambling | State/country-specific licensing |
      | Political ads | Identity verification + disclosures |
      | Cryptocurrency | Certification required |
      | Financial services | Clear APR/fee/terms disclosures |
      | Alcohol | Age-gating + regional restrictions |
      | Adult content | Age restriction + limited placements |
      
      ### Common Disapprovals
      - Misleading claims (superlatives without evidence)
      - Missing landing page content (404s, under construction)
      - Destination mismatch (ad promise ≠ landing page)
      - Prohibited content in ad text
      - Trademark infringement
      - Restricted healthcare claims
      
      ### Recommendations Tab — What to Accept/Reject
      
      **Safe to accept:**
      - Optimized ad rotation
      - Relevant extensions
      - Fix disapproved ads
      
      **Usually reject:**
      - "Raise your budget"
      - "Add broad match keywords"
      - "Add new keywords" (auto-suggested)
      - Auto-created RSAs
      - Bidding strategy switches
      - Turn off Optimization Score auto-apply
      
      ---
      
      ## Meta Ads Policies
      
      ### Special Ad Categories (Restricted Targeting)
      | Category | Restrictions |
      |----------|-------------|
      | Housing | No ZIP code, age must be 18-65+, no lookalike |
      | Employment | Same restrictions as Housing |
      | Credit | Same restrictions as Housing |
      | **Financial Products** | **New Jan 2025** — enforced as Special Category |
      
      All Special Ad Categories:
      - Cannot target by age (18-65+ only range)
      - Cannot target by ZIP code / postal code
      - Cannot use Lookalike Audiences
      - Must declare category before campaign creation
      
      ### Enforcement Scale
      - Over 1.3 billion ads rejected or removed in 2024
      - Account restrictions escalate with repeated violations
      - Appeal process available but slow
      
      ### Detailed Targeting Exclusions (Removed)
      - Removed from new ad sets: March 31, 2025
      - Removed from boosted posts: June 10, 2025
      - Existing campaigns with old exclusions stopped: January 15, 2026
      - Meta cites 22.6% lower median cost per conversion without exclusions
      
      ### Content Rules
      - No misleading health/weight loss claims
      - Before/after images: heavily restricted
      - Cryptocurrency: certification required
      - Political ads: "Paid for by" disclosure required
      - Personal attributes: cannot imply user has specific condition
      - Sensational content: no clickbait tactics
      
      ---
      
      ## LinkedIn Ads Policies
      
      ### Restricted Industries
      - Gambling and betting
      - Tobacco and related products
      - Weapons and ammunition
      - Adult content
      - Multi-level marketing
      - Cryptocurrency (restricted, not prohibited)
      
      ### Professional Standards
      - B2B focus expected; casual/misleading content penalized
      - Thought Leader Ads must come from genuine employees
      - Lead Gen Forms must have clear privacy policy
      - Job postings must comply with employment laws
      
      ---
      
      ## TikTok Ads Policies
      
      ### Platform Requirements
      - Content must feel native (not overly polished/corporate)
      - Audio required (TikTok is sound-on)
      - Must comply with music licensing for commercial use
      - Creator content (Spark Ads) requires creator approval
      
      ### Restricted Categories
      - Age-restricted products (alcohol, gambling): geo-gated
      - Health claims: evidence required
      - Financial products: risk disclosures required
      - Political ads: banned in many markets
      
      ### TikTok Shop Policies
      - Products must meet marketplace standards
      - No counterfeit or restricted goods
      - Seller verification required
      - Available in 11 countries (US, UK, key Asian/European markets)
      
      ---
      
      ## Microsoft Ads Policies
      
      ### Import Considerations
      - Google Ads policy approvals don't transfer
      - Microsoft has separate review process
      - Some Google-approved ads may be disapproved on Microsoft
      - Bing audience skews older/more conservative — creative should match
      
      ### Copilot Placement Policies
      - Ads in Copilot must be clearly labeled
      - Copilot Checkout (Jan 2026): commerce within conversations
      - Higher quality standards for conversational context
      
      ---
      
      ## Privacy Regulations (February 2026)
      
      ### Global Privacy Landscape
      
      | Regulation | Region | Status | Key Requirement |
      |-----------|--------|--------|-----------------|
      | GDPR | EU/EEA | Active | Consent before tracking; data minimization |
      | UK GDPR | UK | Active | Similar to EU GDPR |
      | CCPA/CPRA | California | Active | Right to opt out; mandatory audits |
      | 20 State Laws | US (various) | Active Jan 2026 | Indiana, Kentucky, Rhode Island newest |
      | LGPD | Brazil | Active | Consent and transparency |
      | PIPL | China | Active | Consent and data localization |
      
      ### Key Privacy Facts (2026)
      
      **Privacy Sandbox is DEAD:**
      - Google officially retired October 2025
      - Third-party cookies remain in Chrome (~67% browser share)
      - Safari and Firefox already block third-party cookies
      - No separate consent prompt coming
      
      **iOS App Tracking Transparency (ATT):**
      - Average opt-in rate: ~35% (Q2 2025, up from 29% in 2022)
      - Gaming highest: 37-50%
      - Education lowest: 7-14%
      - Apps with <30% opt-in lose 58% of ad revenue on average
      
      **Consent Mode v2 (Mandatory for EU/EEA):**
      - Enforcement tightened July 2025
      - Without: 90-95% metric drops
      - Advanced mode recovers 30-50% of lost conversions
      - ~31% of users globally accept tracking cookies
      
      **US State Privacy:**
      - 20 state laws active by January 2026
      - Texas AG: $1.4 billion settlement for tracking violations
      - California CPPA: mandatory cybersecurity audits + data processing risk assessments
      - Server-side tracking now architecturally necessary for compliance
      
      ### Compliance Decision Tree
      
      ```
      IF serving_region INCLUDES "EU/EEA":
        → Consent Mode v2 = MANDATORY
        → Cookie consent banner = MANDATORY
        → Data Processing Agreement = MANDATORY
        → Enhanced Conversions with consent = RECOMMENDED
      
      IF serving_region INCLUDES "California":
        → CCPA/CPRA compliance = MANDATORY
        → "Do Not Sell" link = MANDATORY
        → Data processing risk assessment = MANDATORY (2026)
      
      IF serving_region INCLUDES any US state:
        → Check specific state law requirements
        → 20 states have active laws as of Jan 2026
      
      FOR ALL REGIONS:
        → Server-side tracking = RECOMMENDED (bypasses most client-side issues)
        → First-party data strategy = ESSENTIAL
        → Privacy policy on landing pages = MANDATORY
      ```
      
      ### Healthcare-Specific Compliance
      
      | Rule | Enforcement |
      |------|-------------|
      | No remarketing/retargeting for health services | Google policy — account suspension risk |
      | No targeting by health conditions | Google, Meta, all platforms |
      | Online pharmacy certification | Google: LegitScript required |
      | Telemedicine certification | Google: platform certification |
      | HIPAA considerations | US: no PHI in tracking pixels |
      | Use contextual targeting | Instead of audience targeting |
      
      ### Financial Services Compliance
      
      | Rule | Enforcement |
      |------|-------------|
      | Clear APR/fee/terms disclosures | Google, Meta — ad disapproval |
      | Lending certification | Google — account level |
      | Crypto certification | Google — account level |
      | Risk disclosures | All platforms |
      | Financial Products Special Category | Meta (Jan 2025) — restricted targeting |
      | No misleading income claims | All platforms — account suspension |
      
    • conversion-tracking.md 7.4 KB
      # Conversion Tracking Setup & Requirements
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Google Research PDF 2, Claude Research, Gemini Research -->
      
      ## Google Ads Conversion Tracking
      
      ### Required Stack
      ```
      1. Global Site Tag (gtag.js) → all pages
      2. Enhanced Conversions → hashed first-party data (email, phone, address, name)
      3. Consent Mode v2 → MANDATORY for EU/EEA since March 2024
      4. Server-Side GTM → recommended for data durability
      5. Offline Conversion Import → for lead gen (CRM → Google Ads)
      ```
      
      ### Enhanced Conversions
      - Sends SHA-256 hashed first-party data
      - Improves measurement by ~10% more measured conversions
      - Required for smart bidding accuracy in cookie-degraded environments
      - Setup via gtag.js or Google Tag Manager
      - Works alongside standard conversion tracking
      
      ### Consent Mode v2
      ```javascript
      // Default (before consent)
      gtag('consent', 'default', {
        'ad_storage': 'denied',
        'ad_user_data': 'denied',
        'ad_personalization': 'denied',
        'analytics_storage': 'denied'
      });
      
      // After user grants consent
      gtag('consent', 'update', {
        'ad_storage': 'granted',
        'ad_user_data': 'granted',
        'ad_personalization': 'granted',
        'analytics_storage': 'granted'
      });
      ```
      - Enables conversion modeling for unconsented users
      - Advanced mode recovers 30-50% of lost conversions
      - Without implementation: 90-95% metric drops (enforcement tightened July 2025)
      - ~31% of users accept tracking cookies globally
      
      ### Attribution
      - **DDA (Data-Driven Attribution) is now MANDATORY default** (September 2025)
      - Only two models remain: DDA and Last Click
      - All rule-based models deprecated (first-click, linear, time decay, position-based)
      - No minimum data threshold for DDA
      - Windows: Click 1/3/7/30(default)/60/90 days; Engaged-view 3d; View-through 1d
      
      ### Customer Match
      - Requires 90 days of account history and $50,000+ lifetime spend for full access
      - Maximum membership duration: 540 days (changed April 7, 2025; previously infinite)
      - Use for RLSA, similar audiences, and Customer Match lists
      - First-party data source: CRM emails, phone numbers, addresses
      
      ### Conversion Setup Rules
      - Use Google Ads native tracking as PRIMARY for bidding (real-time data)
      - Import GA4 conversions for observation only
      - Never count both (double-counting)
      - Separate micro (AddToCart, TimeOnSite) from macro (Purchase, Lead) conversions
      - Only macro conversions as "Primary" for bidding optimization
      
      ---
      
      ## Meta Ads Conversion Tracking
      
      ### Required Stack
      ```
      1. Meta Pixel → base code on all pages + standard events
      2. Conversions API (CAPI) → server-side event forwarding
      3. Event Deduplication → event_id matching between Pixel and CAPI
      4. EMQ Optimization → pass email, phone, fbp, fbc, external_id
      ```
      
      ### Event Match Quality (EMQ) Scoring
      | Score | Rating | Action |
      |-------|--------|--------|
      | <4.0 | Critical | Severe data loss; urgent fix needed |
      | 4.0-5.9 | Warning | Significant signal gaps |
      | 6.0-7.9 | Acceptable | Some optimization possible |
      | 8.0-10.0 | Excellent | Maximum signal strength |
      
      **Key parameters by impact:**
      - Email: +4.0 points
      - Phone: +3.0 points
      - External ID: significant
      - fbp (browser ID): important
      - fbc (click ID): important
      
      **87% of advertisers have poor EMQ** — fixing it improves performance 20-40%.
      
      ### Event Deduplication
      ```
      Same event_id + same event_name = deduplicated (correct)
      Missing event_id = potential double-counting (broken)
      
      Check: Events Manager > Overview > Deduplication Rate
      Target: 90%+ deduplication rate
      ```
      
      ### CAPI Performance Impact
      - Without CAPI: 30-40% data loss post-iOS 14.5 (pixel-only tracking is critically insufficient)
      - With CAPI: 15-20% performance increase over pixel-only
      - Bypasses ad blockers and iOS ATT limitations
      - 87% of advertisers have poor Event Match Quality — fixing CAPI improves performance 20-40%
      - Offline Conversions API deprecated May 2025 → CAPI replaces
      
      ### Standard Events (Use These, Not Custom)
      ```
      Purchase, AddToCart, InitiateCheckout, AddPaymentInfo,
      Lead, CompleteRegistration, Subscribe, ViewContent,
      Search, AddToWishlist, Contact, CustomizeProduct,
      FindLocation, Schedule, StartTrial, SubmitApplication
      ```
      
      ### Attribution
      - 7-day click / 1-day view (default and recommended)
      - Top 8 events configured in AEM (Aggregated Event Measurement)
      - Domain verification required in Business Manager
      - Financial Products & Services = new Special Ad Category (Jan 2025)
      
      ---
      
      ## TikTok Ads Conversion Tracking
      
      ### Required Stack
      ```
      1. TikTok Pixel → base code + standard events on all pages
      2. Events API → server-side event forwarding
      3. ttclid Passback → capture from URL params, send with events
      4. Advanced Matching → hashed email/phone
      ```
      
      ### Key Difference: ttclid
      - TikTok Click ID (ttclid) comes in landing page URL parameters
      - MUST be captured and stored on first page load
      - MUST be sent back with all conversion events
      - Without ttclid: attribution breaks for many conversions
      
      ### Learning Phase
      - ~50 conversions in 7 days to exit learning
      - Budget ≥50× target CPA per ad group (provides sufficient learning room)
      
      ---
      
      ## LinkedIn Ads Conversion Tracking
      
      ### Required Stack
      ```
      1. LinkedIn Insight Tag → all pages
      2. Conversions API (CAPI) → server-side events (launched 2025)
      3. Offline Conversion Import → CRM data (opportunity, deal closed)
      ```
      
      ### Best Practice: Track Full Funnel
      ```
      Stage 1: Lead (form submit, content download)
      Stage 2: MQL (marketing qualified)
      Stage 3: SQL (sales qualified)
      Stage 4: Opportunity Created
      Stage 5: Deal Closed-Won
      ```
      - Import offline conversions within 90 days of click
      - Use for lead quality optimization (bid for SQLs not just leads)
      - Lead Gen Forms: 13% CVR (3.25× landing pages) but lower SQL rates
      
      ### Attribution
      - 30-day click / 7-day view window
      - Last touch model default
      
      ---
      
      ## Microsoft Ads Conversion Tracking
      
      ### Required Stack
      ```
      1. UET (Universal Event Tracking) tag → all pages
      2. Enhanced Conversions → improved matching
      3. Offline Conversion Import → CRM integration
      4. Auto-tagging (MSCLKID) → ensure CMS doesn't strip
      ```
      
      ### Import Validation
      - If importing from Google: verify conversion goals transferred
      - Google-imported goals often break during import
      - Always validate conversion tracking after import
      
      ---
      
      ## Cross-Platform Tracking Health Audit
      
      ### Critical Checks (Run for All Platforms)
      
      | Check | Severity | Pass Criteria |
      |-------|----------|---------------|
      | Primary conversion action exists | Critical | ≥1 active conversion per platform |
      | Server-side tracking active | Critical | CAPI/Server GTM/Events API configured |
      | Event deduplication | Critical | event_id matching (Meta), no double-counting |
      | Consent Mode v2 (EU) | Critical | Implemented if serving EU/EEA |
      | Enhanced Conversions / EMQ | High | Google: enabled; Meta: EMQ ≥6.0 |
      | Micro vs macro separation | High | Only macro conversions set as Primary |
      | Attribution model appropriate | Medium | DDA (Google), 7d/1d (Meta) |
      | Conversion window matches cycle | Medium | 7d (ecom), 30-90d (B2B), 30d (lead gen) |
      | Offline conversion import | Medium | Active for lead gen / B2B accounts |
      | First-party data utilization | High | Customer Match / Custom Audiences from CRM |
      
      ### Server-Side Tracking Priority
      ```
      IF business_type IN [ecommerce, lead_gen, saas]:
        server_side_tracking = CRITICAL
      
      IF platform == "Meta":
        CAPI = CRITICAL (30-40% data loss without post-iOS 14.5)
      
      IF region == "EU/EEA":
        consent_mode_v2 = CRITICAL (90-95% metric drops without)
      
      server_side_recovery = 10-30% accuracy improvement
      ```
      
    • google-audit.md 13.9 KB
      # Google Ads Audit Checklist
      
      <!-- Updated: 2026-02-11 -->
      <!-- Sources: Google Research PDF 1 (G01-G61), Claude Research (74-item extended), Gemini Research -->
      <!-- Total Checks: 74 | Categories: 7 | See scoring-system.md for weights and algorithm -->
      
      ## Quick Reference
      
      | Category | Weight | Check Count |
      |----------|--------|-------------|
      | Conversion Tracking | 25% | G42-G49 (8 checks) + G-CT1 through G-CT3 (3 extended) |
      | Wasted Spend / Negatives | 20% | G13-G19 (7 checks) + G-WS1 (1 extended) |
      | Account Structure | 15% | G01-G12 (12 checks) |
      | Keywords & Quality Score | 15% | G20-G25 (6 checks) + G-KW1, G-KW2 (2 extended) |
      | Ads & Assets | 15% | G26-G35 (10 checks) + G-AD1, G-AD2 (2 extended) |
      | Settings & Targeting | 10% | G50-G61 (12 checks) |
      | Performance Max | — | G-PM1 through G-PM5 (5 checks, scored within Ads & Assets) |
      
      ---
      
      ## Conversion Tracking (25% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G42 | Conversion actions defined | Critical | ≥1 primary conversion action configured | — | No active conversion actions |
      | G43 | Enhanced conversions enabled | Critical | Enhanced conversions active for primary conversions | Enabled but not verified | Not enabled |
      | G44 | Server-side tracking | High | Server-side GTM or Google Ads API conversion import active | Planned but not deployed | No server-side tracking |
      | G45 | Consent Mode v2 (EU/EEA) | Critical | Consent Mode v2 implemented with Advanced mode | Basic mode only | Not implemented (if serving EU/EEA) |
      | G46 | Conversion window appropriate | Medium | Window matches sales cycle (7d ecom, 30-90d B2B, 30d lead gen) | Default 30d without validation | Window mismatched to sales cycle |
      | G47 | Micro vs macro separation | High | Only macro conversions (Purchase, Lead) set as "Primary" for bidding | Some micro events as Primary | All events including micro (AddToCart, TimeOnSite) as Primary |
      | G48 | Attribution model | Medium | Data-driven attribution (DDA) selected | Last Click (intentional) | Rule-based model still active (deprecated Sep 2025) |
      | G49 | Conversion value assignment | High | Dynamic values for ecom; value rules for lead gen | Static values assigned | No conversion values |
      | G-CT1 | No duplicate counting | Critical | GA4 + Google Ads not double-counting same conversion | — | Both GA4 import and native tag counting same action |
      | G-CT2 | GA4 linked and flowing | High | GA4 property linked, data flowing correctly | Linked but data discrepancies | Not linked |
      | G-CT3 | Google Tag firing | Critical | gtag.js or GTM firing correctly on all pages | Firing on most pages (>90%) | Tag missing or broken on key pages |
      
      ---
      
      ## Wasted Spend / Negatives (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G13 | Search term audit recency | Critical | Search terms reviewed within last 14 days | Reviewed within 30 days | Not reviewed in >30 days |
      | G14 | Negative keyword lists exist | Critical | ≥3 theme-based lists (Competitor, Jobs, Free, Irrelevant) | 1-2 lists exist | No negative keyword lists |
      | G15 | Account-level negatives applied | High | Negative lists applied at account or all-campaign level | Applied to some campaigns only | Not applied |
      | G16 | Wasted spend on irrelevant terms | Critical | <5% of spend on irrelevant search terms (last 30d) | 5-15% on irrelevant terms | >15% on irrelevant terms |
      | G17 | Broad match + smart bidding pairing | Critical | No Broad Match keywords running on Manual CPC | — | Broad Match + Manual CPC active |
      | G18 | Close variant pollution | High | Exact/Phrase match not triggering irrelevant close variants | Minor close variant issues | Significant irrelevant close variant spend |
      | G19 | Search term visibility | Medium | >60% of search term spend is visible (not hidden) | 40-60% visible | <40% visible |
      | G-WS1 | Zero-conversion keywords | High | No keywords with >100 clicks and 0 conversions | 1-3 such keywords | >3 keywords with >100 clicks, 0 conversions |
      
      ---
      
      ## Account Structure (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G01 | Campaign naming convention | Medium | Consistent pattern (e.g., [Brand]_[Type]_[Geo]_[Target]) | Partially consistent | No naming convention |
      | G02 | Ad group naming convention | Medium | Matches campaign naming pattern | Partially consistent | No naming convention |
      | G03 | Single theme ad groups | High | Each ad group targets 1 keyword theme (≤10 keywords) | 11-20 keywords with consistent theme | Ad groups with 20+ unrelated keywords (theme drift) |
      | G04 | Campaign count per objective | High | ≤5 campaigns per funnel stage/objective | 6-8 campaigns per objective | >8 campaigns per objective (fragmented) |
      | G05 | Brand vs Non-Brand separation | Critical | Brand and non-brand in separate campaigns | — | Brand and non-brand mixed in same campaign |
      | G06 | PMax present for eligible accounts | Medium | PMax active for accounts with conversion history | PMax tested but paused | No PMax tested despite eligibility |
      | G07 | Search + PMax overlap | High | Brand exclusions configured in PMax when Search brand campaign exists | Partial brand exclusions | No brand exclusions in PMax alongside brand Search |
      | G08 | Budget allocation matches priority | High | Top-performing campaigns not budget-limited | Minor budget constraints on top performers | Top performers severely budget-limited |
      | G09 | Campaign daily budget vs spend | Medium | No campaigns hitting budget cap before 6PM | 1-2 campaigns hitting cap early | Multiple campaigns capped before noon |
      | G10 | Ad schedule configured | Low | Ad schedule set if business has operating hours | — | No schedule despite clear business hours |
      | G11 | Geographic targeting accuracy | High | "People in" (not "People in or interested in") for local | — | "People in or interested in" for local business |
      | G12 | Network settings | High | Search Partners and Display Network disabled for Search (unless intentional) | Search Partners ON (monitored) | Display Network ON for Search campaign |
      
      ---
      
      ## Keywords & Quality Score (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G20 | Average Quality Score | High | Account-wide impression-weighted QS ≥7 | QS 5-6 | QS ≤4 |
      | G21 | Critical QS keywords | Critical | <10% of keywords with QS ≤3 | 10-25% with QS ≤3 | >25% with QS ≤4 |
      | G22 | Expected CTR component | High | <20% of keywords with "Below Average" expected CTR | 20-35% Below Average | >35% Below Average |
      | G23 | Ad relevance component | High | <20% of keywords with "Below Average" ad relevance | 20-35% Below Average | >35% Below Average |
      | G24 | Landing page experience | High | <15% of keywords with "Below Average" landing page exp. | 15-30% Below Average | >30% Below Average |
      | G25 | Top keyword QS | Medium | Top 20 spend keywords all have QS ≥7 | Some top keywords at QS 5-6 | Top keywords with QS ≤4 |
      | G-KW1 | Zero-impression keywords | Medium | No keywords with 0 impressions in last 30 days | <10% zero-impression | >10% of keywords with 0 impressions |
      | G-KW2 | Keyword-to-ad relevance | High | Headlines contain primary keyword variants | Partial keyword inclusion | No keyword variants in ad headlines |
      
      ---
      
      ## Ads & Assets (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G26 | RSA per ad group | High | ≥1 RSA per ad group (≥2 recommended) | 1 RSA per ad group | Ad groups without any RSA |
      | G27 | RSA headline count | High | ≥8 unique headlines per RSA (ideal: 12-15) | 3-7 headlines | <3 headlines |
      | G28 | RSA description count | Medium | ≥3 descriptions per RSA (ideal: 4) | 2 descriptions | <2 descriptions |
      | G29 | RSA Ad Strength | High | All RSAs "Good" or "Excellent" | Some "Average" | Any RSA with "Poor" Ad Strength |
      | G30 | RSA pinning strategy | Medium | Strategic pinning (1-2 positions, 2-3 variants each) | Over-pinned (all positions) | — |
      | G31 | PMax asset group density | Critical | ≥20 images, ≥5 logos, ≥5 videos per group (maximum density) | 5-19 images, 1-4 logos, or 1-4 videos | <5 images OR 0 logos OR 0 video |
      | G32 | PMax video assets present | High | Native video in all formats (16:9, 1:1, 9:16) | 1-2 formats only | No native video (auto-generated only) |
      | G33 | PMax asset group count | Medium | ≥2 asset groups per PMax (intent-segmented) | 1 asset group | — |
      | G34 | PMax final URL expansion | High | Configured intentionally (ON for discovery, OFF for control) | — | Default ON without review |
      | G35 | Ad copy relevance to keywords | High | Headlines contain primary keyword variants | Partial keyword inclusion | No keyword relevance in headlines |
      | G-AD1 | Ad freshness | Medium | New ad copy tested within last 90 days | — | No new ads in >90 days |
      | G-AD2 | CTR vs industry benchmark | High | CTR ≥ industry average | CTR 50-100% of industry average | CTR <50% of industry average |
      
      ---
      
      ## Settings & Targeting (10% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G50 | Sitelink extensions | High | ≥4 sitelinks per campaign | 1-3 sitelinks | No sitelinks |
      | G51 | Callout extensions | Medium | ≥4 callouts per campaign | 1-3 callouts | No callouts |
      | G52 | Structured snippets | Medium | ≥1 structured snippet set | — | No structured snippets |
      | G53 | Image extensions | Medium | Image extensions active for search campaigns | — | No image extensions |
      | G54 | Call extensions (if applicable) | Medium | Call extensions with call tracking for phone-based businesses | Call extension without tracking | No call extension for phone-based business |
      | G55 | Lead form extensions | Low | Lead form tested for lead gen accounts | — | Not tested |
      | G56 | Audience segments applied | High | Remarketing + in-market audiences in Observation mode | Some audiences applied | No audience signals |
      | G57 | Customer Match lists | High | Customer Match list uploaded, refreshed <30 days | List >30 days old | No Customer Match lists |
      | G58 | Placement exclusions | High | Account-level placement exclusions (games, apps, MFA sites) | Campaign-level only | No placement exclusions |
      | G59 | Landing page mobile speed | High | Mobile LCP <2.5s (ideal <2.0s) | LCP 2.5-4.0s | LCP >4.0s |
      | G60 | Landing page relevance | High | Landing page H1/title matches ad group theme | Partial relevance | No relevance to ad group |
      | G61 | Landing page schema markup | Medium | Product/FAQ/Service schema present | — | No schema markup |
      
      ---
      
      ## Performance Max Extended (scored within Ads & Assets)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G-PM1 | Audience signals configured | High | Custom audience signals per asset group | Generic signals only | No audience signals |
      | G-PM2 | PMax Ad Strength | High | "Good" or "Excellent" | "Average" | "Poor" |
      | G-PM3 | Brand cannibalization | High | <15% of PMax conversions from brand terms | 15-30% from brand terms | >30% from brand terms |
      | G-PM4 | Search themes | Medium | Search themes configured (up to 50 per asset group) | <5 search themes | No search themes |
      | G-PM5 | Negative keywords | High | Brand + irrelevant negatives applied (up to 10,000) | Some negatives applied | No negative keywords in PMax |
      
      ---
      
      ## Context Notes
      
      - **ECPC deprecation (March 2025)**: Enhanced CPC is no longer available for new campaigns. Existing ECPC campaigns should migrate to Target CPA, Target ROAS, or Maximize Conversions.
      - **Call Campaigns sunset (Feb 2026)**: Google stopped allowing creation of new Call campaigns in February 2026; existing Call campaigns continue serving until February 2027. Migrate to Search campaigns with call assets (call extensions, call-only ad format) before the serving deadline.
      - **Power Pack framework**: Google recommends running PMax + Demand Gen + AI Max for Search as a unified campaign stack for maximum coverage across all inventory.
      - **AI Max for Search (2025)**: Extends broad match and automated creative to Search campaigns. Evaluate adoption if account has sufficient conversion data.
      
      ---
      
      ## Bidding & Budget (scored within Settings & Targeting)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | G36 | Smart bidding strategy active | High | All campaigns with ≥15 conv/30d use automated bidding | Partially automated | Manual CPC on campaigns with sufficient data |
      | G37 | Target CPA/ROAS reasonableness | Critical | Targets within 20% of historical performance | Targets 20-50% off historical | Target CPA <50% of actual CPA |
      | G38 | Learning phase status | High | <25% of campaigns in "Learning" or "Learning Limited" | 25-40% in learning | >40% in learning |
      | G39 | Budget constrained campaigns | High | Top performers show "Eligible" not "Limited by Budget" | Minor budget limitation | Top performers severely budget-limited |
      | G40 | Manual CPC justification | Medium | Manual CPC only on campaigns with <15 conv/month | Manual CPC with 15-30 conv/month | Manual CPC with >30 conv/month |
      | G41 | Portfolio bid strategies | Medium | Low-volume campaigns grouped into portfolios | — | Multiple <15 conv campaigns running independently |
      
      ---
      
      ## Quick Wins (Google)
      
      Items flagged as Quick Win when severity is Critical or High AND fix takes <15 minutes:
      
      | Check | Fix | Time |
      |-------|-----|------|
      | G43 — Enhanced conversions | Enable in Google Ads conversion settings | 5 min |
      | G11 — Location targeting | Switch to "People in" your targeted locations | 2 min |
      | G14 — Negative keyword lists | Create initial themed negative lists | 10 min |
      | G17 — Broad match + Manual CPC | Switch to Smart Bidding or Exact Match | 5 min |
      | G12 — Network settings | Disable Display Network on Search campaigns | 2 min |
      | G05 — Brand separation | Split brand keywords into separate campaign | 10 min |
      | G50 — Sitelink extensions | Add 4+ sitelinks to campaigns | 10 min |
      
    • linkedin-audit.md 6.6 KB
      # LinkedIn Ads Audit Checklist
      
      <!-- Updated: 2026-02-11 -->
      <!-- Sources: Google Research PDF 1 (L01-L25), Claude Research, Gemini Research -->
      <!-- Total Checks: 25 | Categories: 5 | See scoring-system.md for weights and algorithm -->
      
      ## Quick Reference
      
      | Category | Weight | Check Count |
      |----------|--------|-------------|
      | Technical Setup | 25% | L01-L02 (2 checks) |
      | Audience Quality | 25% | L03-L09 (7 checks) |
      | Creative & Formats | 20% | L10-L13 (4 checks) |
      | Lead Gen Forms | 15% | L14-L15 (2 checks) |
      | Bidding & Budget | 15% | L16-L17 (2 checks) |
      | Structure & Performance | — | L18-L25 (8 checks, scored across categories) |
      
      ---
      
      ## Technical Setup (25% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L01 | Insight Tag installed | Critical | LinkedIn Insight Tag firing on all pages | Firing on most pages (>90%) | Tag not installed or broken |
      | L02 | Conversions API (CAPI) | High | Server-side conversion tracking active (launched 2025) | Planned but not deployed | No server-side tracking |
      
      ---
      
      ## Audience Quality (25% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L03 | Job title targeting precision | High | Specific job titles matching ICP (not just functions) | Broad function targeting only | No job title targeting |
      | L04 | Company size filtering | Medium | Company size matches ICP | Includes all sizes | — |
      | L05 | Seniority level targeting | High | Seniority appropriate for offer (C-suite for enterprise, Manager for mid-market) | Broad seniority targeting | Mismatched seniority level |
      | L06 | Matched Audiences | High | Website retargeting + contact list audiences active | One type active | No matched audiences |
      | L07 | ABM company lists | Medium | Target company lists uploaded (up to 300,000) for ABM | Partial list uploaded | No ABM lists for enterprise campaigns |
      | L08 | Audience expansion setting | Medium | OFF for precise targeting, ON for scale (intentional) | — | Default ON without review |
      | L09 | Predictive audiences | Medium | Predictive audiences tested (replaced Lookalikes Feb 2024) | — | Not tested for eligible campaigns |
      
      ---
      
      ## Creative & Formats (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L10 | Thought Leader Ads (TLAs) | High | TLAs active, receiving ≥30% of budget for B2B | TLAs tested but <30% budget | No TLAs (CPC $2.29-4.14 vs $13.23 standard) |
      | L11 | Ad format diversity | High | ≥2 formats tested (single image, video, document, carousel) | 1 format only | — |
      | L12 | Video ads present | Medium | Video ads tested | — | No video tested |
      | L13 | Creative refresh cadence | Medium | Creative refreshed every 4-6 weeks | Refreshed every 6-10 weeks | Same creative >10 weeks |
      
      ---
      
      ## Lead Gen Forms (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L14 | Lead Gen Form optimization | High | ≤5 fields (reduce friction); 13% CVR benchmark | 6-8 fields | >8 fields (high friction) |
      | L15 | Lead Gen Form CRM integration | High | Form synced to CRM in real-time | Synced within 24hrs | Manual CSV download only |
      
      ---
      
      ## Bidding & Budget (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L16 | Bid strategy appropriate | High | CPS for Message Ads; Maximum Delivery or Manual for Sponsored Content | — | Manual CPC without experience to manage |
      | L17 | Budget sufficiency | High | Daily budget ≥$50 for Sponsored Content | $25-$50/day | <$25/day ($10 minimum, insufficient for learning) |
      
      ---
      
      ## Structure & Performance (scored across categories)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | L18 | Campaign objective alignment | High | Objective matches funnel stage | — | Objective mismatched to goal |
      | L19 | A/B testing active | Medium | Active A/B test on creative or audience | Test planned | No testing |
      | L20 | Frequency monitoring | High | Message frequency ≤1 per 30-45 days per user | 1 per 20-30 days | >1 per 20 days (inbox fatigue) |
      | L21 | CTR benchmark | High | Sponsored Content CTR ≥0.44% | CTR 0.30-0.44% | CTR <0.30% |
      | L22 | CPC benchmark | Medium | CPC within industry benchmark ($5-7 avg, senior $6.40+) | CPC 20-50% above benchmark | CPC >50% above benchmark |
      | L23 | Lead quality tracking | High | Lead-to-opportunity rate tracked (not just CPL) | CPL tracked only | No lead quality metrics |
      | L24 | Conversion tracking attribution | Medium | 30-day click / 7-day view window configured | Default window without review | Attribution not configured |
      | L25 | Demographics report review | Medium | Job title and company breakdown reviewed monthly | Reviewed quarterly | Never reviewed |
      
      ---
      
      ## Quick Wins (LinkedIn)
      
      | Check | Fix | Time |
      |-------|-----|------|
      | L01 — Insight Tag | Install/verify Insight Tag on all pages | 10 min |
      | L10 — Thought Leader Ads | Create TLA using employee organic posts | 10 min |
      | L14 — Lead Gen Form fields | Reduce form to ≤5 fields | 5 min |
      | L08 — Audience expansion | Review and set intentionally (OFF for precision) | 2 min |
      | L20 — Message frequency | Set frequency cap to 1 per 30-45 days | 2 min |
      | L24 — Attribution window | Configure 30-day click / 7-day view | 2 min |
      
      ---
      
      ## Context Notes
      
      - **Connected TV Ads (2025)**: LinkedIn extended reach to CTV inventory via partnerships, allowing B2B brand campaigns on streaming platforms.
      - **BrandLink (2025)**: Premium video placement alongside trusted publisher content on LinkedIn. Ideal for awareness-stage B2B campaigns.
      - **Live Event Ads (2025)**: Sponsored LinkedIn Live events with built-in registration and reminder flows. Effective for webinar-driven lead gen.
      - **Accelerate campaigns**: LinkedIn's AI-optimized campaign type delivers 42% lower CPA and 21% lower CPL on average. Recommended for advertisers with sufficient conversion history.
      
      ---
      
      ## LinkedIn-Specific Context
      
      | Fact | Value |
      |------|-------|
      | Minimum audience for delivery | 500 members |
      | Recommended audience size | 50,000-300,000 |
      | Predictive Audiences seed | 300+ members |
      | Company list upload limit | 300,000 |
      | Lookalike audiences | Discontinued Feb 29, 2024 |
      | Lead Gen Form CVR benchmark | 13% (3.25x landing pages) |
      | B2B ROAS benchmark | 113% ($1.13 per $1 spent) |
      | Accelerate campaigns | 42% lower CPA, 21% lower CPL |
      | TLA CPC advantage | $2.29-4.14 vs $13.23 standard |
      | Campaign hierarchy (Oct 2025) | "Campaign Groups" → "Campaigns"; "Campaigns" → "Ad Sets" |
      
    • meta-audit.md 9.4 KB
      # Meta Ads Audit Checklist
      
      <!-- Updated: 2026-02-11 -->
      <!-- Sources: Google Research PDF 1 (M01-M40), Claude Research (42-item extended), Gemini Research -->
      <!-- Total Checks: 46 | Categories: 4 | See scoring-system.md for weights and algorithm -->
      
      ## Quick Reference
      
      | Category | Weight | Check Count |
      |----------|--------|-------------|
      | Pixel / CAPI Health | 30% | M01-M10 (10 checks) |
      | Creative (Diversity & Fatigue) | 30% | M25-M32 (8 checks) + M-CR1 through M-CR4 (4 extended) |
      | Account Structure | 20% | M11-M18 + M33-M40 (16 checks) + M-ST1, M-ST2 (2 extended) |
      | Audience & Targeting | 20% | M19-M24 (6 checks) |
      
      ---
      
      ## Pixel / CAPI Health (30% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | M01 | Meta Pixel installed | Critical | Pixel firing on all pages | Firing on most pages (>90%) | Pixel not firing |
      | M02 | Conversions API (CAPI) active | Critical | Server-side events sending alongside pixel | CAPI planned but not deployed | No CAPI (30-40% data loss post-iOS 14.5) |
      | M03 | Event deduplication | Critical | event_id matching between pixel and CAPI events; ≥90% dedup rate | event_id present but <90% dedup rate | Missing event_id (double-counting) |
      | M04 | Event Match Quality (EMQ) | Critical | EMQ ≥8.0 for Purchase event | EMQ 6.0-7.9 | EMQ <6.0 |
      | M05 | Domain verification | High | Business domain verified in Business Manager | — | Domain not verified |
      | M06 | Aggregated Event Measurement (AEM) | High | Top 8 events configured and prioritized correctly | Events configured but not prioritized | AEM not configured |
      | M07 | Standard events vs custom | High | Using standard events (Purchase, AddToCart, Lead, etc.) | Mix of standard and custom | Custom events replacing standard events |
      | M08 | CAPI Gateway | Medium | CAPI Gateway deployed for simplified server-side | Direct CAPI integration active | — |
      | M09 | iOS attribution window | High | 7-day click / 1-day view configured | 1-day click only | Attribution not configured |
      | M10 | Data freshness | Medium | Events firing in real-time (no >1hr lag in Events Manager) | <4hr lag | >4hr lag or intermittent firing |
      
      ---
      
      ## Creative — Diversity & Fatigue (30% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | M25 | Creative format diversity | Critical | ≥3 formats active (static image, video, carousel) | 2 formats | Only 1 format used |
      | M26 | Creative volume per ad set | High | ≥5 creatives per ad set (ideal: 5-8 for Andromeda) | 3-4 creatives | <3 creatives per ad set |
      | M27 | Video aspect ratios | High | 9:16 vertical video present for Reels/Stories | Only 1:1 or 4:5 video | No video assets |
      | M28 | Creative fatigue detection | Critical | No creatives with CTR drop >20% over 14 days while active | CTR drop 10-20% | CTR drop >20% + frequency >3 (fatigue confirmed) |
      | M29 | Hook rate (video) | High | Video ads: <50% skip rate in first 3 seconds | 50-70% skip rate | >70% skip rate in first 3s |
      | M30 | Social proof utilization | Medium | Top organic posts boosted as partnership/Spark ads | Some organic boosting | No organic content leveraged |
      | M31 | UGC / social-native content | High | ≥30% of creative assets are UGC or social-native | 10-30% UGC content | <10% UGC (all polished/corporate) |
      | M32 | Advantage+ Creative | Medium | Advantage+ enhancements enabled (test vs control) | — | Not tested |
      | M-CR1 | Creative freshness | High | New creative tested within last 30 days | New creative 30-60 days ago | No new creative in >60 days |
      | M-CR2 | Frequency — Prospecting (ad set) | High | Ad set frequency <3.0 in last 7 days | Frequency 3.0-5.0 | Frequency >5.0 (audience exhausted) |
      | M-CR3 | Frequency — Retargeting | Medium | Ad set frequency <8.0 in last 7 days | Frequency 8.0-12.0 | Frequency >12.0 |
      | M-CR4 | CTR benchmark | High | CTR ≥1.0% | CTR 0.5-1.0% | CTR <0.5% |
      
      ---
      
      ## Account Structure (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | M11 | Campaign count | High | ≤5 active campaigns per country/funnel stage | 6-8 campaigns per segment | >8 campaigns (over-fragmented) |
      | M12 | CBO vs ABO appropriateness | High | CBO for >$500/day; ABO for testing <$100/day | Mismatched but functional | CBO on <$100/day OR ABO on >$500/day |
      | M13 | Learning phase status | Critical | <30% of ad sets in "Learning Limited" | 30-50% Learning Limited | >50% ad sets "Learning Limited" |
      | M14 | Learning phase resets | High | No unnecessary edits during learning phase | 1-2 minor resets | Frequent resets from edits during learning |
      | M15 | Advantage+ Sales campaign | Medium | ASC active for e-commerce with catalog | ASC tested but paused | Not tested despite eligible catalog |
      | M16 | Ad set consolidation | High | No overlapping ad sets targeting same audience | Minor overlap (<20%) | Significant audience overlap (>30%) |
      | M17 | Budget distribution | High | All ad sets getting ≥$10/day | Some ad sets $5-$10/day | Ad sets getting <$5/day |
      | M18 | Campaign objective alignment | High | Objective matches actual business goal | — | Objective mismatched (e.g., Traffic for Sales) |
      | M33 | Advantage+ Placements | Medium | Advantage+ Placements enabled (unless exclusion needed) | Manual placements (justified) | Manual placements limiting delivery without reason |
      | M34 | Placement performance review | Medium | Breakdown reviewed monthly; underperformers excluded | Reviewed quarterly | Never reviewed |
      | M35 | Attribution setting | High | 7-day click / 1-day view attribution | 1-day click only | Attribution not configured |
      | M36 | Bid strategy appropriateness | High | Cost Cap for margin protection; Lowest Cost for volume | — | Bid Cap set below historical CPA |
      | M37 | Frequency cap monitoring (campaign) | High | Campaign-level prospecting frequency <4.0 (7-day) | Frequency 4.0-6.0 | Frequency >6.0 |
      | M38 | Breakdown reporting | Medium | Age, gender, placement, platform reviewed monthly | Reviewed quarterly | Never reviewed |
      | M39 | UTM parameters | Medium | UTM parameters on all ad URLs for GA4 attribution | UTMs on some ads | No UTM parameters |
      | M40 | A/B testing active | Medium | At least 1 active A/B test (Experiments) | Test planned | No testing infrastructure |
      | M-ST1 | Budget adequacy | High | Daily budget ≥5× target CPA per ad set | Budget 2-5× CPA | Budget <2× target CPA |
      | M-ST2 | Budget utilization | Medium | >80% of daily budget being utilized | 60-80% utilization | <60% utilization |
      
      ---
      
      ## Audience & Targeting (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | M19 | Audience overlap | High | <20% overlap between active ad sets | 20-40% overlap | >40% overlap between ad sets |
      | M20 | Custom Audience freshness | High | Website Custom Audiences refreshed within 180 days | 180-365 days old | >365 days old or not created |
      | M21 | Lookalike source quality | Medium | Lookalike source ≥1,000 users from high-value events | 500-1,000 users | <500 users or low-value source |
      | M22 | Advantage+ Audience testing | Medium | Advantage+ Audience tested vs manual | — | Not tested |
      | M23 | Exclusion audiences | High | Purchasers/converters excluded from prospecting | Partial exclusions | No purchaser exclusions from prospecting |
      | M24 | First-party data utilization | High | Customer list uploaded for Custom Audience + Lookalike | List uploaded but not refreshed | No first-party data uploaded |
      
      ---
      
      ## Context Notes
      
      - **Detailed targeting exclusions removal (2025-2026)**: Meta phased out detailed targeting exclusions starting March 2025, with full removal by January 2026. Advertisers must now use Custom Audience exclusions or Advantage+ Audience instead.
      - **Flexible Ads (2024)**: Format launched mid-2024 that automatically optimizes creative elements (headline, image, video) per placement. Evaluate adoption alongside Advantage+ Creative enhancements.
      - **Financial Products Special Ad Category (Jan 2025)**: Financial products (loans, insurance, credit cards, investment services) are now enforced as a Special Ad Category with the same targeting restrictions as Housing/Employment/Credit.
      
      ---
      
      ## Quick Wins (Meta)
      
      | Check | Fix | Time |
      |-------|-----|------|
      | M02 — CAPI setup | Deploy via CAPI Gateway (simplified) or direct integration | 15 min (Gateway) |
      | M05 — Domain verification | Verify domain in Business Manager | 5 min |
      | M09 — Attribution window | Set to 7-day click / 1-day view in ad set settings | 2 min |
      | M23 — Exclusion audiences | Create Custom Audience of purchasers, exclude from prospecting | 10 min |
      | M25 — Format diversity | Add video or carousel to single-image-only ad sets | 15 min |
      | M39 — UTM parameters | Add UTM template at campaign level | 5 min |
      | M35 — Attribution setting | Switch from 1-day click to 7-day click / 1-day view | 2 min |
      
      ---
      
      ## Special Ad Categories Compliance
      
      If running ads in restricted categories, these ADDITIONAL checks apply:
      
      | Category | Requirement | Enforcement |
      |----------|-------------|-------------|
      | Housing | No ZIP code targeting, age 18-65+ only, no Lookalike | Campaign disapproval |
      | Employment | Same as Housing | Campaign disapproval |
      | Credit | Same as Housing | Campaign disapproval |
      | Financial Products | New Jan 2025 — enforced as Special Category | Campaign disapproval |
      
      Must declare Special Ad Category BEFORE campaign creation. See `compliance.md` for full details.
      
    • microsoft-audit.md 7.1 KB
      # Microsoft Ads Audit Checklist
      
      <!-- Updated: 2026-02-11 -->
      <!-- Sources: Google Research PDF 1 (MS01-MS20), Claude Research, Gemini Research -->
      <!-- Total Checks: 20 | Categories: 5 | See scoring-system.md for weights and algorithm -->
      
      ## Quick Reference
      
      | Category | Weight | Check Count |
      |----------|--------|-------------|
      | Technical Setup | 25% | MS01-MS03 (3 checks) |
      | Syndication & Bidding | 20% | MS04-MS07 (4 checks) |
      | Structure & Audience | 20% | MS08-MS10 (3 checks) |
      | Creative & Extensions | 20% | MS11-MS13 + MS19-MS20 (5 checks) |
      | Settings & Performance | 15% | MS14-MS18 (5 checks) |
      
      ---
      
      ## Technical Setup (25% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | MS01 | UET tag installed | Critical | Universal Event Tracking tag firing on all pages | Firing on most pages (>90%) | UET tag not installed or broken |
      | MS02 | Enhanced conversions | High | Enhanced conversions enabled for improved matching | — | Not enabled |
      | MS03 | Google Ads import validation | High | If imported: all settings verified (URLs, extensions, bids) | Minor discrepancies found | Import errors not resolved (broken URLs, missing goals) |
      
      ### Import Validation Critical Note
      Google Ads imports are the most common Microsoft Ads setup method. Common import issues:
      - Conversion goals often break during import
      - Tracking templates may not transfer
      - Extensions may be partially imported
      - Bid adjustments may not match
      - ALWAYS validate conversion tracking after import
      
      ---
      
      ## Syndication & Bidding (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | MS04 | Brand syndication control | Critical | Brand campaigns excluded from syndicated partners OR low-performers excluded | Partners enabled, monitored regularly | Brand campaigns on syndicated partners, never reviewed (massive budget waste risk) |
      | MS05 | Audience Network settings | Medium | Audience Network enabled only if testing intentionally | — | Audience Network ON by default without review |
      | MS06 | Bid strategy alignment | High | Strategy matches goal + conversion volume; targets 20-35% lower than Google | Strategy matches but targets not adjusted for Bing | Mismatched strategy for conversion volume |
      | MS07 | Target New Customers (PMax) | Medium | "Target New Customers" enabled for growth campaigns (Beta 2026) | — | Not tested for eligible PMax campaigns |
      
      ---
      
      ## Structure & Audience (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | MS08 | Campaign structure | High | Mirrors Google structure (if imported) or follows best practices | Minor structural issues | Disorganized structure, no naming convention |
      | MS09 | Budget allocation | Medium | Budget proportional to Bing search volume (typically 20-30% of Google) | Slightly over/under-allocated | Budget >50% of Google budget (over-investment) |
      | MS10 | LinkedIn profile targeting | High | LinkedIn targeting utilized for B2B (company, industry, job function) | Partial LinkedIn targeting | No LinkedIn targeting for B2B campaigns (unique advantage missed) |
      
      ---
      
      ## Creative & Extensions (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | MS11 | RSA asset count | High | ≥8 headlines, ≥3 descriptions per RSA | 3-7 headlines, 2 descriptions | <3 headlines (minimum) |
      | MS12 | Multimedia Ads | Medium | Multimedia Ads tested (unique rich visual format) | — | Not tested |
      | MS13 | Ad copy uniqueness | Medium | Ad copy optimized for Bing demographics (older, affluent, educated) | Same copy as Google, untested | — |
      | MS19 | Action Extension | Medium | Action Extension utilized (unique to Microsoft) | — | Not tested |
      | MS20 | Filter Link Extension | Medium | Filter Link Extension tested for product/service categories | — | Not tested |
      
      ### Microsoft-Unique Formats
      These extensions are ONLY available on Microsoft Ads:
      - **Action Extension**: Predefined action buttons (clickable CTAs)
      - **Filter Link Extension**: Category-based deep links (product filters)
      - **Multimedia Ads**: Rich visual search ads (image + headline + description)
      - **Review Extension**: Third-party review quotes in ads
      
      ---
      
      ## Settings & Performance (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | MS14 | Copilot placement | Medium | Copilot chat placement enabled for PMax campaigns | — | Not enabled (73% higher CTR opportunity) |
      | MS15 | Conversion goals | High | Goals configured natively (not relying on Google-imported goals) | Imported goals verified and working | Imported goals not verified |
      | MS16 | CPC vs Google comparison | Medium | Microsoft CPC 20-40% lower than Google for same keywords | CPC within 0-20% of Google | CPC equal to or higher than Google |
      | MS17 | Conversion rate comparison | Medium | Microsoft CVR comparable to Google | CVR 25-50% lower | CVR >50% lower than Google |
      | MS18 | Impression share | Medium | IS tracked for brand and top non-brand terms | Partially tracked | Not tracked |
      
      ---
      
      ## Quick Wins (Microsoft)
      
      | Check | Fix | Time |
      |-------|-----|------|
      | MS10 — LinkedIn targeting | Enable LinkedIn profile targeting for B2B campaigns | 5 min |
      | MS14 — Copilot placement | Enable Copilot chat placement in PMax settings | 2 min |
      | MS04 — Partner network | Review syndicated partner performance, exclude low-performers | 10 min |
      | MS19 — Action Extension | Add Action Extension to campaigns | 5 min |
      | MS12 — Multimedia Ads | Create Multimedia Ad from existing assets | 10 min |
      | MS03 — Import validation | Verify conversion goals and tracking post-import | 10 min |
      
      ---
      
      ## Microsoft-Specific Context
      
      | Fact | Value |
      |------|-------|
      | Average CPC | $1.20-$1.55 (20-35% discount vs Google) |
      | Average CTR | 2.83-3.1% (higher than Google's ~2.0%) |
      | US desktop share | 16.75-17.58%; with partners ~25% |
      | Copilot CTR lift | 73% higher than traditional search |
      | Copilot CVR lift | 16% stronger conversion rates |
      | Copilot journey | 33% shorter customer journeys |
      | Purchase intent | 194% more likely to purchase in Copilot |
      | Copilot Checkout | Launched Jan 2026 (in-conversation commerce) |
      | 37% of advertisers | Report higher ROAS vs Google |
      | Bing users click paid ads | 25% more often than Google users |
      | Audience skew | Affluent (~50% top 25% HHI), educated (34% degrees), older (45-64: 38%) |
      | Import options | Quick Import, Smart Import, Advanced Import (Feb 2025) |
      | API version | v13 stable, SOAP-based with REST emerging |
      
      ---
      
      ## Copilot Integration (2026)
      
      Microsoft's Copilot represents the biggest unique advantage:
      
      1. **Copilot Chat Placement** — Ads appear within conversational search
      2. **Copilot Checkout** (Jan 2026) — Full commerce within conversations
      3. **Higher engagement** — 73% CTR lift, 16% CVR lift, 33% shorter journeys
      4. **Shopping intent** — Users 194% more likely to purchase
      5. **Launch partners** — Urban Outfitters, Etsy, Ashley Furniture
      
      Ensure PMax campaigns have Copilot placement enabled to capture this growing channel.
      
    • platform-specs.md 8.4 KB
      # Platform Creative Specifications
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Google Research PDF 3, Claude Research -->
      
      ## Google Ads
      
      ### Responsive Search Ads (RSA)
      | Component | Min | Max | Char Limit |
      |-----------|-----|-----|------------|
      | Headlines | 3 | 15 | 30 chars each |
      | Descriptions | 2 | 4 | 90 chars each |
      | Display Paths | — | 2 | 15 chars each |
      | Final URL | 1 | 1 | Required |
      
      Best practice: 8-10 headlines, 2-3 descriptions (Claude), 12-15 for Excellent (Google).
      
      **Pinning Rules:**
      - Pin 1 headline to Position 1 (brand/main keyword)
      - Pin 1 headline to Position 2 (secondary angle)
      - Each pinned position: provide 2-3 variants
      - Leave Position 3 unpinned
      - Never pin all positions (kills Ad Strength)
      
      **Dynamic Insertion:**
      ```
      {KeyWord:Default Text}              # Keyword insertion
      {COUNTDOWN(YYYY/MM/DD HH:MM:SS)}   # Countdown timer
      {LOCATION(City)}                    # Location insertion
      {CUSTOMIZER.attribute:default}      # Ad customizer
      ```
      
      ### Performance Max Asset Groups
      | Asset Type | Spec | Max Per Group |
      |-----------|------|---------------|
      | Marketing Image | 1200×628 (1.91:1) | 20 total |
      | Square Image | 1200×1200 (1:1) | (in 20) |
      | Portrait Image | 960×1200 (4:5) | (in 20) |
      | Logo (landscape) | 1200×300 (4:1) | 5 total |
      | Logo (square) | 1200×1200 (1:1) | (in 5) |
      | Video (landscape) | 1920×1080 (16:9) | 5 total |
      | Video (square) | 1080×1080 (1:1) | (in 5) |
      | Video (vertical) | 1080×1920 (9:16) | 5 vertical |
      | Headlines | 30 chars | 5 |
      | Long Headlines | 90 chars | 5 |
      | Descriptions | 90 chars | 5 |
      | Short Description | 60 chars | 1 |
      | Business Name | 25 chars | 1 |
      
      **Image:** Min 128×128, max 5120×5120, max 5MB, JPG/PNG
      **Video:** Min 10s, rec 60s, min 480p, rec 1080p+, MP4/MOV, max 256MB
      
      ### YouTube Ad Formats
      | Format | Ratio | Resolution | Duration | Skip |
      |--------|-------|-----------|----------|------|
      | Skippable In-Stream | 16:9 | 1920×1080 | 12s-3min (rec 15-30s) | After 5s |
      | Non-Skippable | 16:9 | 1920×1080 | 15-60s (expanded 2025) | No |
      | Bumper | 16:9 | 1920×1080 | ≤6s | No |
      | In-Feed | 16:9 | 1920×1080 | Any | N/A |
      | YouTube Shorts | 9:16 | 1080×1920 | ≤60s | Swipe |
      
      **YouTube Shorts Safe Zone:** Center 1080×1420px. Bottom 480px = UI overlay.
      
      ### Google Extensions / Assets
      | Type | Char Limit | Max Count | Notes |
      |------|-----------|-----------|-------|
      | Sitelink | 25 text, 35 desc ×2 | 20 | Min 4 rec; +3.5% conv with 6 |
      | Callout | 25 chars | 20 | Min 4 rec |
      | Structured Snippet | 25 chars | 2 sets | Predefined headers |
      | Image | 1:1 or 1.91:1 | 20 | Min 1MB |
      | Call | Phone number | 1 | With call tracking |
      | Lead Form | 30 headline, 200 desc | 1 | Privacy URL required |
      | Price | 25 header, 25 desc | 8 items | Min 3 |
      | Promotion | 20 item | 1 | Schedulable |
      
      ### Ad Strength Scoring
      - Headline uniqueness (Levenshtein distance)
      - Keyword inclusion in headlines
      - 3-7 headlines = Poor/Average, 8-10 = Good, 11-15 = Excellent
      - "Excellent" → ~12-15% more conversions (diagnostic, not direct factor)
      
      ---
      
      ## Meta Ads
      
      ### Image Specs
      | Placement | Ratio | Size | Max |
      |-----------|-------|------|-----|
      | Feed (preferred) | 4:5 | 1080×1350 | 30MB |
      | Feed (supported) | 1:1 | 1080×1080 | 30MB |
      | Stories/Reels | 9:16 | 1080×1920 | 30MB |
      | Right Column | 1:1 | 1080×1080 | 30MB |
      | Min width: 600px (1080px rec). No hard 20% text rule but AI penalizes heavy text.
      
      ### Video Specs
      | Placement | Ratio | Resolution | Max Duration | Max Size |
      |-----------|-------|-----------|-------------|----------|
      | Feed | 4:5 (pref) | 1080×1350 | 241 min | 4GB |
      | Feed | 1:1 | 1080×1080 | 241 min | 4GB |
      | Stories | 9:16 | 1080×1920 | 120s | 4GB |
      | Reels | 9:16 | 1080×1920 | 90s (rec 15-30s) | 4GB |
      | In-Stream | 16:9 | 1920×1080 | 15 min | 4GB |
      
      **Reels Safe Zone:** Center 1080×1300px. Bottom 35% (~670px) = CTA, caption, reactions.
      
      ### Text Limits
      | Component | Recommended | Max |
      |-----------|------------|-----|
      | Primary Text | 125 chars | 2200 |
      | Headline | 27-40 chars | — |
      | Description | 20 chars (carousel) | — |
      | Reels Primary | 72 chars | — |
      
      ### Carousel
      - 2-10 cards, all 1:1 (1080×1080)
      - Per card: Headline 40 chars, Description 20 chars
      - Unique URL per card supported
      
      ### Advantage+ Creative Enhancements
      Auto-adjustments when enabled: brightness/contrast, art filters, aspect ratio crops, music addition, text variations, video from static images. Test via A/B split.
      
      ### Quality Rankings
      Three signals: Quality Ranking, Engagement Rate Ranking, Conversion Rate Ranking.
      Rated: Above Average / Average / Below Average (10th, 35th, 55th percentile).
      
      ---
      
      ## TikTok Ads
      
      ### Video Specs
      | Type | Min Resolution | Duration | Max Size | Min Bitrate |
      |------|---------------|----------|----------|-------------|
      | In-Feed (Non-Spark) | 540×960 (9:16) | 5-60s | 500MB | 516kbps |
      | Spark Ads | Organic specs | Organic | N/A | N/A |
      | TopView | 720×1280 (9:16) | 5-60s | 500MB | 2500kbps |
      | Brand Takeover | 720×1280 | 3-5s | 2MB img / 500MB vid | — |
      
      Recommended: 1080×1920, MP4/MOV, H.264, audio required, captions required.
      
      ### TikTok Safe Zone
      ```
      Top:    0-150px   → Status bar, account info
      Right:  0-140px   → Like, comment, share, profile
      Bottom: 0-450px   → Caption, music, CTA, nav bar
      
      SAFE BOX: X:40-940px, Y:150-1470px (900×1320px)
      ```
      All critical text, logos, CTAs MUST be within safe box.
      
      ### Smart+ Specs
      - Up to 30 ad groups per campaign
      - Up to 50 creatives per asset group
      - Symphony AI auto-generates variations
      
      ---
      
      ## LinkedIn Ads
      
      ### Single Image
      | Component | Spec |
      |-----------|------|
      | Image (landscape) | 1200×627 (1.91:1) |
      | Image (square) | 1080×1080 (1:1) — better engagement |
      | Max file | 5MB, PNG/JPG |
      | Intro text | 150 chars rec / 600 max |
      | Headline | 70 chars rec / 200 max |
      | Description | 100 chars (desktop only) |
      | CTA Button | Predefined list |
      
      ### Video
      | Component | Spec |
      |-----------|------|
      | Format | MP4 required |
      | Size | 75KB - 500MB |
      | Duration | 3s - 30min (rec 15-30s) |
      | Resolution | 360p min (720p+ rec) |
      | Aspect Ratios | 16:9 (landscape), 1:1 (square), 9:16 (mobile only) |
      
      ### Document Ads
      - PDF, DOC, DOCX, PPT, PPTX
      - 100MB max, 300 pages max (10-20 rec)
      
      ### Messaging
      | Type | Component | Limit |
      |------|-----------|-------|
      | Message Ad | Subject | 60 chars |
      | Message Ad | Body | 1,500 chars |
      | Message Ad | CTA | 20 chars |
      | Conversation Ad | Intro | 500 chars |
      | Conversation Ad | CTA buttons | 5 max, 25 chars each |
      
      ### Audience Requirements
      - Minimum: 500 members for delivery
      - Recommended: 50,000-300,000
      - Predictive Audiences seed: 300+ members
      - Company list upload: up to 300,000
      
      ---
      
      ## Microsoft Ads
      
      ### RSA (mirrors Google)
      | Component | Limit |
      |-----------|-------|
      | Headlines | 3-15, 30 chars each |
      | Descriptions | 2-4, 90 chars each |
      | Display Paths | 2, 15 chars each |
      
      ### Multimedia Ads (unique)
      | Component | Spec |
      |-----------|------|
      | Image | 1200×628 (1.91:1) |
      | Short Headline | 30 chars |
      | Long Headline | 90 chars |
      | Description | 90 chars |
      | Business Name | 25 chars |
      
      ### Microsoft-Unique Extensions
      | Extension | Description |
      |-----------|-------------|
      | Action Extension | Predefined action buttons |
      | Filter Link Extension | Category-based deep links |
      | Review Extension | Third-party review quotes |
      
      ---
      
      ## Cross-Platform Standards
      
      ### Universal Safe Zone (Vertical Video)
      For content running across TikTok + Reels + Shorts + Stories:
      ```
      Safe intersection: 900×1000px center
      X: 40-940px (900px wide)
      Y: 450-1450px (1000px tall)
      ```
      
      ### Character Normalization
      | Component | Safe Limit | Strictest Platform |
      |-----------|-----------|-------------------|
      | Short headline | 30 chars | Google/Microsoft RSA |
      | Long headline | 70 chars | LinkedIn recommended |
      | Primary description | 90 chars | Google/Microsoft RSA |
      | Short description | 25 chars | Extension callouts |
      
      ### Video Encoding Standard
      | Component | Recommended |
      |-----------|-------------|
      | Video codec | H.264 High Profile |
      | Audio codec | AAC |
      | Audio level | -14 LUFS |
      | Container | MP4 |
      | Frame rate | 30fps |
      | Color space | Rec. 709 |
      | Bitrate (1080p) | 8-12 Mbps |
      
      ### Aspect Ratio Master Chart
      | Ratio | Dimensions | Used By |
      |-------|-----------|---------|
      | 16:9 | 1920×1080 | YouTube, Google Display, LinkedIn Landscape |
      | 9:16 | 1080×1920 | TikTok, Reels, Shorts, Stories |
      | 4:5 | 1080×1350 | Meta Feed (preferred) |
      | 1:1 | 1080×1080 | Meta Feed, LinkedIn, Carousel |
      | 1.91:1 | 1200×628 | Google PMax, LinkedIn Single Image |
      | 4:1 | 1200×300 | Google Logo (landscape) |
      
    • scoring-system.md 5.3 KB
      # Ad Account Audit Scoring System
      
      <!-- Updated: 2026-02-10 -->
      <!-- Sources: Google Research PDF 1, Claude Research, Gemini Research -->
      
      ## Weighted Scoring Algorithm
      
      ```
      S_total = Σ(C_pass × W_sev × W_cat) / Σ(C_total × W_sev × W_cat) × 100
      ```
      
      - `C_pass` = check passed (1) or failed (0); WARNING = 0.5
      - `W_sev` = severity multiplier of the individual check
      - `W_cat` = category weight for that platform
      - Result: 0-100 Health Score
      
      ## Severity Multipliers
      
      | Severity | Multiplier | Criteria |
      |----------|-----------|----------|
      | Critical | 5.0 | Immediate revenue/data loss risk. Remediation urgent. |
      | High | 3.0 | Significant performance drag. Fix within 7 days. |
      | Medium | 1.5 | Optimization opportunity. Fix within 30 days. |
      | Low | 0.5 | Best practice, minor impact. Nice to have. |
      
      ## Scoring Per Check Item
      
      | Result | Points Earned |
      |--------|--------------|
      | PASS | Full severity × category weight |
      | WARNING | 50% of full points |
      | FAIL | 0 points |
      | N/A | Excluded from total possible |
      
      ## Category Weights by Platform
      
      ### Google Ads
      | Category | Weight | Rationale |
      |----------|--------|-----------|
      | Conversion Tracking | 25% | Foundation for all optimization; Enhanced Conv + Consent Mode |
      | Wasted Spend / Negatives | 20% | Direct money leak; search terms, negative lists |
      | Account Structure | 15% | Campaign organization, brand/non-brand separation |
      | Keywords & Quality Score | 15% | QS directly impacts CPC; average QS ≥7 target |
      | Ads & Assets | 15% | RSA strength, PMax asset completeness, extensions |
      | Settings & Targeting | 10% | Location, network, audiences, landing pages |
      
      ### Meta Ads
      | Category | Weight | Rationale |
      |----------|--------|-----------|
      | Pixel / CAPI Health | 30% | 87% of advertisers have poor EMQ; foundational signal |
      | Creative (Diversity & Fatigue) | 30% | Creative = 70% of campaign results per Meta |
      | Account Structure | 20% | Learning phase, CBO/ABO, campaign consolidation |
      | Audience & Targeting | 20% | Overlap, exclusions, Advantage+ testing |
      
      ### LinkedIn Ads
      | Category | Weight | Rationale |
      |----------|--------|-----------|
      | Technical Setup | 25% | Insight Tag + CAPI essential for B2B attribution |
      | Audience Quality | 25% | LinkedIn's targeting precision is its differentiator |
      | Creative & Formats | 20% | TLA + format diversity; video efficiency varies |
      | Lead Gen Forms | 15% | 13% CVR (3.25× landing pages); CRM integration |
      | Bidding & Budget | 15% | High CPCs ($5-$35) require careful management |
      
      ### TikTok Ads
      | Category | Weight | Rationale |
      |----------|--------|-----------|
      | Creative Quality | 30% | Native-feel content is #1 success factor |
      | Technical Setup | 25% | Pixel + Events API + ttclid passback |
      | Bidding & Learning | 20% | 50 conv/week to exit learning; budget sufficiency |
      | Structure & Settings | 15% | Smart+, Search Toggle, Shop integration |
      | Performance | 10% | CTR, CPA, completion rate benchmarks |
      
      ### Microsoft Ads
      | Category | Weight | Rationale |
      |----------|--------|-----------|
      | Technical Setup | 25% | UET tag, import validation, Enhanced Conv |
      | Syndication & Bidding | 20% | Partner network control, Copilot placement |
      | Structure & Audience | 20% | LinkedIn targeting (unique), campaign structure |
      | Creative & Extensions | 20% | Multimedia Ads, Action/Filter Link Extensions (unique) |
      | Settings & Performance | 15% | CPC advantage tracking, conversion rate comparison |
      
      ## Grading Thresholds
      
      | Grade | Score | Label | Action Required |
      |-------|-------|-------|-----------------|
      | A | 90-100 | Excellent | Minor optimizations only |
      | B | 75-89 | Good | Some improvement opportunities |
      | C | 60-74 | Needs Improvement | Notable issues need attention |
      | D | 40-59 | Poor | Significant problems present |
      | F | <40 | Critical | Urgent intervention required |
      
      ## Quick Wins Logic
      
      ```
      IF severity == "Critical" OR severity == "High"
      AND estimated_remediation_time < 15 minutes
      THEN flag as "Quick Win"
      PRIORITY: Quick Wins sorted by (severity × estimated_impact) DESC
      ```
      
      Quick Win examples:
      - Enable Enhanced Conversions (Critical, 5 min)
      - Turn on Search Ads Toggle in TikTok (High, 2 min)
      - Add negative keyword lists (Critical, 10 min)
      - Fix location targeting method (Critical, 2 min)
      - Enable Advantage+ Placements (Medium, 2 min)
      
      ## Weighting Rationale
      
      Category weights are calibrated for paid advertising accounts where conversion tracking infrastructure is the highest-impact factor (25-30% weight across platforms). This differs from generic scoring systems because:
      - Broken tracking invalidates all optimization decisions downstream
      - Creative and targeting quality follow tracking in priority
      - Settings and compliance are important but have lower direct revenue impact
      - Weights sum to 100% per platform, enabling direct cross-platform comparison
      
      The grading thresholds (A=90-100, B=75-89, C=60-74, D=40-59, F=<40) use wider bands than academic-style scoring because ad account health is typically distributed lower — a score of 75+ represents genuinely well-managed accounts.
      
      ---
      
      ## Cross-Platform Aggregate Score
      
      When auditing multiple platforms, calculate per-platform scores then aggregate:
      
      ```
      Aggregate Score = Σ(Platform_Score × Platform_Budget_Share)
      
      Example: Google (82) × 40% + Meta (71) × 35% + LinkedIn (90) × 25%
             = 32.8 + 24.85 + 22.5 = 80.15 → Grade B
      ```
      
    • tiktok-audit.md 7.4 KB
      # TikTok Ads Audit Checklist
      
      <!-- Updated: 2026-02-11 -->
      <!-- Sources: Google Research PDF 1 (T01-T25), Claude Research, Gemini Research -->
      <!-- Total Checks: 25 | Categories: 5 | See scoring-system.md for weights and algorithm -->
      
      ## Quick Reference
      
      | Category | Weight | Check Count |
      |----------|--------|-------------|
      | Creative Quality | 30% | T05-T10 + T20-T25 (12 checks) |
      | Technical Setup | 25% | T01-T02 (2 checks) |
      | Bidding & Learning | 20% | T11-T13 (3 checks) |
      | Structure & Settings | 15% | T03-T04 + T14-T16 (5 checks) |
      | Performance | 10% | T17-T19 (3 checks) |
      
      ---
      
      ## Creative Quality (30% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | T05 | Creative volume | Critical | ≥6 creative assets per ad group | 3-5 creatives | <3 creatives per ad group |
      | T06 | Vertical video format | Critical | All video assets 9:16 (1080x1920) | Mixed ratios with some vertical | No vertical video (landscape only) |
      | T07 | Native-looking content | High | Ads look organic / creator-style (not polished corporate) | Semi-native style | Clearly corporate/polished ads |
      | T08 | Hook strategy | High | First 1-2 seconds have attention-grabbing hook | Decent hook but not optimized | No clear hook in opening |
      | T09 | Creative lifespan | High | No creative active >7 days with declining CTR | 7-14 days with minor decline | >14 days with significant CTR decline |
      | T10 | Spark Ads utilization | High | Spark Ads (creator content) tested and active | Tested but paused | No Spark Ads tested (~3% CTR vs ~2% standard) |
      | T20 | TikTok Shop integration | Medium | Shop catalog connected (for e-commerce) | — | Eligible but not connected |
      | T21 | Video Shopping Ads (VSA) | Medium | VSA tested for product catalog accounts | — | Not tested despite eligible catalog |
      | T22 | Caption SEO | High | Captions include high-intent keywords for search discovery | Some keywords in captions | No keyword optimization in captions |
      | T23 | Sound/music usage | Medium | Trending or engaging audio used | Licensed audio but not trending | Silent ads (TikTok is sound-on platform) |
      | T24 | CTA button | Medium | Appropriate CTA button selected (not default) | — | Default CTA without customization |
      | T25 | Safe zone compliance | High | Key content within safe zone (X:40-940, Y:150-1470) | Minor elements outside safe zone | Key text/CTA in UI overlay zones |
      
      ---
      
      ## Technical Setup (25% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | T01 | TikTok Pixel installed | Critical | Pixel firing on all relevant pages | Firing on most pages (>90%) | Pixel not installed or broken |
      | T02 | Events API + ttclid | High | Server-side events via Events API with ttclid passback | Events API active but no ttclid passback | No server-side tracking |
      
      ### ttclid Critical Note
      The TikTok Click ID (`ttclid`) comes in landing page URL parameters and MUST be:
      1. Captured on first page load
      2. Stored in session/cookie
      3. Sent back with ALL conversion events
      
      Without ttclid, attribution breaks for many conversions. This is TikTok's key technical difference from other platforms.
      
      ---
      
      ## Bidding & Learning (20% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | T11 | Bid strategy | High | Lowest Cost for volume; Cost Cap for efficiency | — | Bid Cap set too aggressively (severe under-delivery) |
      | T12 | Budget sufficiency | High | Daily budget ≥50x target CPA per ad group | 20-49x CPA | <20x CPA per ad group |
      | T13 | Learning phase | High | Ad groups achieving ≥50 conversions/week | 25-50 conversions/week | <25 conversions/week (stuck in learning) |
      
      ### Learning Phase Rules
      - Exit criteria: ~50 conversions in 7 days per ad group
      - Campaign minimum budget: $50/day
      - Ad group minimum budget: $20/day
      - Daily budget should be ≥50x target CPA for sufficient learning room
      - Avoid changes during learning (resets the phase)
      
      ---
      
      ## Structure & Settings (15% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | T03 | Campaign structure | High | Separate campaigns for prospecting vs retargeting | — | Prospecting and retargeting mixed |
      | T04 | Smart+ utilization | Medium | Smart+ campaigns tested with modular automation (per-module: targeting, budget, creative, placement) | — | Not tested (42% adoption, 1.41-1.67 median ROAS; modular since Oct 2025) |
      | T14 | Search Ads Toggle | High | Search Ads Toggle enabled for all campaigns | — | Search Ads Toggle OFF |
      | T15 | Placement selection | Medium | Appropriate placements selected (TikTok, Pangle, etc.) | Default placements without review | — |
      | T16 | Dayparting | Low | Ad schedule aligned with target audience activity | — | No schedule despite clear patterns |
      
      ---
      
      ## Performance (10% weight)
      
      | ID | Check | Severity | Pass | Warning | Fail |
      |----|-------|----------|------|---------|------|
      | T17 | CTR benchmark | High | CTR ≥1.0% for in-feed ads | CTR 0.5-1.0% | CTR <0.5% |
      | T18 | CPA target | High | CPA within target range | CPA 1.5-3x target | CPA >3x target (trigger 3x Kill Rule) |
      | T19 | Video completion rate | Medium | Average video watch time ≥6 seconds | 3-6 seconds | <3 seconds average watch time |
      
      ---
      
      ## Quick Wins (TikTok)
      
      | Check | Fix | Time |
      |-------|-----|------|
      | T14 — Search Ads Toggle | Enable Search Ads Toggle in campaign settings | 2 min |
      | T06 — Vertical video | Convert existing assets to 9:16 format | 10 min |
      | T24 — CTA button | Select appropriate CTA (not default) | 2 min |
      | T10 — Spark Ads | Whitelist top creator/organic content as Spark Ads | 10 min |
      | T22 — Caption SEO | Add high-intent keywords to ad captions | 5 min |
      | T25 — Safe zone | Verify key content within X:40-940, Y:150-1470 | 5 min |
      
      ---
      
      ## TikTok-Specific Context
      
      | Fact | Value |
      |------|-------|
      | Smart+ adoption | 42% of US TikTok performance campaigns (surged from 9% in early 2025) |
      | Smart+ capacity | 30 ad groups/campaign, 50 creatives/asset group |
      | GMV Max | Default for TikTok Shop Ads (July 2025) |
      | TikTok Shop CVR | >10% (vs 0.46-2.4% standard) |
      | CPM advantage | 40-60% cheaper than Meta |
      | Spark Ads CTR | ~3% vs ~2% standard In-Feed |
      | Spark Ads CPA | ~$60 vs ~$100 standard |
      | Engagement rate | 5-16% (far exceeds FB 0.09%, IG 1.22%) |
      | Search Ads | Launched 2025 for Web Conversion + Traffic |
      | Safe zone | X:40-940px, Y:150-1470px (900x1320px usable) |
      | Available markets | 11 countries (US, UK, key Asian/European) |
      
      ---
      
      ## TikTok Safe Zone Diagram
      
      ```
      ┌──────────────────────────────┐
      │  0-150px: Status bar, account│  ← TOP UNSAFE
      ├──────────────────────────────┤
      │                         │    │
      │    SAFE ZONE            │140 │  ← RIGHT: Like, comment,
      │    X: 40-940px          │ px │     share, profile icons
      │    Y: 150-1470px        │    │
      │    (900×1320px)         │    │
      │                         │    │
      ├──────────────────────────────┤
      │  0-450px: Caption, music,    │  ← BOTTOM UNSAFE
      │  CTA, navigation bar         │
      └──────────────────────────────┘
      ```
      
      All critical text, logos, and CTAs MUST be within the safe box.
      
  • research-sources
    • claude-research.md 3.9 KB
      # Claude Deep Research — The Definitive Paid Advertising Reference for 2026
      
      > Source: Claude Deep Research, February 2026
      > Original: ~/Documents/Ads Documentation & Research/
      > 492 lines — Most comprehensive and up-to-date source
      
      ## Key Unique Data Points (Not in Other Sources)
      
      ### Google Ads
      - Average Search CPC now $5.26 (up 5th consecutive year)
      - Search CTR 6.66% (up 3.74% YoY) — WordStream/LocaliQ 16K campaigns
      - Search CVR 7.52% (up for 65% of industries)
      - "Power Pack" framework: PMax + Demand Gen + AI Max (replaces "Power Pair")
      - AI Max for Search: LLM-based text customization + final URL expansion
      - Demand Gen: 3B monthly users, 58% higher ROAS than Video Action Campaigns
      - PMax negative keywords expanded to 10,000 (from 100)
      - Search themes: 50 per asset group
      - Call Campaigns stop new creation Feb 2026, sunset Feb 2027
      - Smart Bidding Exploration: 18% more unique queries, 19% more conversions
      - Customer Match: $50K+ lifetime spend required, 540-day max duration (changed April 2025)
      - DDA mandatory default (Sep 2025), only DDA + Last Click remain
      - Asset Studio with Nano Banana Pro (Nov 2025, Gemini 3): images in <10s with people
      - API v23 released January 27, 2026
      
      ### Meta Ads
      - Advantage+ Shopping renamed to Advantage+ Sales (2025)
      - Advantage+ ROAS $4.52 (22% higher than manual), CPA reduced up to 32%
      - 35% of US retail ad spend on Advantage+, $60B annualized run rate
      - Detailed targeting exclusions removed (March-June 2025, existing stopped Jan 15, 2026)
      - Andromeda: 10,000× more ad variants in parallel
      - Flexible Ads: new 2025 format, auto-tests up to 10 images/videos
      - GEM AI model (Nov 2025): Instagram conversions +5%, Facebook Feed +3%
      - Offline Conversions API deprecated May 2025 → CAPI replaces
      - 87% of advertisers have poor EMQ
      - Global CPC trend: Jan 2026 at $0.85 (24% below prior January)
      
      ### TikTok
      - Smart+ adoption surged 9% → 42% of US TikTok performance campaigns
      - Smart+: up to 30 ad groups/campaign, 50 creatives/asset group
      - GMV Max = default for TikTok Shop Ads (July 2025)
      - TikTok Shop CVR >10% (vs 0.46-2.4% standard)
      - Search Ads launched 2025 for Web Conversion and Traffic
      - CPM 40-60% cheaper than Meta
      
      ### LinkedIn
      - Lookalike audiences discontinued Feb 29, 2024 → Predictive Audiences (300+ seed)
      - Connected TV Ads (US/Canada, 60M+ households)
      - Campaign hierarchy renamed Oct 2025
      - Lead Gen Form CVR 13% (3.25× higher than landing pages)
      - ROAS 113% ($1.13 per $1)
      - Accelerate campaigns: 42% lower CPA, 21% lower CPL
      - Cost per company influenced €154 (25% cheaper than Google, 70% cheaper than Meta for B2B)
      
      ### Microsoft
      - Copilot: 73% higher CTR, 16% stronger CVR, journeys 33% shorter
      - Copilot Checkout launched Jan 2026 (in-conversation commerce)
      - Users 194% more likely to purchase with shopping intent in Copilot
      - CPC $1.20-$1.55 (20-35% discount vs Google)
      - US desktop share 16.75-17.58%, with partners ~25%
      - 37% of advertisers report higher ROAS vs Google
      
      ### Cross-Platform
      - Triple Whale 2025: Median CPA $23.74 (up 12.35%), median ROAS 3.68 (down 10.03%)
      - 82.9% of landing page traffic is mobile
      - Pages loading 1s = 3× higher CVR vs 5s
      - Median landing page CVR 6.6%, top 10% achieve 20%+
      - QS landing page component: 50% CPC discount (high) vs 400% extra CPC (low)
      
      ### Privacy & Compliance
      - Privacy Sandbox officially dead (October 2025)
      - 20 US state privacy laws in effect by Jan 2026
      - Texas AG: $1.4B settlement for tracking violations
      - iOS ATT opt-in: ~35% average (Q2 2025)
      - ~31% of users accept tracking cookies globally
      - Consent Mode v2 enforcement tightened July 2025 (90-95% metric drops without)
      
      ### API Details
      - Google: GAQL query language, v23 Jan 2026, Test/Basic 15K ops/day
      - Meta: v22.0/Marketing v24.0, v25.0 Q1 2026 deprecates legacy ASC/AAC APIs
      - LinkedIn: Versioned monthly (202601), dev access read-only unlimited accounts
      - TikTok: 600 req/min default
      - Microsoft: v13 stable, SOAP-based with REST emerging
      
      ## Full document preserved at original location.
      
    • gemini-research.md 10.2 KB
      # Gemini Deep Research — The State of Paid Advertising 2026
      
      > Source: Gemini Deep Research, February 2026
      > Original file: `~/Downloads/the state of paid advertising 2026.txt`
      > 344 lines, 36 cited sources
      
      ## Executive Summary
      
      The 2026 advertising ecosystem operates under a **signal-based paradigm** — transition from keyword-centric targeting to signal-based intent modeling. Key shifts:
      
      1. **Privacy Sandbox is dead** — Google retired it October 2025 (CMA pressure + performance issues)
      2. **Third-party cookies persist** in Chrome but signal fidelity is degraded
      3. **Server-side integrations (CAPI) are the standard** — pixel-only = vulnerability
      4. **AI Max for Search** — LLMs match landing page content to conversational queries, bypassing keyword matching
      5. **Media Mix Modeling (MMM) renaissance** — Google Meridian, Meta Robyn for budget allocation
      6. **Platform "black boxes" dominate** — PMax, Advantage+, Smart+ are the norm
      
      ---
      
      ## Section 1: Macro-Environment & Privacy
      
      ### Post-Sandbox Reality
      - Privacy Sandbox APIs (Topics, Protected Audience, Attribution Reporting) shut down on Chrome AND Android
      - Third-party cookies remain but with browser-level protections + iOS ATT
      - **Audit implication**: Penalize accounts lacking dual-tagging (Pixel + Server-Side)
      - Must verify Enhanced Conversions (Google) and EMQ (Meta)
      
      ### AI Max & Generative Search
      - Ads now appear in AI Overviews (AIO) via "AI Max"
      - Landing pages need machine-interpretability: Schema markup (FAQPage, Product), semantic hierarchy
      - Keyword density less relevant than structured data
      
      ### MMM Renaissance
      - Hybrid strategy: MTA for tactical optimization + MMM for strategic budget setting
      - Platform-reported ROAS often overclaims — weight down by ~30% based on MMM incrementality
      - Tools: Google Meridian, Meta Robyn (Bayesian methods)
      
      ---
      
      ## Section 2: Google Ads Architecture
      
      ### Broad Match + Smart Bidding = "Power Pairing"
      - Exact Match now captures "same meaning"
      - Broad Match captures "intent" from user history + landing page context
      - **Critical error**: Broad Match + Manual CPC = unrestricted spend on irrelevant queries
      - Negative keyword lists mandatory: "Competitor," "Cheap/Free," "Jobs" themes
      - Brand Guidelines must be configured in PMax/Search
      
      ### Performance Max (PMax) Maturity
      - Now a "grey box" — campaign-level negatives, brand exclusions, improved reporting
      - Share of Voice reporting + Search Term Insights available
      - Structure Asset Groups by **User Intent** not Product Category
      - **Asset requirements**: Max 15 headlines, 5 descriptions, 20 images per group
      - Missing video assets → PMax generates low-quality robotic videos (High Risk)
      - New Customer Acquisition (NCA) rules essential for prospecting
      
      ### Quality Score 2026
      - Ad Rank = CPC Bid × Quality Score (unchanged formula)
      - Priority: Expected CTR (heaviest) > Landing Page Experience > Ad Relevance
      - Score < 5 = Critical, 5-7 = Warning, 8-10 = Healthy
      - Actual CPC = (Ad Rank Below / Your QS) + $0.01
      
      ### Google Ads API v23 (January 2026)
      - InvoiceService: campaign-level cost breakdowns
      - PMax Share of Voice: impression share lost to budget/rank
      - Ad Strength Diagnostic: "Good"/"Excellent" ratings for RSA assets
      - Campaign scheduling: start/end down to the minute
      
      ---
      
      ## Section 3: Meta Ads — Andromeda Engine
      
      ### Andromeda Algorithm Update (2025/2026)
      - AI-driven matching system, not simple auction
      - Optimizes for "creative portfolios" not single ads
      - Requires larger creative volume (old "3-5 ads per ad set" = obsolete)
      - **Creative IS the targeting** — broad targeting + specific creative angles
      
      ### 3-Stage Account Structure
      1. **Testing Campaign (ABO)**: Test new concepts, multiple batches per ad set
      2. **Challenger ASC**: Graduate winners, prevents budget starvation
      3. **Core/Evergreen Campaign (CBO)**: Proven, scalable assets
      
      ### Red Flags
      - >5 active campaigns targeting same country/funnel stage = fragmentation
      - High auction overlap rates = bidding against yourself
      
      ### Creative Signals
      - Social-native content rewarded: 9:16, handheld, selfie POV, lo-fi
      - Hook Rate: first 3 seconds critical, >50% skip rate = flag for refresh
      - Organic boosting (Reels → partnership ads) most effective strategy
      
      ### Meta API
      - Rate limits: rolling 1-hour window, check X-Business-Use-Case-Usage header
      - >75% usage = pause 5 min, error 613/80004 = exponential backoff
      - EMQ score < 7.0 = severe data loss = high-priority alert
      
      ---
      
      ## Section 4: TikTok Ads
      
      ### TikTok as Search Engine
      - Primary search for Gen Z by 2026
      - "Search Ads Toggle" ON → 70% stronger CPA
      - Captions = SEO meta descriptions (high-intent keywords in text overlays)
      
      ### Smart+ Campaigns
      - Automates targeting, bidding, creative selection
      - Creative fatigue: >7 days + declining CTR = flag for replacement
      - Minimum 6 creative assets per ad group
      
      ### TikTok Shop
      - Primary e-commerce conversion engine
      - Video Shopping Ads (VSA) = in-app purchase
      - Spark Ads outperform non-Spark (creator authority + profile linkage)
      
      ### API
      - Rate limit: 600 req/min for core endpoints
      - Implement queuing for multi-client, respect Retry-After on 429s
      
      ---
      
      ## Section 5: LinkedIn Ads
      
      ### Thought Leader Ads (TLA) — Dominant B2B Format
      - 1.7x higher CTR, 1.6x more engagement vs standard
      - CPC: $4.14 (TLA) vs $22+ (standard brand)
      - Allocate 30% budget to TLAs for trust-building
      
      ### Conversation Ads vs Message Ads
      - Conversation Ads: 12% CTR, choose-your-own-path, for complex offers
      - Message Ads: Linear, single CTA, for direct invites
      - Frequency cap: 1 message per 30-45 days per user
      
      ### Benchmarks
      - CPC: $13.23 (single image), $2.29 (TLA)
      - CTR benchmark: 0.44%-0.65%, >1% = exceptional
      - Video ads lowest efficiency (1.5), TLAs highest (9.5)
      
      ---
      
      ## Section 6: Microsoft Ads & Copilot
      
      - PMax inventory includes Copilot chat sessions → 63% conversion rate increase
      - "Target New Customers" goal in PMax (Beta 2026)
      - Google Ads PMax import available — validate URL settings transfer
      
      ---
      
      ## Section 7: Cross-Platform Benchmarks 2026
      
      | Metric | E-Commerce | B2B SaaS | Legal | Finance | Healthcare | Local Services |
      |--------|-----------|----------|-------|---------|------------|---------------|
      | Google Search CTR | 4.13% | 4.28% | 5.20% | 4.65% | 4.90% | 5.50% |
      | Google Search CPC | $1.15 | $4.50 | $750+ | $900+ | $40+ | $15-$30 |
      | Google Search CVR | 2.81% | 1.65% | 4.60% | 3.50% | 3.10% | 15.0% |
      | Meta Ads CTR | 1.38% | 0.90% | 0.85% | 0.70% | 1.10% | 1.50% |
      | Meta Ads CPM | $12.50 | $35.00 | $45.00 | $50.00 | $28.00 | $18.00 |
      | LinkedIn CPC | N/A | $13.23 | $25.00 | $35.00 | N/A | N/A |
      | LinkedIn CTR | N/A | 0.56% | 0.45% | 0.40% | N/A | N/A |
      | TikTok Ads CPM | $3.21 | $8.00 | N/A | N/A | N/A | $5.00 |
      | ROAS Benchmark | 4.0x-7.5x | N/A | 3.0x | 3.5x | 2.8x | 5.0x |
      
      ---
      
      ## Section 8: Universal Audit Framework
      
      ### Category A: Conversion Data Hygiene (25%)
      1. Enhanced Conversions enabled? (Pass/Fail)
      2. Server-Side Tracking (CAPI/OCI) active? (Pass/Fail)
      3. Micro vs Primary conversions separated in bidding? (Pass/Fail)
      4. New Customer value rule applied? (Pass/Fail)
      
      ### Category B: Account Structure & Bidding (20%)
      1. Broad Match only with Smart Bidding? (Pass/Fail)
      2. Portfolio Bid Strategies used? (Pass/Fail)
      3. <5 active campaigns per funnel stage? (Pass/Fail)
      4. Brand vs Non-Brand traffic separated? (Pass/Fail)
      
      ### Category C: Creative Diversity & Health (25%)
      1. (Meta) >3 distinct formats active? (Pass/Fail)
      2. (Google) PMax has 9:16 video assets? (Pass/Fail)
      3. <10% ads with "Poor" Ad Strength? (Pass/Fail)
      4. No CTR drop >30% in last 14 days? (Pass/Fail)
      
      ### Category D: Targeting & Exclusions (15%)
      1. Account-level placement exclusions applied? (Pass/Fail)
      2. Customer Match lists refreshed <30 days? (Pass/Fail)
      3. (Meta) Advantage+ Audience enabled? (Pass/Fail)
      
      ### Category E: Landing Page Experience (15%)
      1. Mobile LCP < 2.0s? (Pass/Fail)
      2. Valid Schema markup present? (Pass/Fail)
      3. H1 matches Ad Headline? (Semantic similarity)
      
      ---
      
      ## Section 9: Industry Playbooks
      
      ### B2B SaaS — "SME Engine"
      - TOFU: LinkedIn TLAs + Meta Video Views (ungated value)
      - MOFU: Conversation Ads / Lead Forms (calculators, audits)
      - BOFU: Google Search retargeting (brand + competitor keywords)
      - Key metric: Pipeline ROI via Offline Conversion Import
      
      ### E-Commerce DTC — "Four Peaks" Theory
      - Plan quarterly peaks to reset algorithmic fatigue
      - Acquisition: PMax + ASC + TikTok Shop (1 hero campaign per platform)
      - Retention: Email/SMS + Customer Match cross-sells
      - Key metric: MER (Marketing Efficiency Ratio), POAS
      
      ### Local Services
      - Google LSA (pay-per-lead) + Google Guaranteed badge
      - Geo-fenced Meta/YouTube retargeting (+5 miles)
      - Key metric: Cost Per Booked Appointment
      - Dispute invalid LSA leads weekly, sync CRM for Smart Bidding
      
      ### Info Products — "Selfie-Style" Authority
      - Founder-led video on Meta/YouTube
      - Funnel: Short video → VSL/Webinar → Low-ticket tripwire ($27-$97) → High-ticket upsell
      - Monitor Hook Rate (<30% = rewrite intro) and Hold Rate (ThruPlay)
      
      ---
      
      ## Section 10: API Engineering
      
      ### Rate Limits
      | Platform | Limit | Strategy |
      |----------|-------|----------|
      | Google Ads API | 15,000 ops/day (Basic) | Batch up to 5,000 ops, partial_failure=true |
      | Meta Marketing API | Rolling 1-hour window (spend-based) | Check X-Business-Use-Case-Usage, pause at 75% |
      | TikTok Ads API | 600 req/min | Client-side throttling, respect Retry-After |
      
      ### Authentication
      - Google: Refresh Token → short-lived Access Token (1hr), handle invalid_grant
      - Meta: Short-lived → Long-lived tokens (60 days), warn if <7 days remain
      
      ### Critical Audit Endpoints
      | Platform | Goal | Endpoint | Field |
      |----------|------|----------|-------|
      | Google | Budget | CampaignBudgetService | recommended_budget_amount |
      | Google | Quality Score | KeywordView | quality_score |
      | Google | Ad Strength | AdGroupAdService | ad_strength |
      | Meta | Ad Quality | Insights | quality_ranking, engagement_rate_ranking |
      | Meta | Creative Fatigue | Insights (time series) | ctr (7d vs 30d) |
      | TikTok | Account Health | Account Health | is_restricted, policy_violations |
      | LinkedIn | Audience Quality | AdAnalytics | demographic_metrics |
      
      ### Safe Write Operations
      - All write ops = "Dry Run" or explicit user confirmation
      - Log every change to claude-ads.log with timestamps + previous values
      - Generative copy must use platform character limits as strict constraints
      
    • google-audit-checklists.md 26 KB
      # Google Deep Research 1 — Ad Audit Checklists & Scoring System
      
      > Source: Google Deep Research PDF, "Ad Audit Checklist & Scoring System", February 2026
      > 29 pages — Complete audit checklists for 5 platforms with weighted scoring methodology
      
      ---
      
      ## Executive Summary: Deterministic Auditing
      
      The 2026 paradigm shift demands **Deterministic Auditing** based on two pillars:
      1. **Signal Integrity** — Is the platform receiving clean, complete conversion data?
      2. **Algorithmic Freedom** — Is the platform AI given enough room to optimize?
      
      ---
      
      ## Standardized Scoring Methodology
      
      ### Weighted Scoring Algorithm
      
      ```
      S_total = Σ(C_pass × W_sev × W_cat) / Σ(C_total × W_sev × W_cat) × 100
      ```
      
      Where:
      - `C_pass` = checks that passed (1 or 0)
      - `W_sev` = severity weight of the check
      - `W_cat` = category weight for that platform
      
      ### Severity Multipliers
      
      | Severity | Multiplier | Description |
      |----------|-----------|-------------|
      | Critical | 5.0 | Immediate revenue/data loss risk |
      | High | 3.0 | Significant performance drag |
      | Medium | 1.5 | Optimization opportunity |
      | Low | 0.5 | Best practice, minor impact |
      
      ### Category Weights by Platform
      
      **Google Ads:**
      | Category | Weight |
      |----------|--------|
      | Conversion Tracking | 25% |
      | Wasted Spend / Negatives | 20% |
      | Account Structure | 15% |
      | Keywords & Quality Score | 15% |
      | Ads & Assets | 15% |
      | Settings & Targeting | 10% |
      
      **Meta Ads:**
      | Category | Weight |
      |----------|--------|
      | Pixel / CAPI Health | 30% |
      | Creative (Diversity & Fatigue) | 30% |
      | Account Structure | 20% |
      | Audience & Targeting | 20% |
      
      **LinkedIn Ads:**
      | Category | Weight |
      |----------|--------|
      | Technical Setup | 25% |
      | Audience Quality | 25% |
      | Creative & Formats | 20% |
      | Lead Gen Forms | 15% |
      | Bidding & Budget | 15% |
      
      **TikTok Ads:**
      | Category | Weight |
      |----------|--------|
      | Technical Setup | 25% |
      | Creative Quality | 30% |
      | Bidding & Learning | 20% |
      | Structure & Settings | 15% |
      | Performance | 10% |
      
      **Microsoft Ads:**
      | Category | Weight |
      |----------|--------|
      | Technical Setup | 25% |
      | Syndication & Bidding | 20% |
      | Structure & Audience | 20% |
      | Creative & Extensions | 20% |
      | Settings & Performance | 15% |
      
      ### Grading Thresholds
      
      | Grade | Score Range | Label |
      |-------|-----------|-------|
      | A | 90-100 | Excellent |
      | B | 75-89 | Good |
      | C | 60-74 | Needs Improvement |
      | D | 40-59 | Poor |
      | F | <40 | Critical |
      
      ### Quick Wins Logic
      
      ```
      IF Severity == "High" OR Severity == "Critical"
      AND Remediation_Time < 15 minutes
      THEN flag as "Quick Win"
      ```
      
      ---
      
      ## Google Ads Audit Checklist (G01-G61)
      
      ### Structure (G01-G12)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G01 | Campaign naming convention | Medium | Structure | Consistent naming pattern (e.g., [Brand]_[Type]_[Geo]_[Target]) |
      | G02 | Ad group naming convention | Medium | Structure | Matches campaign naming pattern |
      | G03 | Single theme ad groups | High | Structure | Each ad group targets 1 keyword theme (≤15 keywords) |
      | G04 | Campaign count per objective | High | Structure | ≤5 campaigns per funnel stage/objective |
      | G05 | Brand vs Non-Brand separation | Critical | Structure | Brand and non-brand traffic in separate campaigns |
      | G06 | PMax campaign present for eligible accounts | Medium | Structure | PMax active for accounts with conversion history |
      | G07 | Search + PMax overlap check | High | Structure | Brand exclusions configured in PMax when Search brand campaign exists |
      | G08 | Budget allocation matches priority | High | Structure | Top-performing campaigns not budget-limited |
      | G09 | Campaign daily budget vs spend | Medium | Structure | No campaigns hitting daily budget cap before 6PM |
      | G10 | Ad schedule configured | Low | Structure | Ad schedule set if business has operating hours |
      | G11 | Geographic targeting accuracy | High | Structure | Location targeting = "People in" not "People in or interested in" (for local) |
      | G12 | Network settings | High | Structure | Search Partners and Display Network disabled for Search campaigns (unless intentional) |
      
      ### Search Terms & Negatives (G13-G19)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G13 | Search term audit recency | Critical | Wasted Spend | Search terms reviewed within last 14 days |
      | G14 | Negative keyword lists exist | Critical | Wasted Spend | ≥3 theme-based negative lists (Competitor, Jobs, Free, Irrelevant) |
      | G15 | Account-level negatives applied | High | Wasted Spend | Negative lists applied at account or all-campaign level |
      | G16 | Wasted spend on irrelevant terms | Critical | Wasted Spend | <5% of spend on irrelevant search terms (last 30 days) |
      | G17 | Broad match + smart bidding pairing | Critical | Wasted Spend | No Broad Match keywords running on Manual CPC |
      | G18 | Close variant pollution | High | Wasted Spend | Exact/Phrase match not triggering for irrelevant close variants |
      | G19 | Search term visibility | Medium | Wasted Spend | >60% of search term spend is visible (not hidden) |
      
      ### Quality Score (G20-G25)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G20 | Average Quality Score | High | Keywords & QS | Account-wide average QS ≥ 6/10 |
      | G21 | Critical QS keywords | Critical | Keywords & QS | <10% of keywords with QS ≤ 3 |
      | G22 | Expected CTR component | High | Keywords & QS | <20% of keywords with "Below Average" expected CTR |
      | G23 | Ad relevance component | High | Keywords & QS | <20% of keywords with "Below Average" ad relevance |
      | G24 | Landing page experience | High | Keywords & QS | <15% of keywords with "Below Average" landing page experience |
      | G25 | QS improvement opportunity | Medium | Keywords & QS | Top 20 spend keywords all have QS ≥ 7 |
      
      ### Ads, RSA & PMax (G26-G35)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G26 | RSA per ad group | High | Ads & Assets | ≥1 RSA per ad group (≥2 recommended) |
      | G27 | RSA headline count | High | Ads & Assets | ≥8 unique headlines per RSA (ideal: 12-15) |
      | G28 | RSA description count | Medium | Ads & Assets | ≥3 descriptions per RSA (ideal: 4) |
      | G29 | RSA Ad Strength | High | Ads & Assets | <10% RSAs with "Poor" Ad Strength |
      | G30 | RSA pinning strategy | Medium | Ads & Assets | Pinning used strategically (not all positions pinned) |
      | G31 | PMax asset group completeness | Critical | Ads & Assets | Each asset group: ≥5 images, ≥2 logos, ≥1 video |
      | G32 | PMax video assets present | High | Ads & Assets | Native video uploaded (not auto-generated) in all formats (16:9, 1:1, 9:16) |
      | G33 | PMax asset group count | Medium | Ads & Assets | ≥2 asset groups per PMax campaign (intent-segmented) |
      | G34 | PMax final URL expansion | High | Ads & Assets | Final URL expansion configured intentionally (ON for discovery, OFF for control) |
      | G35 | Ad copy relevance to keywords | High | Ads & Assets | Headlines contain primary keyword variants |
      
      ### Bidding & Budget (G36-G41)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G36 | Smart bidding strategy active | High | Bidding | All campaigns with ≥15 conv/30d use automated bidding |
      | G37 | Target CPA/ROAS reasonableness | Critical | Bidding | Targets within 20% of historical performance |
      | G38 | Learning phase status | High | Bidding | <25% of campaigns currently in "Learning" or "Learning Limited" |
      | G39 | Budget constrained campaigns | High | Bidding | Top-performing campaigns show "Eligible" not "Limited by Budget" |
      | G40 | Manual CPC justification | Medium | Bidding | Manual CPC only on campaigns with <15 conv/month |
      | G41 | Portfolio bid strategies | Medium | Bidding | Low-volume campaigns grouped into portfolio strategies |
      
      ### Conversions (G42-G49)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G42 | Conversion actions defined | Critical | Conversion Tracking | ≥1 primary conversion action configured |
      | G43 | Enhanced conversions enabled | Critical | Conversion Tracking | Enhanced conversions active for primary conversions |
      | G44 | Server-side tracking | High | Conversion Tracking | Server-side GTM or Google Ads API conversion import active |
      | G45 | Consent Mode v2 | Critical | Conversion Tracking | Consent Mode v2 implemented (required for EU/EEA) |
      | G46 | Conversion window appropriate | Medium | Conversion Tracking | Click-through window matches sales cycle (7d ecom, 30-90d B2B) |
      | G47 | Micro vs macro conversion separation | High | Conversion Tracking | Only macro conversions set as "Primary" for bidding |
      | G48 | Attribution model | Medium | Conversion Tracking | Data-driven attribution (DDA) selected (default since 2023) |
      | G49 | Conversion value assignment | High | Conversion Tracking | Dynamic conversion values for e-commerce; value rules for lead gen |
      
      ### Extensions, Audiences & Landing Pages (G50-G61)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | G50 | Sitelink extensions | High | Settings & Targeting | ≥4 sitelinks per campaign |
      | G51 | Callout extensions | Medium | Settings & Targeting | ≥4 callouts per campaign |
      | G52 | Structured snippets | Medium | Settings & Targeting | ≥1 structured snippet set |
      | G53 | Image extensions | Medium | Settings & Targeting | Image extensions active for search campaigns |
      | G54 | Call extensions (if applicable) | Medium | Settings & Targeting | Call extensions with call tracking for phone-based businesses |
      | G55 | Lead form extensions | Low | Settings & Targeting | Lead form extensions tested for lead gen accounts |
      | G56 | Audience segments applied | High | Settings & Targeting | Remarketing and in-market audiences in Observation mode |
      | G57 | Customer Match lists | High | Settings & Targeting | Customer Match list uploaded and refreshed <30 days |
      | G58 | Placement exclusions | High | Settings & Targeting | Account-level placement exclusions (games, apps, MFA sites) |
      | G59 | Landing page mobile speed | High | Settings & Targeting | Mobile LCP < 2.5s (ideal < 2.0s) |
      | G60 | Landing page relevance | High | Settings & Targeting | Landing page H1/title matches ad group theme |
      | G61 | Landing page schema markup | Medium | Settings & Targeting | Product/FAQ/Service schema present |
      
      ---
      
      ## Meta Ads Audit Checklist (M01-M40)
      
      ### Technical / Signal Integrity (M01-M10)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M01 | Meta Pixel installed | Critical | Pixel/CAPI | Pixel firing on all pages |
      | M02 | Conversions API (CAPI) active | Critical | Pixel/CAPI | Server-side events sending alongside pixel |
      | M03 | Event deduplication | Critical | Pixel/CAPI | event_id matching between pixel and CAPI events |
      | M04 | Event Match Quality (EMQ) | Critical | Pixel/CAPI | EMQ score ≥ 6.0 for Purchase event (ideal ≥ 8.0) |
      | M05 | Domain verification | High | Pixel/CAPI | Business domain verified in Business Manager |
      | M06 | Aggregated Event Measurement (AEM) | High | Pixel/CAPI | Top 8 events configured and prioritized correctly |
      | M07 | Standard events vs custom events | High | Pixel/CAPI | Using standard events (Purchase, AddToCart, Lead) not custom |
      | M08 | Conversion API Gateway | Medium | Pixel/CAPI | CAPI Gateway considered for simplified server-side setup |
      | M09 | iOS attribution window | High | Pixel/CAPI | 7-day click / 1-day view attribution configured |
      | M10 | Data freshness | Medium | Pixel/CAPI | Events firing in real-time (no >1hr lag in Events Manager) |
      
      ### Structure & Learning Phase (M11-M18)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M11 | Campaign count | High | Account Structure | ≤5 active campaigns per country/funnel stage |
      | M12 | CBO vs ABO appropriateness | High | Account Structure | CBO for >$500/day campaigns, ABO for testing <$100/day |
      | M13 | Learning phase status | Critical | Account Structure | <30% of ad sets in "Learning Limited" |
      | M14 | Learning phase resets | High | Account Structure | No unnecessary edits causing learning phase resets |
      | M15 | Advantage+ Shopping campaign | Medium | Account Structure | ASC active for e-commerce accounts with catalog |
      | M16 | Ad set consolidation | High | Account Structure | No overlapping ad sets targeting same audience |
      | M17 | Budget distribution | High | Account Structure | No single ad set getting <$10/day (insufficient for optimization) |
      | M18 | Campaign objective alignment | High | Account Structure | Campaign objective matches actual business goal |
      
      ### Audience & Targeting (M19-M24)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M19 | Audience overlap | High | Audience & Targeting | <30% overlap between active ad sets (Audience Overlap tool) |
      | M20 | Custom Audience freshness | High | Audience & Targeting | Website Custom Audiences refreshed within 180 days |
      | M21 | Lookalike source quality | Medium | Audience & Targeting | Lookalike source audiences ≥1,000 users from high-value events |
      | M22 | Advantage+ Audience testing | Medium | Audience & Targeting | Advantage+ Audience tested vs manual targeting |
      | M23 | Exclusion audiences | High | Audience & Targeting | Purchasers/converters excluded from prospecting campaigns |
      | M24 | First-party data utilization | High | Audience & Targeting | Customer list uploaded for Custom Audience + Lookalike creation |
      
      ### Creative (M25-M32)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M25 | Creative format diversity | Critical | Creative | ≥3 formats active (static image, video, carousel) |
      | M26 | Creative volume per ad set | High | Creative | ≥3 creatives per ad set (ideal: 5-8 for Andromeda) |
      | M27 | Video aspect ratios | High | Creative | 9:16 vertical video present for Reels/Stories placements |
      | M28 | Creative fatigue detection | Critical | Creative | No creatives with CTR drop >30% over 14 days while still active |
      | M29 | Hook rate (video) | High | Creative | Video ads: <50% skip rate in first 3 seconds |
      | M30 | Social proof utilization | Medium | Creative | Top organic posts boosted as partnership/Spark ads |
      | M31 | UGC / social-native content | High | Creative | ≥30% of creative assets are UGC or social-native style |
      | M32 | Advantage+ Creative | Medium | Creative | Advantage+ Creative enhancements enabled (test vs control) |
      
      ### Placements (M33-M34)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M33 | Advantage+ Placements | Medium | Account Structure | Advantage+ Placements enabled (unless specific exclusion needed) |
      | M34 | Placement performance review | Medium | Account Structure | Placement breakdown reviewed monthly; underperformers excluded |
      
      ### Settings & Reporting (M35-M40)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | M35 | Attribution setting | High | Account Structure | 7-day click / 1-day view attribution (not 1-day click only) |
      | M36 | Cost control / bid strategy | High | Account Structure | Appropriate bid strategy per objective (Cost Cap for margin, Lowest Cost for volume) |
      | M37 | Frequency cap monitoring | High | Audience & Targeting | Ad set frequency <4.0 in last 7 days (prospecting) |
      | M38 | Breakdown reporting | Medium | Account Structure | Age, gender, placement, platform breakdowns reviewed monthly |
      | M39 | UTM parameters | Medium | Account Structure | UTM parameters on all ad URLs for GA4 attribution |
      | M40 | A/B testing active | Medium | Creative | At least 1 active A/B test (Experiments) running |
      
      ---
      
      ## LinkedIn Ads Audit Checklist (L01-L25)
      
      ### Technical (L01-L02)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L01 | Insight Tag installed | Critical | Technical | LinkedIn Insight Tag firing on all pages |
      | L02 | Conversions API (CAPI) | High | Technical | Server-side conversion tracking active |
      
      ### Audience (L03-L09)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L03 | Job title targeting precision | High | Audience | Job title targeting uses specific titles, not just functions |
      | L04 | Company size filtering | Medium | Audience | Company size matches ICP (Ideal Customer Profile) |
      | L05 | Seniority level targeting | High | Audience | Seniority level appropriate for offer (C-suite for enterprise, Manager for mid-market) |
      | L06 | Matched Audiences | High | Audience | Website retargeting and contact list audiences created |
      | L07 | ABM company lists | Medium | Audience | Target company lists uploaded for ABM campaigns |
      | L08 | Audience expansion setting | Medium | Audience | Audience expansion OFF for precise targeting, ON for scale |
      | L09 | Predictive audiences | Medium | Audience | Predictive audiences tested for lookalike targeting |
      
      ### Creative (L10-L13)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L10 | Thought Leader Ads | High | Creative | TLAs active and receiving ≥30% of budget for B2B |
      | L11 | Ad format diversity | High | Creative | ≥2 ad formats tested (single image, video, document, carousel) |
      | L12 | Video ads present | Medium | Creative | Video ads tested (despite lower efficiency score) |
      | L13 | Creative refresh cadence | Medium | Creative | Creative refreshed every 4-6 weeks |
      
      ### Lead Gen Forms (L14-L15)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L14 | Lead Gen Form optimization | High | Lead Gen | Form has ≤5 fields (reduce friction) |
      | L15 | Lead Gen Form CRM integration | High | Lead Gen | Form synced to CRM in real-time (not manual download) |
      
      ### Bidding (L16-L17)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L16 | Bid strategy appropriate | High | Bidding | CPS (Cost Per Send) for Message Ads; Maximum Delivery or Manual for Sponsored Content |
      | L17 | Budget sufficiency | High | Bidding | Daily budget ≥$50 for Sponsored Content (LinkedIn minimum for learning) |
      
      ### Structure (L18-L20)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L18 | Campaign objective alignment | High | Structure | Campaign objective matches funnel stage |
      | L19 | A/B testing | Medium | Structure | Active A/B test on creative or audience |
      | L20 | Frequency monitoring | High | Structure | Message frequency cap not exceeded (1 per 30-45 days) |
      
      ### Performance (L21-L25)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | L21 | CTR benchmark | High | Performance | Sponsored Content CTR ≥ 0.44% |
      | L22 | CPC benchmark | Medium | Performance | CPC within industry benchmark range |
      | L23 | Lead quality tracking | High | Performance | Lead-to-opportunity rate tracked (not just CPL) |
      | L24 | Conversion tracking attribution | Medium | Performance | 30-day click / 7-day view window configured |
      | L25 | Demographics report review | Medium | Performance | Job title and company breakdown reviewed monthly |
      
      ---
      
      ## TikTok Ads Audit Checklist (T01-T25)
      
      ### Technical (T01-T02)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T01 | TikTok Pixel installed | Critical | Technical | Pixel firing on all relevant pages |
      | T02 | Events API active | High | Technical | Server-side events sending via Events API with ttclid passback |
      
      ### Structure (T03-T04)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T03 | Campaign structure | High | Structure | Separate campaigns for prospecting vs retargeting |
      | T04 | Smart+ utilization | Medium | Structure | Smart+ campaigns tested for eligible objectives |
      
      ### Creative (T05-T10)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T05 | Creative volume | Critical | Creative | ≥6 creative assets per ad group |
      | T06 | Vertical video format | Critical | Creative | All video assets 9:16 (1080x1920) |
      | T07 | Native-looking content | High | Creative | Ads look organic (not polished/corporate) |
      | T08 | Hook strategy | High | Creative | First 1-2 seconds have attention-grabbing hook |
      | T09 | Creative lifespan | High | Creative | No creative active >7 days with declining CTR |
      | T10 | Spark Ads utilization | High | Creative | Spark Ads (creator content) tested and active |
      
      ### Bidding & Learning (T11-T13)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T11 | Bid strategy | High | Bidding | Appropriate bid strategy (Lowest Cost for volume, Cost Cap for efficiency) |
      | T12 | Budget sufficiency | High | Bidding | Daily budget ≥20x target CPA per ad group |
      | T13 | Learning phase | High | Bidding | Ad groups achieving ≥50 conversions/week to exit learning |
      
      ### Settings (T14-T16)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T14 | Search Ads Toggle | High | Settings | Search Ads Toggle enabled for all campaigns |
      | T15 | Placement selection | Medium | Settings | Appropriate placements selected (TikTok, Pangle, etc.) |
      | T16 | Dayparting | Low | Settings | Ad schedule aligned with target audience activity |
      
      ### Performance (T17-T19)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T17 | CTR benchmark | High | Performance | CTR ≥ 1.0% for in-feed ads |
      | T18 | CPA target | High | Performance | CPA within target range (no ad group >3x target CPA) |
      | T19 | Video completion rate | Medium | Performance | Average video watch time ≥6 seconds |
      
      ### Extended Structure & Creative (T20-T25)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | T20 | TikTok Shop integration | Medium | Structure | Shop catalog connected for e-commerce accounts |
      | T21 | Video Shopping Ads (VSA) | Medium | Creative | VSA tested for product catalog accounts |
      | T22 | Caption SEO | High | Creative | Captions include high-intent keywords for search discovery |
      | T23 | Sound/music usage | Medium | Creative | Trending or engaging audio used (not silent ads) |
      | T24 | CTA button | Medium | Creative | Appropriate CTA button selected (not default) |
      | T25 | Safe zone compliance | High | Creative | Key content within safe zone (X:40-940, Y:150-1470) |
      
      ---
      
      ## Microsoft Ads Audit Checklist (MS01-MS20)
      
      ### Technical (MS01-MS03)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS01 | UET tag installed | Critical | Technical | Universal Event Tracking tag firing on all pages |
      | MS02 | Enhanced conversions | High | Technical | Enhanced conversions enabled |
      | MS03 | Google Ads import validation | High | Technical | If imported: verify all settings transferred correctly (especially URLs) |
      
      ### Syndication (MS04-MS05)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS04 | Search partner network | High | Syndication | Syndicated search partners reviewed and low-performers excluded |
      | MS05 | Audience Network settings | Medium | Syndication | Audience Network enabled only if testing intentionally |
      
      ### Bidding (MS06-MS07)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS06 | Bid strategy alignment | High | Bidding | Bid strategy matches campaign goal and conversion volume |
      | MS07 | Target New Customers (PMax) | Medium | Bidding | "Target New Customers" enabled for growth campaigns |
      
      ### Structure (MS08-MS09)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS08 | Campaign structure | High | Structure | Mirrors Google Ads structure (if imported) or follows best practices |
      | MS09 | Budget allocation | Medium | Structure | Budget proportional to Bing search volume (typically 20-30% of Google) |
      
      ### Audience (MS10)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS10 | LinkedIn profile targeting | High | Audience | LinkedIn targeting utilized (unique to Microsoft) for B2B |
      
      ### Creative (MS11-MS13)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS11 | RSA asset count | High | Creative | RSA headlines and descriptions match Google Ads best practices |
      | MS12 | Multimedia Ads | Medium | Creative | Multimedia Ads tested (unique to Microsoft — rich visual format) |
      | MS13 | Ad copy uniqueness | Medium | Creative | Ad copy not just cloned from Google — optimized for Bing demographics |
      
      ### Settings (MS14-MS15)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS14 | Copilot placement | Medium | Settings | Copilot chat placement enabled for PMax campaigns |
      | MS15 | Conversion goals | High | Settings | Conversion goals configured (not using Google-imported goals without verification) |
      
      ### Performance (MS16-MS18)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS16 | CPC vs Google comparison | Medium | Performance | Microsoft CPC 20-40% lower than Google for same keywords |
      | MS17 | Conversion rate comparison | Medium | Performance | Microsoft CVR comparable to Google (flag if >50% lower) |
      | MS18 | Impression share | Medium | Performance | Impression share tracked for brand and top non-brand terms |
      
      ### Extensions (MS19-MS20)
      
      | ID | Check | Severity | Category | Pass Criteria |
      |----|-------|----------|----------|---------------|
      | MS19 | Action Extension | Medium | Creative | Action Extension utilized (unique to Microsoft) |
      | MS20 | Filter Link Extension | Medium | Creative | Filter Link Extension tested for product/service categories |
      
    • google-optimization-logic.md 11.9 KB
      # Google Deep Research 2 — Ad Optimization Tool Logic
      
      > Source: Google Deep Research PDF, "Ad Optimization Tool Logic Request", February 2026
      > 18 pages — Bidding decision engines, budget allocation frameworks, conversion tracking, attribution
      
      ---
      
      ## Google Ads Bidding Decision Engine
      
      ### Strategy Selection Decision Tree
      
      ```
      IF conversions_last_30d < 15:
        → Maximize Clicks (cold start)
        → Max CPC = Target_CPA / (Estimated_CVR × 1.5)
        → Learning period: 3-5 days
        → Monitor: Wait for 15+ conversions before transitioning
      
      ELIF conversions_last_30d >= 15 AND conversions_last_30d < 30:
        → Maximize Conversions (building data)
        → Learning period: 7-14 days
        → Transition trigger: CPA standard deviation < 20% over 14 days
        → THEN move to Target CPA
      
      ELIF conversions_last_30d >= 30 AND no dynamic values:
        → Target CPA
        → Strict threshold: 30+ conversions (50+ ideal)
        → Initial target: 1.1x - 1.2x historical CPA
        → Adjustment rule: Max 10% change every 14 days
        → Never lower by more than 15% at once
      
      ELIF conversions_last_30d >= 50 AND has dynamic values:
        → Target ROAS
        → Requires: Dynamic conversion values assigned
        → Initial target: Exact historical ROAS (don't be aggressive)
        → Formula: Bid = P(conversion) × Predicted_Value × (1 / Target_ROAS)
        → Adjustment rule: Same as tCPA (10% every 14 days)
      
      IF campaign_type == "Brand Protection":
        → Target Impression Share
        → Target: 95-100% on brand keywords
        → No conversion data requirement
        → Use for brand defense campaigns only
      
      IF conversions_last_30d < 15 AND Manual preferred:
        → Manual CPC
        → NOTE: Enhanced CPC (eCPC) deprecated March 2025
        → Use only when insufficient conversion data
        → Review monthly for transition to automated
      ```
      
      ### Portfolio Bid Strategies
      
      **When to use:**
      - Multiple low-volume campaigns (<15 conv each but combined >30)
      - Cross-campaign budget optimization needed
      - **CPC Cap Hack**: Portfolio strategy is the ONLY way to set a maximum CPC bid on Target CPA or Target ROAS campaigns
      
      **Best practices:**
      - Group campaigns with similar target CPAs/ROAS
      - Minimum 3 campaigns per portfolio for meaningful data sharing
      - Don't mix brand and non-brand in same portfolio
      
      ---
      
      ## Meta Ads Bidding Decision Engine
      
      ### Meta Ad Auction Formula
      
      ```
      Total Value = Bid × Estimated Action Rate + User Value
      ```
      
      Where:
      - **Bid** = Your bid amount (or automated bid)
      - **Estimated Action Rate** = Meta's prediction of user taking desired action
      - **User Value** = Relevance, quality, post-engagement signals
      
      ### Strategy Selection
      
      ```
      DEFAULT (90% of campaigns):
        → Lowest Cost (no cap)
        → Best for: Most campaigns, starting out, maximizing volume
        → Risk: CPA can spike during high-competition periods
      
      IF need cost predictability:
        → Cost Cap
        → Set at: 1.2x - 1.5x your target CPA
        → Best for: Scaling with margin protection
        → Risk: May under-deliver if cap too aggressive
      
      IF need strict cost control:
        → Bid Cap
        → Set at: 2x - 3x your target CPA
        → Best for: Experienced advertisers with clear unit economics
        → Risk: Significant under-delivery if set too low
      
      IF e-commerce with revenue tracking:
        → ROAS Goal
        → Best for: Advantage+ Shopping Campaigns
        → Requires: Purchase event + dynamic values
      
      IF high-value diverse products:
        → Highest Value
        → Best for: Accounts with wide AOV range
        → Prioritizes high-value conversions
      ```
      
      ### CBO vs ABO Decision
      
      ```
      IF daily_budget < $100:
        → ABO (Ad Set Budget Optimization)
        → Reason: Need control over spend distribution during testing
      
      IF daily_budget $100-$500:
        → Either (test both)
        → CBO if testing ad sets with similar target audiences
        → ABO if testing vastly different audiences
      
      IF daily_budget > $500:
        → CBO (Campaign Budget Optimization)
        → Reason: Algorithm has enough data to optimize distribution
        → Let Meta allocate to best-performing ad sets
      ```
      
      ### Learning Phase Management
      
      **Exit criteria:** 50 conversions per week per ad set
      
      **Reset triggers (AVOID these during learning):**
      - Budget change > 20%
      - Any targeting change
      - Creative edit (even text changes)
      - Bid strategy change
      - Pausing for >7 days
      
      **If stuck in "Learning Limited":**
      1. Broaden audience (wider targeting)
      2. Increase budget
      3. Switch to higher-funnel event (e.g., AddToCart instead of Purchase)
      4. Consolidate ad sets
      
      ---
      
      ## Budget Allocation Framework
      
      ### Platform Selection Matrix by Business Type
      
      | Business Type | Platform 1 | Platform 2 | Platform 3 | Other | Min Monthly Budget | Primary KPI | Time to Profit |
      |--------------|------------|------------|------------|-------|-------------------|-------------|---------------|
      | SaaS B2B | LinkedIn 40% | Google 30% | Meta 20% | Other 10% | $5,000 | Pipeline ROI | 3-6 months |
      | E-commerce DTC | Meta 50% | Google PMax 30% | TikTok 15% | Email 5% | $3,000 | ROAS / MER | 0-2 months |
      | Local Service | Google LSA/Search 60% | Meta 30% | Bing 10% | — | $1,500 | Cost Per Lead | 1 month |
      | B2B Enterprise | LinkedIn 60% | Google 20% | ABM Display 20% | — | $10,000 | Pipeline / SQLs | 6-12 months |
      | Info Products | YouTube 40% | Meta 40% | Email 20% | — | $2,000 | ROAS / CPL | 1-3 months |
      | Mobile App | Apple Search 30% | Google App 30% | Meta/TikTok 40% | — | $5,000 | CPI / LTV | 3-6 months |
      | Real Estate | Meta Lead Forms 50% | Google Search 40% | LinkedIn 10% | — | $2,500 | Cost Per Lead | 2-4 months |
      | Healthcare | Google Search 70% | Meta Remarketing 30% | — | — | $4,000 | Cost Per Patient | 2-5 months |
      | Finance/Fintech | Google Search 50% | Affiliate/Native 30% | LinkedIn 20% | — | $8,000 | CAC / LTV | 4-8 months |
      | Agency (Own) | LinkedIn 50% | Meta 30% | Google 20% | — | $1,500 | Cost Per Lead | 1-3 months |
      
      ### Budget Scaling Decision Tree
      
      ```
      20% RULE (Scale Up):
        IF actual_CPA < target_CPA by > 10%
        AND conversions_last_7d >= learning_threshold
        THEN increase budget by 20%
        → Wait 3-5 days before next increase
      
      3x KILL RULE (Pause):
        IF spend > 3x target_CPA
        AND conversions == 0
        THEN pause ad/ad set/campaign immediately
        → Review creative, targeting, landing page
      
      DECREASING RETURNS DETECTION:
        IF CPA increased > 15% after last budget increase
        THEN roll back to previous budget
        → Wait 7 days, try scaling horizontally instead
      
      SATURATION SIGNALS:
        Google: Impression Share > 80% = diminishing returns
        Meta: Frequency > 4.0 (7-day) = audience exhaustion
        TikTok: Frequency > 3.0 = creative fatigue
        → Diversify to new platform or audience
      ```
      
      ### Marketing Efficiency Ratio (MER)
      
      ```
      MER = Total Revenue / Total Ad Spend
      
      Benchmarks:
        E-commerce: 3.0 - 5.0 (healthy), >5.0 (excellent), <2.0 (danger)
        SaaS: Use LTV:CAC ratio instead (target 3:1)
        Lead Gen: Use Revenue per Lead × Conversion Rate / CPL
      ```
      
      ### Seasonality Adjustments
      
      - **Q4 (Oct-Dec)**: CPMs increase 30-50%
        - Reduce ROAS targets by 20% during holiday season
        - Front-load creative testing in September
        - Increase budgets by 40-60% for Black Friday/Cyber Monday
      
      - **Q1 (Jan-Mar)**: CPMs decrease 20-30% post-holiday
        - Best time for new campaign testing
        - Aggressive customer acquisition (lower competition)
      
      ### Incrementality Testing (Geo-Lift)
      
      - Duration: 2-4 weeks minimum
      - Holdout: 10% of geographic regions
      - Method: Compare conversion rates between exposed and holdout regions
      - Statistical significance: p < 0.05
      
      ---
      
      ## Conversion Tracking Setup by Platform
      
      ### Google Ads
      ```
      Required Stack:
      1. Global Site Tag (gtag.js) → all pages
      2. Enhanced Conversions → enable via gtag or GTM
      3. Consent Mode v2 → required for EU/EEA advertisers
      4. Server-Side GTM → recommended for data durability
      5. Offline Conversion Import → for lead gen (CRM → Google Ads)
      
      Enhanced Conversions Setup:
      - Sends hashed first-party data (email, phone, address)
      - Improves conversion measurement by ~5-15%
      - Required for smart bidding accuracy in cookie-degraded environments
      
      Consent Mode v2:
      - consent('default', { ad_storage: 'denied', analytics_storage: 'denied' })
      - consent('update', { ad_storage: 'granted' }) // after user consent
      - Enables conversion modeling for unconsented users
      ```
      
      ### Meta Ads
      ```
      Required Stack:
      1. Meta Pixel → base code on all pages + standard events
      2. Conversions API (CAPI) → server-side event forwarding
      3. Event Deduplication → event_id matching between Pixel and CAPI
      4. EMQ Optimization → pass email, phone, fbp, fbc, external_id
      
      Event Match Quality (EMQ) Targets:
        < 4.0 → Critical (severe data loss)
        4.0-5.9 → Warning (significant signal gaps)
        6.0-7.9 → Acceptable (some optimization possible)
        8.0-10.0 → Excellent (maximum signal strength)
      
      Deduplication Logic:
      - Same event_id + same event_name = deduplicated
      - Missing event_id = potential double-counting
      - Check Events Manager > Overview > Deduplication Rate
      ```
      
      ### TikTok Ads
      ```
      Required Stack:
      1. TikTok Pixel → base code + standard events
      2. Events API → server-side forwarding
      3. ttclid Passback → store ttclid from URL, send with events
      4. Advanced Matching → pass hashed email/phone
      
      Key Difference: ttclid (TikTok Click ID) must be captured from
      landing page URL params and passed back with conversion events
      ```
      
      ### LinkedIn Ads
      ```
      Required Stack:
      1. LinkedIn Insight Tag → all pages
      2. Conversions API (CAPI) → server-side events (launched 2025)
      3. Offline Conversion Import → CRM data (opportunity created, deal closed)
      
      Best Practice:
      - Track both online (form submit) and offline (SQL, opportunity, closed-won)
      - Import offline conversions within 90 days of click
      - Use for lead quality optimization (bid for SQLs not just leads)
      ```
      
      ### Microsoft Ads
      ```
      Required Stack:
      1. UET (Universal Event Tracking) tag → all pages
      2. Enhanced Conversions → enable for improved matching
      3. Offline Conversion Import → CRM integration
      4. Auto-tagging (MSCLKID) → ensure not stripped by CMS
      
      Note: If importing from Google, verify conversion tracking
      transferred correctly — goals often break during import
      ```
      
      ---
      
      ## Attribution Models
      
      ### Platform Defaults (2026)
      
      | Platform | Default Model | Click Window | View Window |
      |----------|--------------|-------------|-------------|
      | Google Ads | Data-Driven Attribution (DDA) | 30 days | 1 day (YouTube: 3 days) |
      | Meta Ads | Statistical model | 7 days | 1 day |
      | TikTok Ads | Last touch | 7 days | 1 day |
      | LinkedIn Ads | Last touch | 30 days | 7 days |
      | Microsoft Ads | Last touch (DDA available) | 30 days | 1 day |
      
      ### Cross-Platform Attribution Hierarchy
      
      ```
      Source of Truth (best to worst):
      1. CRM Data (actual revenue, closed deals)
      2. MER (Marketing Efficiency Ratio — total rev / total spend)
      3. Post-Purchase Surveys ("How did you hear about us?")
      4. Google Analytics 4 (cross-channel, multi-touch)
      5. Platform-Reported Data (always overclaims)
      
      Rule: Never trust platform-reported ROAS alone.
      Always cross-reference with at least 2 other data sources.
      ```
      
      ---
      
      ## Worked Examples
      
      ### Example 1: $5K E-commerce Account
      - Budget split: Meta $2,500 (50%) + Google PMax $1,500 (30%) + TikTok $750 (15%) + Email $250 (5%)
      - Target MER: 4.0x ($20K revenue)
      - Start with Lowest Cost on Meta, Maximize Conversions on Google
      - After 30 days: Transition to Cost Cap (Meta), Target ROAS (Google) if >30 conversions
      - TikTok: Lowest Cost, minimum 6 creatives, Spark Ads focus
      
      ### Example 2: $20K B2B SaaS Account
      - Budget split: LinkedIn $8K (40%) + Google $6K (30%) + Meta $4K (20%) + Other $2K (10%)
      - Target: $200 CPL, 10% Lead-to-Opp rate, $2K CAC
      - LinkedIn: TLAs 30%, Lead Gen Forms 40%, Retargeting 30%
      - Google: Brand Search + Non-Brand tCPA + PMax
      - Meta: Founder-led video content → retargeting
      - Track: Offline conversions from CRM (SQL, Opp, Closed-Won)
      
      ### Example 3: $100K Omni-Channel Account
      - Google $40K (40%) + Meta $30K (30%) + TikTok $15K (15%) + LinkedIn $10K (10%) + Microsoft $5K (5%)
      - Run quarterly MMM (Google Meridian or Meta Robyn)
      - Incrementality testing: Monthly geo-lift on rotating platforms
      - MER as north star, platform ROAS as directional signal only
      - Dedicated creative team: 20+ new assets per month
      
    • google-platform-specs.md 16.6 KB
      # Google Deep Research 3 — Paid Ad Technical Specifications
      
      > Source: Google Deep Research PDF, "Paid Ad Technical Specifications Request", February 2026
      > 20 pages — Complete creative specs, safe zones, character limits, encoding requirements
      
      ---
      
      ## Google Ads Specifications
      
      ### Responsive Search Ads (RSA)
      
      | Component | Limit | Notes |
      |-----------|-------|-------|
      | Headlines | 3-15 per RSA | Minimum 3, recommended 12-15 for "Excellent" Ad Strength |
      | Headline length | 30 characters | Including spaces |
      | Descriptions | 2-4 per RSA | Minimum 2, recommended 4 |
      | Description length | 90 characters | Including spaces |
      | Display URL paths | 2 paths, 15 chars each | Auto-populated from final URL |
      | Final URL | Required | Must match landing page |
      
      **Pinning Strategy:**
      - Pin 1 headline to Position 1 (brand/main keyword)
      - Pin 1 headline to Position 2 (secondary angle)
      - Leave Position 3 unpinned for algorithm testing
      - Never pin all positions (kills Ad Strength)
      - Each pinned position should have 2-3 variants
      
      **Dynamic Insertion Syntax:**
      ```
      {KeyWord:Default Text}          // Keyword insertion (capitalizes each word)
      {keyword:default text}          // lowercase
      {KEYWORD:DEFAULT TEXT}           // UPPERCASE
      {Keyword:Default}               // Sentence case
      
      {COUNTDOWN(2026/03/31 00:00:00, "en-US", 3)}  // Countdown timer
      {LOCATION(City)}                               // Location insertion
      {CUSTOMIZER.attribute:default}                 // Ad customizer
      ```
      
      ### Performance Max Asset Groups
      
      | Asset Type | Specs | Max Per Group |
      |-----------|-------|---------------|
      | Marketing Image | 1200×628 (1.91:1) | 20 images total |
      | Square Image | 1200×1200 (1:1) | (included in 20) |
      | Portrait Image | 960×1200 (4:5) | (included in 20) |
      | Logo (landscape) | 1200×300 (4:1) | 5 logos total |
      | Logo (square) | 1200×1200 (1:1) | (included in 5) |
      | Video (landscape) | 1920×1080 (16:9) | 5 videos total |
      | Video (square) | 1080×1080 (1:1) | (included in 5) |
      | Video (vertical) | 1080×1920 (9:16) | 5 vertical videos |
      | Headlines | 30 chars | 5 headlines |
      | Long Headlines | 90 chars | 5 long headlines |
      | Descriptions | 90 chars | 5 descriptions |
      | Short Description | 60 chars | 1 |
      | Business Name | 25 chars | 1 |
      | Call to Action | Predefined list | 1 |
      | Final URL | Required | 1 per group |
      
      **Image Requirements:**
      - Minimum file size: 128×128 (will be upscaled, not recommended)
      - Maximum file size: 5120×5120
      - Max file weight: 5 MB
      - Formats: JPG, PNG
      - No text overlays > 20% of image area (recommendation, not hard rule)
      
      **Video Requirements:**
      - Minimum duration: 10 seconds
      - Maximum duration: No hard limit (60s recommended for most)
      - Minimum resolution: 480p
      - Recommended: 1080p or higher
      - Format: MP4, MOV
      - Max file size: 256 MB
      
      ### YouTube Ad Specifications
      
      | Format | Aspect Ratio | Min Resolution | Duration | Skip |
      |--------|-------------|---------------|----------|------|
      | Skippable In-Stream | 16:9 | 1920×1080 | 12s-3min (rec: 15-30s) | After 5s |
      | Non-Skippable In-Stream | 16:9 | 1920×1080 | 15-20s (max 30s) | No |
      | Bumper | 16:9 | 1920×1080 | ≤6s | No |
      | In-Feed (Discovery) | 16:9 | 1920×1080 | Any | N/A (click to play) |
      | YouTube Shorts | 9:16 | 1080×1920 | ≤60s | Swipe |
      
      **YouTube Shorts Safe Zones:**
      ```
      ┌──────────────────────┐
      │                      │  ← Top: Profile/search (0-80px)
      │                      │
      │   ╔══════════════╗   │
      │   ║              ║   │
      │   ║  SAFE ZONE   ║   │  ← Center: 1080×1420px
      │   ║  (content)   ║   │     (primary visible area)
      │   ║              ║   │
      │   ╚══════════════╝   │
      │                      │
      │ ████████████████████ │  ← Bottom 25% (480px): UI overlay
      │ ████████████████████ │     (like, comment, share, music)
      └──────────────────────┘
      ```
      - Bottom 480px = reserved for TikTok-style UI elements
      - Right side: Action buttons overlay
      - Keep all critical content in center 1080×1420px area
      
      ### Google Ads Extensions / Assets
      
      | Extension Type | Character Limits | Max Count | Notes |
      |---------------|-----------------|-----------|-------|
      | Sitelink | Link text: 25 chars, Desc: 35 chars ×2 | 20 per campaign | Min 4 recommended |
      | Callout | 25 characters | 20 per campaign | Min 4 recommended |
      | Structured Snippet | Header: predefined, Value: 25 chars | 2 per campaign | Choose relevant header |
      | Image | 1:1 (1200×1200) or 1.91:1 (1200×628) | 20 per campaign | Min 1MB, PNG/JPG |
      | Call | Phone number | 1 per campaign | With call tracking |
      | Lead Form | Headline: 30 chars, Desc: 200 chars | 1 per campaign | Privacy policy URL required |
      | Price | Header: 25 chars, Desc: 25 chars | 8 items | Min 3 items |
      | Promotion | Item: 20 chars | 1 per campaign | Can schedule dates |
      | Location | Business Profile linked | N/A | Requires GMB |
      
      ### Ad Strength Scoring Logic
      
      Google calculates Ad Strength for RSAs based on:
      
      1. **Headline uniqueness** — Measured via Levenshtein distance between headlines
         - Headlines too similar to each other = penalty
         - Each headline should take a different angle/value prop
      
      2. **Keyword inclusion** — Headlines should contain primary keywords from ad group
         - At least 2-3 headlines should include exact/close keyword variants
      
      3. **Headline count** — More unique headlines = better
         - 3-7 headlines = Poor to Average
         - 8-10 headlines = Good
         - 11-15 headlines = Excellent potential
      
      4. **Description variety** — Different selling points in each description
      
      5. **Performance correlation:**
         - "Excellent" Ad Strength RSAs show ~12% higher conversion rate vs "Poor"
         - Not a guarantee — test "Good" vs "Excellent" for your account
      
      ---
      
      ## Meta Ads Specifications
      
      ### Image Specifications
      
      | Placement | Recommended Ratio | Recommended Size | Max File Size |
      |-----------|------------------|-----------------|---------------|
      | Feed | 4:5 (preferred) | 1080×1350 | 30 MB |
      | Feed | 1:1 (supported) | 1080×1080 | 30 MB |
      | Stories / Reels | 9:16 | 1080×1920 | 30 MB |
      | Right Column | 1:1 | 1080×1080 | 30 MB |
      | Marketplace | 1:1 | 1080×1080 | 30 MB |
      | Search Results | 1:1 | 1080×1080 | 30 MB |
      
      **Image Rules:**
      - No explicit 20% text rule (removed) but AI still penalizes text-heavy images
      - Recommended: Keep text to <20% of image area for best delivery
      - Formats: JPG, PNG (PNG for graphics with text)
      - Minimum width: 600px (1080px recommended)
      
      ### Video Specifications
      
      | Placement | Aspect Ratio | Min Resolution | Max Duration | Max File Size |
      |-----------|-------------|---------------|-------------|---------------|
      | Feed | 4:5 (preferred) | 1080×1350 | 241 minutes | 4 GB |
      | Feed | 1:1 | 1080×1080 | 241 minutes | 4 GB |
      | Stories | 9:16 | 1080×1920 | 120 seconds | 4 GB |
      | Reels | 9:16 | 1080×1920 | 90 seconds (rec: 15-30s) | 4 GB |
      | In-Stream | 16:9 | 1920×1080 | 15 min | 4 GB |
      
      **Reels Safe Zone:**
      ```
      ┌──────────────────────┐
      │                      │  ← Top: Account name + caption preview
      │                      │
      │   ╔══════════════╗   │
      │   ║              ║   │
      │   ║  SAFE ZONE   ║   │  ← Center: 1080×1300px
      │   ║  (content)   ║   │     (primary visible area)
      │   ║              ║   │
      │   ╚══════════════╝   │
      │                      │
      │ ████████████████████ │  ← Bottom 35% (~670px): CTA, caption,
      │ ████████████████████ │     music, reactions overlay
      │ ████████████████████ │
      └──────────────────────┘
      ```
      
      **Video Encoding:**
      - Codec: H.264 (most compatible)
      - Audio: AAC, 128kbps+, stereo
      - Frame rate: 30fps (standard), 60fps (supported)
      - Bitrate: 4Mbps+ for 1080p
      
      ### Carousel Specifications
      
      | Component | Limit |
      |-----------|-------|
      | Cards | 2-10 per carousel |
      | Card aspect ratio | 1:1 (all cards must match) |
      | Card size | 1080×1080 |
      | Primary Text | 125 characters (recommended, 2200 max) |
      | Headline | 40 characters per card |
      | Description | 20 characters per card |
      | URL | 1 per card (can be different) |
      
      ### Collection & Instant Experience
      
      | Component | Limit |
      |-----------|-------|
      | Cover image/video | 1200×628 (1.91:1) or video |
      | Product images | 4 minimum, pulled from catalog |
      | Headline | 40 characters |
      | Instant Experience | Custom built — supports image, video, carousel, form |
      
      ### Advantage+ Creative Enhancements
      
      When enabled, Meta may automatically:
      - Adjust image brightness and contrast
      - Apply art filters
      - Crop images to different aspect ratios
      - Add music to video ads
      - Generate text variations
      - Enhance video (templates from static images)
      
      **Recommendation:** Test with A/B split — enable for 50% of budget, compare performance.
      
      ### Meta Ad Quality Ranking
      
      Meta provides 3 quality signals in ad reporting:
      1. **Quality Ranking** — Perceived quality vs competitors (Above/Below Average)
      2. **Engagement Rate Ranking** — Expected engagement vs competitors
      3. **Conversion Rate Ranking** — Expected conversion rate vs competitors
      
      All ranked as: Above Average, Average, Below Average (10th, 35th, 55th percentile thresholds)
      
      ---
      
      ## TikTok Ads Specifications
      
      ### Video Specifications
      
      | Ad Type | Min Resolution | Duration | Max File Size | Min Bitrate |
      |---------|---------------|----------|---------------|-------------|
      | Non-Spark In-Feed | 540×960 (9:16) | 5-60 seconds | 500 MB | 516 kbps |
      | Spark Ads | Organic post specs | Organic post specs | N/A | N/A |
      | TopView | 720×1280 (9:16) | 5-60 seconds | 500 MB | 2500 kbps |
      | Brand Takeover | 720×1280 | 3-5 seconds | 2 MB (image), 500 MB (video) | — |
      
      **Recommended:**
      - Resolution: 1080×1920 (9:16)
      - File format: MP4, MOV, MPEG, AVI
      - Encoding: H.264
      - Audio: Required (TikTok is sound-on platform)
      - Subtitles/captions: Required (accessibility + silent viewers)
      
      ### TikTok Safe Zone
      
      ```
      ┌──────────────────────────┐
      │ ████████████████████████ │ ← Top 0-150px: Status bar, account info
      │                          │
      │   ╔══════════════════╗   │
      │   ║                  ║   │
      │   ║   SAFE ZONE      ║   │
      │   ║                  ║   │  ← X: 40-940px
      │   ║   Key content    ║   │     Y: 150-1470px
      │   ║   goes here      ║   │
      │   ║                  ║   │
      │   ╚══════════════════╝   │
      │                       ██ │ ← Right 0-140px: Like, comment,
      │                       ██ │    share, profile buttons
      │ ████████████████████████ │ ← Bottom 0-450px: Caption, music,
      │ ████████████████████████ │    CTA button, navigation bar
      └──────────────────────────┘
      ```
      
      **Effective Safe Box Dimensions:**
      - X: 40px to 940px (900px wide)
      - Y: 150px to 1470px (1320px tall)
      - **All critical text, logos, CTAs must be within this box**
      
      ### Creative Quality Indicators
      
      TikTok's algorithm scores creative quality based on:
      1. **Completion rate** — % of users watching full video
      2. **Replay rate** — Users watching more than once
      3. **Engagement rate** — Likes, comments, shares relative to views
      4. **Click-through rate** — Clicks to landing page
      5. **Native feel** — Resemblance to organic content (not ads)
      
      ---
      
      ## LinkedIn Ads Specifications
      
      ### Single Image Ad
      
      | Component | Limit | Notes |
      |-----------|-------|-------|
      | Image size | 1200×627 (1.91:1) | Recommended |
      | Image size | 1080×1080 (1:1) | Supported, better for engagement |
      | Max file size | 5 MB | PNG, JPG |
      | Intro text | 150 chars (recommended) / 600 max | Truncated after ~150 on mobile |
      | Headline | 70 chars (recommended) / 200 max | Truncated after ~70 on feed |
      | Description | 100 chars | Below headline (desktop only) |
      | CTA Button | Predefined list | Required |
      
      ### Video Ad
      
      | Component | Limit | Notes |
      |-----------|-------|-------|
      | Aspect ratio | 16:9 (landscape), 1:1 (square), 9:16 (vertical - mobile only) |
      | File format | MP4 | Required |
      | File size | 75 KB - 500 MB | |
      | Duration | 3 seconds - 30 minutes | Recommended: 15-30 seconds |
      | Resolution | 360p minimum | 720p+ recommended |
      | Frame rate | 30fps | Standard |
      | Bitrate | >192 kbps | Higher = better quality |
      
      ### Document Ad (Carousel-like for PDFs)
      
      | Component | Limit |
      |-----------|-------|
      | File format | PDF, DOC, DOCX, PPT, PPTX |
      | File size | 100 MB max |
      | Pages | 300 max (10-20 recommended) |
      | Intro text | 150 chars recommended |
      
      ### Messaging Specs
      
      | Component | Limit |
      |-----------|-------|
      | Message Ad: Subject | 60 characters |
      | Message Ad: Body | 1,500 characters |
      | Message Ad: CTA button | 20 characters |
      | Conversation Ad: Intro | 500 characters |
      | Conversation Ad: CTA buttons | 5 max, 25 chars each |
      
      ### Dynamic Ads
      
      | Component | Limit |
      |-----------|-------|
      | Company name | 25 characters |
      | Headline | 50 characters |
      | Description | 70 characters |
      | CTA | Predefined list |
      
      ### LinkedIn Quality Score
      
      LinkedIn uses a CTR-focused quality score:
      - Higher CTR relative to competitors = lower CPC
      - Relevance score visible in campaign reporting
      - Creative engagement (reactions, comments, shares) boost quality
      - TLAs inherently score higher due to personal profile trust signals
      
      ---
      
      ## Microsoft Ads Specifications
      
      ### RSA (Responsive Search Ads)
      
      Mirrors Google Ads RSA specs exactly:
      | Component | Limit |
      |-----------|-------|
      | Headlines | 3-15, 30 chars each |
      | Descriptions | 2-4, 90 chars each |
      | Display paths | 2 paths, 15 chars each |
      | Final URL | Required |
      
      ### Multimedia Ads (Unique to Microsoft)
      
      | Component | Limit | Notes |
      |-----------|-------|-------|
      | Image | 1200×628 (1.91:1) | Required |
      | Short headline | 30 characters | |
      | Long headline | 90 characters | |
      | Description | 90 characters | |
      | Business name | 25 characters | |
      
      ### Extension Specs (Including Microsoft-Unique)
      
      | Extension | Limit | Microsoft-Unique? |
      |-----------|-------|-------------------|
      | Sitelink | 25 chars link text, 35 chars desc ×2 | No |
      | Callout | 25 characters | No |
      | Structured Snippet | 25 chars per value | No |
      | Image | 1:1 or 1.91:1 | No |
      | Action Extension | Predefined actions | **Yes** |
      | Filter Link Extension | Category-based deep links | **Yes** |
      | Review Extension | Third-party review quote | **Yes** |
      | Call | Phone number | No |
      | Location | Business profile | No |
      | Price | 25 chars header, 25 chars desc | No |
      | Promotion | 20 chars item | No |
      
      ---
      
      ## Cross-Platform Validation Standards
      
      ### Universal Safe Zone (All Vertical Video)
      
      For content that will run across TikTok, Reels, Shorts, and Stories:
      ```
      Center safe box: 900×1000px
        X: 40-940px (900px wide)
        Y: 450-1450px (1000px tall)
      
      This is the INTERSECTION of all platform safe zones.
      Content placed here is guaranteed visible on ALL platforms.
      ```
      
      ### Character Normalization
      
      For ad copy that will be adapted across platforms:
      
      | Component | Safe Limit | Platform With Strictest Limit |
      |-----------|-----------|------------------------------|
      | Short headline | 30 characters | Google RSA, Microsoft RSA |
      | Long headline | 70 characters | LinkedIn recommended |
      | Primary description | 90 characters | Google RSA, Microsoft RSA |
      | Short description | 25 characters | Extension callouts |
      
      ### File Encoding Standards
      
      | Component | Recommended | Notes |
      |-----------|-------------|-------|
      | Video codec | H.264 High Profile | Most compatible across all platforms |
      | Audio codec | AAC | Universal support |
      | Audio level | -14 LUFS (normalized) | Consistent loudness across platforms |
      | Container | MP4 | Universal support |
      | Frame rate | 30fps | Standard (60fps supported but not needed) |
      | Color space | Rec. 709 | Standard for web delivery |
      | Bitrate (1080p) | 8-12 Mbps | Balance quality vs file size |
      | Bitrate (4K) | 35-45 Mbps | If platform supports |
      
      ### Aspect Ratio Master Chart
      
      | Ratio | Dimensions | Used By |
      |-------|-----------|---------|
      | 16:9 | 1920×1080 | YouTube, Google Display, LinkedIn Landscape |
      | 9:16 | 1080×1920 | TikTok, Reels, Shorts, Stories |
      | 4:5 | 1080×1350 | Meta Feed (preferred), Pinterest |
      | 1:1 | 1080×1080 | Meta Feed, LinkedIn, Carousel |
      | 1.91:1 | 1200×628 | Google PMax Marketing, LinkedIn Single Image |
      | 4:1 | 1200×300 | Google Logo (landscape) |
      
    • README.md 886 B
      # Research Sources — claude-ads
      
      Raw processed research documents used to build the claude-ads reference database.
      These preserve the full context from each research source for future reference.
      
      ## Sources
      
      | File | Source | Date | Pages/Words |
      |------|--------|------|-------------|
      | `gemini-research.md` | Gemini Deep Research | Feb 2026 | ~340 lines |
      | `google-audit-checklists.md` | Google Deep Research PDF 1 | Feb 2026 | 29 pages |
      | `google-optimization-logic.md` | Google Deep Research PDF 2 | Feb 2026 | 18 pages |
      | `google-platform-specs.md` | Google Deep Research PDF 3 | Feb 2026 | 20 pages |
      | `claude-research.md` | Claude Deep Research | Feb 2026 | Pending |
      
      ## How These Feed Into References
      
      Research sources → extracted into structured `ads/references/` files → loaded on-demand by agents.
      Each reference file cites which research source(s) it draws from.
      
  • SKILL.md 7.3 KB
    ---
    name: ads
    description: Comprehensive ad account analysis across all major platforms (Google, Meta
      Comprehensive paid advertising audit and optimization for any business type.
      Performs full multi-platform audits (Google Ads, Meta Ads, LinkedIn Ads, TikTok
      Ads, Microsoft Ads), single-platform deep analysis, conversion tracking health
      checks, creative quality assessment, budget allocation optimization, bidding
      strategy evaluation, and compliance verification. Industry detection for SaaS,
      e-commerce, local service, B2B enterprise, info products, mobile app, real
      estate, healthcare, finance, and agency. Triggers on: "ads", "PPC", "paid
      advertising", "Google Ads", "Meta Ads", "Facebook Ads", "LinkedIn Ads",
      "TikTok Ads", "Microsoft Ads", "Bing Ads", "ad audit", "campaign audit",
      "ROAS", "conversion tracking", "creative fatigue", "bid strategy".
    argument-hint: "audit | google | meta | youtube | linkedin | tiktok | microsoft | creative | landing | budget | plan <type> | competitor"
    allowed-tools:
      - Read
      - Grep
      - Glob
      - Bash
      - WebFetch
    ---
    
    # Ads — Multi-Platform Paid Advertising Audit & Optimization
    
    Comprehensive ad account analysis across all major platforms (Google, Meta,
    LinkedIn, TikTok, Microsoft). Orchestrates 12 specialized sub-skills and
    6 subagents.
    
    ## Quick Reference
    
    | Command | What it does |
    |---------|-------------|
    | `/ads audit` | Full multi-platform audit with parallel subagent delegation |
    | `/ads google` | Google Ads deep analysis (Search, PMax, YouTube) |
    | `/ads meta` | Meta Ads deep analysis (FB, IG, Advantage+) |
    | `/ads youtube` | YouTube Ads specific analysis |
    | `/ads linkedin` | LinkedIn Ads deep analysis (B2B, Lead Gen) |
    | `/ads tiktok` | TikTok Ads deep analysis (Creative, Shop, Smart+) |
    | `/ads microsoft` | Microsoft/Bing Ads deep analysis (Copilot, Import) |
    | `/ads creative` | Cross-platform creative quality audit |
    | `/ads landing` | Landing page quality assessment for ad campaigns |
    | `/ads budget` | Budget allocation and bidding strategy review |
    | `/ads plan <business-type>` | Strategic ad plan with industry templates |
    | `/ads competitor` | Competitor ad intelligence analysis |
    
    ## Orchestration Logic
    
    When the user invokes `/ads audit`, delegate to subagents in parallel:
    1. Collect account data (exports, screenshots, or API access details)
    2. Detect business type and identify active platforms
    3. Spawn subagents: audit-google, audit-meta, audit-creative, audit-tracking, audit-budget, audit-compliance
    4. Collect results and generate unified report with Ads Health Score (0-100)
    5. Create prioritized action plan with Quick Wins
    
    For individual commands (`/ads google`, `/ads meta`, etc.), load the relevant
    sub-skill directly.
    
    ## Industry Detection
    
    Detect business type from ad account signals:
    - **SaaS**: trial_start/demo_request events, pricing page targeting, long attribution windows
    - **E-commerce**: purchase events, product catalog/feed, Shopping/PMax campaigns
    - **Local Service**: call extensions, location targeting, store visits, directions events
    - **B2B Enterprise**: LinkedIn Ads active, ABM lists, high CPA tolerance ($50+), long sales cycle
    - **Info Products**: webinar/course funnels, lead gen forms, low-ticket offers
    - **Mobile App**: app install campaigns, in-app events, deep linking
    - **Real Estate**: listing feeds, property-specific landing pages, geo-heavy targeting
    - **Healthcare**: HIPAA compliance flags, healthcare-specific ad policies
    - **Finance**: Special Ad Categories declared, financial products compliance
    - **Agency**: multiple client accounts, white-label reporting needs
    
    ## Quality Gates
    
    Hard rules — never violate these:
    - Never recommend Broad Match without Smart Bidding (Google)
    - 3x Kill Rule: flag any ad group/campaign with CPA >3x target for pause
    - Budget sufficiency: Meta ≥5x CPA per ad set, TikTok ≥50x CPA per ad group
    - Learning phase: never recommend edits during active learning phase
    - Compliance: always check Special Ad Categories for housing/employment/credit/finance
    - Creative: never run silent video ads on TikTok (sound-on platform)
    - Attribution: default to 7-day click / 1-day view (Meta), data-driven (Google)
    
    ## Reference Files
    
    Load these on-demand as needed — do NOT load all at startup.
    
    **Path resolution:** All references are installed at `~/.claude/skills/ads/references/`.
    When sub-skills or agents reference `ads/references/*.md`, resolve to
    `~/.claude/skills/ads/references/*.md`.
    
    - `references/scoring-system.md` — Weighted scoring algorithm and grading thresholds
    - `references/benchmarks.md` — Industry benchmarks by platform (CPC, CTR, CVR, ROAS)
    - `references/bidding-strategies.md` — Bidding decision trees per platform
    - `references/budget-allocation.md` — Platform selection matrix, scaling rules, MER
    - `references/platform-specs.md` — Creative specifications across all platforms
    - `references/conversion-tracking.md` — Pixel, CAPI, EMQ, ttclid implementation
    - `references/compliance.md` — Regulatory requirements, ad policies, privacy
    - `references/google-audit.md` — 74-check Google Ads audit checklist
    - `references/meta-audit.md` — 46-check Meta Ads audit checklist
    - `references/linkedin-audit.md` — 25-check LinkedIn Ads audit checklist
    - `references/tiktok-audit.md` — 25-check TikTok Ads audit checklist
    - `references/microsoft-audit.md` — 20-check Microsoft Ads audit checklist
    
    ## Scoring Methodology
    
    ### Ads Health Score (0-100)
    
    Per-platform score using weighted algorithm from `references/scoring-system.md`.
    Cross-platform aggregate weighted by budget share:
    
    ```
    Aggregate = Sum(Platform_Score x Platform_Budget_Share)
    ```
    
    ### Grading
    
    | Grade | Score | Action Required |
    |-------|-------|-----------------|
    | A | 90-100 | Minor optimizations only |
    | B | 75-89 | Some improvement opportunities |
    | C | 60-74 | Notable issues need attention |
    | D | 40-59 | Significant problems present |
    | F | <40 | Urgent intervention required |
    
    ### Priority Levels
    
    - **Critical**: Revenue/data loss risk (fix immediately)
    - **High**: Significant performance drag (fix within 7 days)
    - **Medium**: Optimization opportunity (fix within 30 days)
    - **Low**: Best practice, minor impact (backlog)
    
    ## Sub-Skills
    
    This skill orchestrates 12 specialized sub-skills:
    
    1. **ads-audit** — Full multi-platform audit with parallel delegation
    2. **ads-google** — Google Ads deep analysis (Search, PMax, YouTube)
    3. **ads-meta** — Meta Ads deep analysis (FB, IG, Advantage+)
    4. **ads-youtube** — YouTube Ads specific analysis
    5. **ads-linkedin** — LinkedIn Ads deep analysis
    6. **ads-tiktok** — TikTok Ads deep analysis
    7. **ads-microsoft** — Microsoft/Bing Ads deep analysis
    8. **ads-creative** — Cross-platform creative quality audit
    9. **ads-landing** — Landing page quality for ad campaigns
    10. **ads-budget** — Budget allocation and bidding strategy
    11. **ads-plan** — Strategic ad planning with industry templates
    12. **ads-competitor** — Competitor ad intelligence
    
    ## Subagents
    
    For parallel analysis during full audits:
    - `audit-google` — Google Ads checks (G01-G74)
    - `audit-meta` — Meta Ads checks (M01-M46)
    - `audit-creative` — Creative quality for LinkedIn, TikTok, Microsoft
    - `audit-tracking` — Conversion tracking health across all platforms
    - `audit-budget` — Budget, bidding, structure for LinkedIn, TikTok, Microsoft
    - `audit-compliance` — Compliance, settings, performance across all platforms
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related