ads
Comprehensive ad account analysis across all major platforms (Google, Meta
Install
npx skills add https://github.com/aAAaqwq/AGI-Super-Team/tree/main/skills/ads
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install aaaaqwq-agi-super-team@llmmart
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:
- Collect account data (exports, screenshots, or API access details)
- Detect business type and identify active platforms
- Spawn subagents: audit-google, audit-meta, audit-creative, audit-tracking, audit-budget, audit-compliance
- Collect results and generate unified report with Ads Health Score (0-100)
- 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 thresholdsreferences/benchmarks.md— Industry benchmarks by platform (CPC, CTR, CVR, ROAS)references/bidding-strategies.md— Bidding decision trees per platformreferences/budget-allocation.md— Platform selection matrix, scaling rules, MERreferences/platform-specs.md— Creative specifications across all platformsreferences/conversion-tracking.md— Pixel, CAPI, EMQ, ttclid implementationreferences/compliance.md— Regulatory requirements, ad policies, privacyreferences/google-audit.md— 74-check Google Ads audit checklistreferences/meta-audit.md— 46-check Meta Ads audit checklistreferences/linkedin-audit.md— 25-check LinkedIn Ads audit checklistreferences/tiktok-audit.md— 25-check TikTok Ads audit checklistreferences/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:
- ads-audit — Full multi-platform audit with parallel 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
- ads-tiktok — TikTok Ads deep analysis
- ads-microsoft — Microsoft/Bing Ads deep analysis
- ads-creative — Cross-platform creative quality audit
- ads-landing — Landing page quality for ad campaigns
- ads-budget — Budget allocation and bidding strategy
- ads-plan — Strategic ad planning with industry templates
- 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, Microsoftaudit-tracking— Conversion tracking health across all platformsaudit-budget— Budget, bidding, structure for LinkedIn, TikTok, Microsoftaudit-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.
Reviews (0)
No reviews yet.
No comments yet.