start-vibing-stacks 2.29.0 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/setup.js +15 -1
  2. package/package.json +1 -1
  3. package/stacks/_shared/ads-agents/README.md +452 -0
  4. package/stacks/_shared/ads-agents/RESEARCH-REPORT.md +157 -0
  5. package/stacks/_shared/ads-agents/SKILL.md +210 -0
  6. package/stacks/_shared/ads-agents/SKILLS-UPDATE-REPORT.md +255 -0
  7. package/stacks/_shared/ads-agents/agents/audit-budget.md +116 -0
  8. package/stacks/_shared/ads-agents/agents/audit-compliance.md +131 -0
  9. package/stacks/_shared/ads-agents/agents/audit-creative.md +127 -0
  10. package/stacks/_shared/ads-agents/agents/audit-google.md +113 -0
  11. package/stacks/_shared/ads-agents/agents/audit-meta.md +112 -0
  12. package/stacks/_shared/ads-agents/agents/audit-tracking.md +134 -0
  13. package/stacks/_shared/ads-agents/agents/copy-writer.md +188 -0
  14. package/stacks/_shared/ads-agents/agents/creative-strategist.md +199 -0
  15. package/stacks/_shared/ads-agents/agents/format-adapter.md +175 -0
  16. package/stacks/_shared/ads-agents/agents/visual-designer.md +245 -0
  17. package/stacks/_shared/ads-agents/references/additional-platforms.md +106 -0
  18. package/stacks/_shared/ads-agents/references/benchmarks.md +257 -0
  19. package/stacks/_shared/ads-agents/references/bidding-strategies.md +333 -0
  20. package/stacks/_shared/ads-agents/references/brand-dna-template.md +190 -0
  21. package/stacks/_shared/ads-agents/references/budget-allocation.md +150 -0
  22. package/stacks/_shared/ads-agents/references/compliance.md +280 -0
  23. package/stacks/_shared/ads-agents/references/conversion-tracking.md +246 -0
  24. package/stacks/_shared/ads-agents/references/copy-frameworks.md +187 -0
  25. package/stacks/_shared/ads-agents/references/funnel-content-copy-rules.md +44 -0
  26. package/stacks/_shared/ads-agents/references/gaql-notes.md +49 -0
  27. package/stacks/_shared/ads-agents/references/google-audit.md +217 -0
  28. package/stacks/_shared/ads-agents/references/google-creative-specs.md +119 -0
  29. package/stacks/_shared/ads-agents/references/image-providers.md +133 -0
  30. package/stacks/_shared/ads-agents/references/linkedin-audit.md +141 -0
  31. package/stacks/_shared/ads-agents/references/linkedin-creative-specs.md +129 -0
  32. package/stacks/_shared/ads-agents/references/mcp-integration.md +125 -0
  33. package/stacks/_shared/ads-agents/references/meta-audit.md +141 -0
  34. package/stacks/_shared/ads-agents/references/meta-creative-specs.md +134 -0
  35. package/stacks/_shared/ads-agents/references/microsoft-audit.md +158 -0
  36. package/stacks/_shared/ads-agents/references/microsoft-creative-specs.md +123 -0
  37. package/stacks/_shared/ads-agents/references/platform-specs.md +276 -0
  38. package/stacks/_shared/ads-agents/references/scoring-system.md +169 -0
  39. package/stacks/_shared/ads-agents/references/tiktok-audit.md +165 -0
  40. package/stacks/_shared/ads-agents/references/tiktok-creative-specs.md +139 -0
  41. package/stacks/_shared/ads-agents/references/voice-to-style.md +87 -0
  42. package/stacks/_shared/ads-agents/references/youtube-creative-specs.md +134 -0
  43. package/stacks/_shared/ads-agents/skills/ads-apple/SKILL.md +225 -0
  44. package/stacks/_shared/ads-agents/skills/ads-audit/SKILL.md +108 -0
  45. package/stacks/_shared/ads-agents/skills/ads-budget/SKILL.md +198 -0
  46. package/stacks/_shared/ads-agents/skills/ads-competitor/SKILL.md +198 -0
  47. package/stacks/_shared/ads-agents/skills/ads-create/SKILL.md +198 -0
  48. package/stacks/_shared/ads-agents/skills/ads-creative/SKILL.md +208 -0
  49. package/stacks/_shared/ads-agents/skills/ads-dna/SKILL.md +245 -0
  50. package/stacks/_shared/ads-agents/skills/ads-generate/SKILL.md +173 -0
  51. package/stacks/_shared/ads-agents/skills/ads-google/SKILL.md +192 -0
  52. package/stacks/_shared/ads-agents/skills/ads-landing/SKILL.md +186 -0
  53. package/stacks/_shared/ads-agents/skills/ads-linkedin/SKILL.md +200 -0
  54. package/stacks/_shared/ads-agents/skills/ads-math/SKILL.md +216 -0
  55. package/stacks/_shared/ads-agents/skills/ads-meta/SKILL.md +167 -0
  56. package/stacks/_shared/ads-agents/skills/ads-microsoft/SKILL.md +163 -0
  57. package/stacks/_shared/ads-agents/skills/ads-photoshoot/SKILL.md +220 -0
  58. package/stacks/_shared/ads-agents/skills/ads-plan/SKILL.md +176 -0
  59. package/stacks/_shared/ads-agents/skills/ads-test/SKILL.md +199 -0
  60. package/stacks/_shared/ads-agents/skills/ads-tiktok/SKILL.md +190 -0
  61. package/stacks/_shared/ads-agents/skills/ads-youtube/SKILL.md +199 -0
  62. package/stacks/_shared/memories/funnel-content-copy.md +81 -0
  63. package/templates/CLAUDE-python.md +6 -0
@@ -0,0 +1,134 @@
1
+ # Meta Creative Specs: Generation Guide
2
+
3
+ <!-- Updated: 2026-03-12 -->
4
+ <!-- Source: platform-specs.md + Meta Ads Manager requirements -->
5
+ <!-- Used by: ads-generate, visual-designer agent -->
6
+
7
+ ## Purpose
8
+
9
+ Generation-ready specifications for Meta (Facebook + Instagram) ad creative. Includes
10
+ safe zone diagrams, copy limits, and prompt modifiers for each placement type.
11
+
12
+ ---
13
+
14
+ ## Image Specs by Placement
15
+
16
+ | Placement | Ratio | Dimensions | Priority |
17
+ |-----------|-------|-----------|----------|
18
+ | Feed (preferred) | 4:5 | 1080×1350 | **Primary target** |
19
+ | Feed (square) | 1:1 | 1080×1080 | High |
20
+ | Stories | 9:16 | 1080×1920 | High |
21
+ | Reels | 9:16 | 1080×1920 | High |
22
+ | Right Column | 1:1 | 1080×1080 | Low |
23
+ | Max file size: 30MB. Min width: 600px (1080px recommended).
24
+
25
+ **Primary generation target: 1080×1350 (4:5)**
26
+ This ratio performs best in Feed and covers Instagram Feed.
27
+ Always generate this first. Generate 9:16 for Stories/Reels campaigns.
28
+
29
+ ---
30
+
31
+ ## Safe Zones: Reels and Stories (1080×1920)
32
+
33
+ ```
34
+ ┌─────────────────────────────────┐ ← Top (Y:0)
35
+ │ STATUS BAR │ ← Y:0-120 (avoid)
36
+ │ │
37
+ │ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │ ← SAFE START Y:120
38
+ │ ▓ ▓ │
39
+ │ ▓ SAFE CONTENT ZONE ▓ │
40
+ │ ▓ 1080×1300px ▓ │
41
+ │ ▓ (center of frame) ▓ │
42
+ │ ▓ ▓ │
43
+ │ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │ ← SAFE END Y:1420
44
+ │ │
45
+ │ CTA BUTTON / CAPTION AREA │ ← Y:1420-1920 (avoid)
46
+ │ REACTIONS / PROFILE INFO │
47
+ └─────────────────────────────────┘ ← Bottom (Y:1920)
48
+ ```
49
+
50
+ **Bottom 35% (~670px) is UI overlay.** Keep all critical text, faces, and product
51
+ in the center 1080×1300px zone.
52
+
53
+ **Generation instruction for 9:16 prompts:**
54
+ - Subject and key visual elements in top 60% of frame
55
+ - Bottom 450px should be background only (solid color or soft gradient)
56
+ - Vertical composition only; horizontal crops are rejected at upload
57
+
58
+ ---
59
+
60
+ ## Safe Zone: Feed (1080×1350, 4:5)
61
+
62
+ No hard safe zone required. The full frame is visible. However:
63
+ - Bottom 120px may be covered by the like/comment bar on mobile
64
+ - Keep primary subject in upper 80% of frame
65
+
66
+ ---
67
+
68
+ ## Copy Limits
69
+
70
+ | Component | Recommended | Platform Max |
71
+ |-----------|------------|-------------|
72
+ | Primary Text | 40-125 chars | 2,200 |
73
+ | Headline | 27-40 chars | N/A |
74
+ | Description | 20 chars (carousel) | N/A |
75
+ | Reels Primary Text | 72 chars max visible | N/A |
76
+ | CTA Button | Predefined list | N/A |
77
+
78
+ **Copy generation rule:** Write primary text ≤125 chars. Anything over 125 chars
79
+ gets truncated with "See More" on mobile; the critical message must land in 125.
80
+
81
+ ---
82
+
83
+ ## Carousel Specs
84
+
85
+ - 2-10 cards per carousel
86
+ - All cards: 1:1 (1080×1080)
87
+ - Per card: Headline ≤40 chars, Description ≤20 chars
88
+ - Generate each card as a separate image prompt
89
+ - Maintain consistent visual style across all cards (same background, same lighting)
90
+
91
+ ---
92
+
93
+ ## Advantage+ Creative
94
+
95
+ When Advantage+ Creative enhancements are enabled, Meta may:
96
+ - Crop the image to different aspect ratios
97
+ - Adjust brightness/contrast
98
+ - Add music to static images
99
+ - Generate text variations from your primary text
100
+
101
+ **Implication for generation:** Generate a "base" image that looks good at both
102
+ 1:1 and 4:5 ratios. Avoid placing critical elements near edges.
103
+
104
+ ---
105
+
106
+ ## Video Specs (for storyboard reference)
107
+
108
+ | Placement | Ratio | Resolution | Duration |
109
+ |-----------|-------|-----------|----------|
110
+ | Feed | 4:5 | 1080×1350 | Up to 241 min |
111
+ | Reels | 9:16 | 1080×1920 | ≤90s (rec 15-30s) |
112
+ | Stories | 9:16 | 1080×1920 | ≤120s |
113
+ | In-Stream | 16:9 | 1920×1080 | ≤15 min |
114
+
115
+ ---
116
+
117
+ ## Image Generation Prompt Modifiers
118
+
119
+ **For Feed (4:5 and 1:1):**
120
+ - `"vertical composition"` or `"square composition"`
121
+ - `"subject fills upper portion of frame"`
122
+ - `"clean, scroll-stopping visual"`
123
+ - `"no text overlay"` (text added via ad copy fields)
124
+
125
+ **For Stories/Reels (9:16):**
126
+ - `"vertical composition, subject in top 60% of frame"`
127
+ - `"bottom third is clear background or soft gradient"`
128
+ - `"bold, high-contrast visual"`
129
+ - `"mobile-first, designed for small screen viewing"`
130
+
131
+ **Always avoid:**
132
+ - Cluttered backgrounds (compete with feed content)
133
+ - Low contrast (thumb-stop requires visual pop)
134
+ - Faces cropped at edges (Instagram crops aggressively on some placements)
@@ -0,0 +1,158 @@
1
+ # Microsoft Ads Audit Checklist
2
+
3
+ <!-- Updated: 2026-05-14 | v1.6 -->
4
+ <!-- Sources: Google Research PDF 1 (MS01-MS20), Claude Research, Gemini Research, Seer Interactive, 2026 Verification Pass -->
5
+ <!-- Total Checks: 24 | Categories: 6 | See scoring-system.md for weights and algorithm -->
6
+
7
+ ## Quick Reference
8
+
9
+ | Category | Weight | Check Count |
10
+ |----------|--------|-------------|
11
+ | Technical Setup | 25% | MS01-MS03 (3 checks) |
12
+ | Syndication & Bidding | 20% | MS04-MS07 (4 checks) |
13
+ | Structure & Audience | 20% | MS08-MS10 (3 checks) |
14
+ | Creative & Extensions | 20% | MS11-MS13 + MS19-MS20 (5 checks) |
15
+ | Settings & Performance | 15% | MS14-MS18 (5 checks) |
16
+ | Import Safety, Compliance & Video (v1.5) | N/A | MS-SI1, MS-CM1, MS-CT1, MS-VD1 (4 checks) |
17
+
18
+ ---
19
+
20
+ ## Technical Setup (25% weight)
21
+
22
+ | ID | Check | Severity | Pass | Warning | Fail |
23
+ |----|-------|----------|------|---------|------|
24
+ | MS01 | UET tag installed | Critical | Universal Event Tracking tag firing on all pages | Firing on most pages (>90%) | UET tag not installed or broken |
25
+ | MS02 | Enhanced conversions | High | Enhanced conversions enabled for improved matching | N/A | Not enabled |
26
+ | MS03 | Google Ads import validation | High | If imported: all settings verified (URLs, extensions, bids). Scheduled auto-imports deactivated after initial setup | Minor discrepancies found | Import errors not resolved (broken URLs, missing goals). Scheduled imports still active without monitoring |
27
+
28
+ ### Import Validation Critical Note
29
+ Google Ads imports are the most common Microsoft Ads setup method. Common import issues:
30
+ - Conversion goals often break during import
31
+ - Tracking templates may not transfer
32
+ - Extensions may be partially imported
33
+ - Bid adjustments may not match
34
+ - **Scheduled auto-imports can re-enable paused campaigns** (a common billing surprise)
35
+ - ALWAYS validate conversion tracking after import
36
+ - **Deactivate auto-imports immediately after initial setup** to prevent silent campaign re-enablement and overwritten manual bid/budget changes
37
+
38
+ ---
39
+
40
+ ## Syndication & Bidding (20% weight)
41
+
42
+ | ID | Check | Severity | Pass | Warning | Fail |
43
+ |----|-------|----------|------|---------|------|
44
+ | 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) |
45
+ | MS05 | Audience Network settings | High | Audience Network enabled only if testing intentionally. Run Website URL publisher reports weekly and maintain account-level exclusion lists | Audience Network enabled with regular publisher report monitoring | Audience Network ON by default without review. B2B clients see CPA 2-4x higher from Audience Network than search alone (Seer Interactive). Microsoft auto-includes it by default |
46
+ | 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 |
47
+ | MS07 | Target New Customers (PMax) | Medium | "Target New Customers" enabled for growth campaigns (Beta 2026) | N/A | Not tested for eligible PMax campaigns |
48
+
49
+ ---
50
+
51
+ ## Structure & Audience (20% weight)
52
+
53
+ | ID | Check | Severity | Pass | Warning | Fail |
54
+ |----|-------|----------|------|---------|------|
55
+ | MS08 | Campaign structure | High | Mirrors Google structure (if imported) or follows best practices | Minor structural issues | Disorganized structure, no naming convention |
56
+ | 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) |
57
+ | MS10 | LinkedIn profile targeting | High | LinkedIn targeting utilized for B2B: up to 16% greater CTR and 64% greater conversion rate vs non-audience-targeted ads. Available across Search, DSA, Shopping, PMax, and Multimedia ads. Dimensions: Company (80,000+), Industry (148), Job Function (26). Use Observation (Bid Only) mode first. CPCs 30-70% cheaper than LinkedIn Ads directly | Partial LinkedIn targeting | No LinkedIn targeting for B2B campaigns (unique advantage missed) |
58
+
59
+ ---
60
+
61
+ ## Creative & Extensions (20% weight)
62
+
63
+ | ID | Check | Severity | Pass | Warning | Fail |
64
+ |----|-------|----------|------|---------|------|
65
+ | MS11 | RSA asset count | High | ≥8 headlines, ≥3 descriptions per RSA | 3-7 headlines, 2 descriptions | <3 headlines (minimum) |
66
+ | MS12 | Multimedia Ads | Medium | Multimedia Ads tested (unique rich visual format) | N/A | Not tested |
67
+ | MS13 | Ad copy uniqueness | Medium | Ad copy optimized for Bing demographics (older, affluent, educated) | Same copy as Google, untested | N/A |
68
+ | MS19 | Action Extension | Medium | Action Extension utilized (unique to Microsoft) | N/A | Not tested |
69
+ | MS20 | Filter Link Extension | Medium | Filter Link Extension tested for product/service categories | N/A | Not tested |
70
+
71
+ ### Microsoft-Unique Formats
72
+ These extensions are ONLY available on Microsoft Ads:
73
+ - **Action Extension**: Predefined action buttons (clickable CTAs)
74
+ - **Filter Link Extension**: Category-based deep links (product filters)
75
+ - **Multimedia Ads**: Rich visual search ads (image + headline + description)
76
+ - **Review Extension**: Third-party review quotes in ads
77
+
78
+ ---
79
+
80
+ ## Settings & Performance (15% weight)
81
+
82
+ | ID | Check | Severity | Pass | Warning | Fail |
83
+ |----|-------|----------|------|---------|------|
84
+ | MS14 | Copilot placement | Medium | Copilot chat placement enabled for PMax campaigns. CTV ads now serve on Netflix, Max, Hulu, Roku, discovery+. Auto-generated RSA assets enabled by default globally Jan 2026 (5% CTR increase). Image Animation via Copilot pilot (Nov 2025): static images converted to video assets | N/A | Not enabled (73% higher CTR opportunity) |
85
+ | MS15 | Conversion goals | High | Goals configured natively (not relying on Google-imported goals) | Imported goals verified and working | Imported goals not verified |
86
+ | 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 |
87
+ | MS17 | Conversion rate comparison | Medium | Microsoft CVR comparable to Google | CVR 25-50% lower | CVR >50% lower than Google |
88
+ | MS18 | Impression share | Medium | IS tracked for brand and top non-brand terms | Partially tracked | Not tracked |
89
+
90
+ ---
91
+
92
+ ## Quick Wins (Microsoft)
93
+
94
+ | Check | Fix | Time |
95
+ |-------|-----|------|
96
+ | MS10: LinkedIn targeting | Enable LinkedIn profile targeting for B2B campaigns | 5 min |
97
+ | MS14: Copilot placement | Enable Copilot chat placement in PMax settings | 2 min |
98
+ | MS04: Partner network | Review syndicated partner performance, exclude low-performers | 10 min |
99
+ | MS19: Action Extension | Add Action Extension to campaigns | 5 min |
100
+ | MS12: Multimedia Ads | Create Multimedia Ad from existing assets | 10 min |
101
+ | MS03: Import validation | Verify conversion goals and tracking post-import | 10 min |
102
+
103
+ ---
104
+
105
+ ## Microsoft-Specific Context
106
+
107
+ | Fact | Value |
108
+ |------|-------|
109
+ | Average CPC | $1.20-$1.55 (20-35% discount vs Google) |
110
+ | Average CTR | 2.83-3.1% (higher than Google's ~2.0%) |
111
+ | US desktop share | 16.75-17.58%; with partners ~25% |
112
+ | Copilot CTR lift | 73% higher than traditional search |
113
+ | Copilot CVR lift | 16% stronger conversion rates |
114
+ | Copilot journey | 33% shorter customer journeys |
115
+ | Purchase intent | 194% more likely to purchase in Copilot |
116
+ | Copilot Checkout | Launched Jan 2026 (in-conversation commerce) |
117
+ | 37% of advertisers | Report higher ROAS vs Google |
118
+ | Bing users click paid ads | 25% more often than Google users |
119
+ | Audience skew | Affluent (~50% top 25% HHI), educated (34% degrees), older (45-64: 38%) |
120
+ | Import options | Quick Import, Smart Import, Advanced Import (Feb 2025) |
121
+ | API version | v13 stable, SOAP-based with REST emerging |
122
+
123
+ ---
124
+
125
+ ## Copilot Integration (2026)
126
+
127
+ Microsoft's Copilot represents the biggest unique advantage:
128
+
129
+ 1. **Copilot Chat Placement**: Ads appear within conversational search
130
+ 2. **Copilot Checkout** (Jan 2026); Full commerce within conversations
131
+ 3. **Higher engagement**: 73% CTR lift, 16% CVR lift, 33% shorter journeys
132
+ 4. **Shopping intent**: Users 194% more likely to purchase
133
+ 5. **Launch partners**: Urban Outfitters, Etsy, Ashley Furniture
134
+
135
+ Ensure PMax campaigns have Copilot placement enabled to capture this growing channel.
136
+
137
+ ---
138
+
139
+ ## Import Safety, Compliance & Video (v1.5)
140
+
141
+ | ID | Check | Severity | Pass | Warning | Fail |
142
+ |----|-------|----------|------|---------|------|
143
+ | MS-SI1 | Scheduled import status | Critical | Scheduled Google Ads imports disabled or closely monitored. Auto-imports can silently re-enable paused campaigns and overwrite manual bid/budget changes | Imports active with manual review schedule | Scheduled imports running unmonitored (risk of re-enabling paused campaigns and unexpected spend) |
144
+ | MS-CM1 | Consent Mode compliance (EEA/UK) | High | Consent Mode implemented by May 5, 2025 deadline for EEA/UK/Switzerland audiences. Required for behavioral modeling and conversion recovery | Implementation in progress | Not implemented for EEA/UK/CH audiences (non-compliant since May 2025) |
145
+ | MS-CT1 | CTV ad inventory coverage | Medium | CTV placements evaluated for brand/awareness campaigns. Microsoft CTV now serves on Netflix, Max, Hulu, Roku, discovery+. 30-second non-skippable format available | N/A | CTV not evaluated despite brand awareness objectives |
146
+ | MS-VD1 | Video ad inventory utilization | Medium | Video formats tested: 9:16 vertical video (available since Apr 2025), up to 90-second duration. Copilot Image Animation (Nov 2025 pilot) evaluated for static-to-video conversion | N/A | No video assets despite available inventory and video-capable campaigns |
147
+
148
+ ---
149
+
150
+ ## Context Notes
151
+
152
+ - **PMax on Microsoft**: Up to 300 campaigns per account (vs 100 on Google). LinkedIn profile data integration. No video placements. Self-serve negative keywords in open beta (Feb 2026)
153
+ - **Scheduled imports danger**: Can re-enable paused campaigns silently. Deactivate after initial setup
154
+ - **CTV inventory (2025-2026)**: Netflix, Max, Hulu, Roku, discovery+. 30-second non-skippable on CTV
155
+ - **Auto-generated RSA (Jan 2026)**: Enabled by default globally. 5% CTR increase
156
+ - **Smart Shopping to PMax (Aug 2025)**: All Smart Shopping auto-upgraded
157
+ - **Copilot ads**: Show beneath AI responses with "Sponsored" labels in Copilot conversations
158
+ - **9:16 vertical video (Apr 2025)**: 90-second duration support added
@@ -0,0 +1,123 @@
1
+ # Microsoft Creative Specs: Generation Guide
2
+
3
+ <!-- Updated: 2026-03-12 -->
4
+ <!-- Source: platform-specs.md + Microsoft Advertising requirements -->
5
+ <!-- Used by: ads-generate, visual-designer agent -->
6
+
7
+ ## Purpose
8
+
9
+ Generation-ready specifications for Microsoft (Bing) Ads creative. Microsoft creative
10
+ is largely a subset of Google creative; most Google assets can be reused directly.
11
+ The unique format is the Multimedia Ad.
12
+
13
+ ---
14
+
15
+ ## Multimedia Ads (Microsoft-Unique)
16
+
17
+ The primary image-based format unique to Microsoft Ads.
18
+
19
+ | Component | Spec |
20
+ |-----------|------|
21
+ | Image | 1200×628 (1.91:1) |
22
+ | Short Headline | 30 chars |
23
+ | Long Headline | 90 chars |
24
+ | Description | 90 chars |
25
+ | Business Name | 25 chars |
26
+
27
+ **Generation target: 1200×628 (1.91:1)**
28
+ This is the only unique image dimension for Microsoft. Everything else mirrors Google.
29
+
30
+ ---
31
+
32
+ ## Responsive Search Ads (RSA)
33
+
34
+ Identical to Google RSA character limits:
35
+
36
+ | Component | Min | Max | Character Limit |
37
+ |-----------|-----|-----|-----------------|
38
+ | Headlines | 3 | 15 | 30 chars each |
39
+ | Descriptions | 2 | 4 | 90 chars each |
40
+ | Display Paths | N/A | 2 | 15 chars each |
41
+
42
+ **Asset reuse:** RSA copy written for Google can be used directly in Microsoft
43
+ with no changes. Use the same headlines and descriptions.
44
+
45
+ ---
46
+
47
+ ## Audience Ads (Display Network)
48
+
49
+ | Size | Dimensions |
50
+ |------|-----------|
51
+ | Landscape | 1200×628 (1.91:1) |
52
+ | Square | 1200×1200 (1:1) |
53
+ | Small square | 628×628 (1:1) |
54
+
55
+ These display on the Microsoft Audience Network (MSN, Outlook, Edge).
56
+ **Asset reuse:** Generate the same 3 Google Display assets (1200×628, 1200×1200, and
57
+ 960×1200 scaled to 628×628). No unique generation needed.
58
+
59
+ ---
60
+
61
+ ## Microsoft-Unique Extensions
62
+
63
+ These require copy but no image generation:
64
+
65
+ | Extension | Description |
66
+ |-----------|-------------|
67
+ | Action Extension | Pre-defined action buttons (Book Now, Download, etc.) |
68
+ | Filter Link Extension | Category-based deep links (e.g., product categories) |
69
+ | Review Extension | Third-party review quotes with source attribution |
70
+
71
+ ---
72
+
73
+ ## Copilot Ad Integration (2025-2026)
74
+
75
+ Microsoft Ads now surface in Bing/Copilot AI responses. This affects:
76
+ - **Ad copy relevance**: Copilot reads headline + description for context matching
77
+ - **Sitelinks**: More likely to be shown in AI responses than on traditional SERPs
78
+ - **Image assets**: Multimedia Ad images may appear in Copilot responses
79
+
80
+ **Generation implication:** Use clear, descriptive product language in image alt context.
81
+ Generate images that visually communicate the product/service without requiring copy.
82
+
83
+ ---
84
+
85
+ ## Google Import Strategy
86
+
87
+ Most advertisers import Google campaigns to Microsoft. After import:
88
+ - Bid adjustment: Microsoft CPCs are typically 20-35% lower than Google
89
+ - Image assets: All Google PMax images (1200×628, 1200×1200, 960×1200) import directly
90
+ - No additional image generation needed for Microsoft-only
91
+
92
+ **When to generate Microsoft-specific assets:**
93
+ - Multimedia Ads (1200×628) if not using Google import
94
+ - Custom copy for Copilot-optimized RSA headlines
95
+
96
+ ---
97
+
98
+ ## Image Generation Prompt Modifiers
99
+
100
+ **For Multimedia Ads (1200×628):**
101
+ - `"horizontal composition, 1.91:1 aspect ratio"`
102
+ - `"clean professional background"`
103
+ - `"Microsoft Bing search audience; professional, trustworthy aesthetic"`
104
+ - `"product or service clearly visible"`
105
+
106
+ **Tone guidance:** Microsoft's audience skews slightly older (35+) and more professional
107
+ than Google Search. Apply a slightly more conservative, trust-signaling visual style.
108
+ Avoid TikTok-style dramatic edits or Meta-style casual lifestyle photography.
109
+
110
+ ---
111
+
112
+ ## Asset Reuse Summary
113
+
114
+ | Source | Reusable for Microsoft? |
115
+ |--------|------------------------|
116
+ | Google PMax 1200×628 | ✅ Direct reuse for Multimedia Ads |
117
+ | Google PMax 1200×1200 | ✅ Direct reuse for Audience Ads |
118
+ | Google RSA copy | ✅ Use as-is |
119
+ | Meta 4:5 (1080×1350) | ❌ Wrong ratio |
120
+ | TikTok 9:16 (1080×1920) | ❌ Wrong ratio |
121
+
122
+ **When using Google import:** No new image generation needed for Microsoft.
123
+ Generate Microsoft-specific assets only if running Microsoft-native campaigns.
@@ -0,0 +1,276 @@
1
+ # Platform Creative Specifications
2
+
3
+ <!-- Updated: 2026-05-14 | v1.6 -->
4
+ <!-- Sources: Google Research PDF 3, Claude Research, 2026 Platform Research, 2026 Verification Pass -->
5
+
6
+ ## Google Ads
7
+
8
+ ### Responsive Search Ads (RSA)
9
+ | Component | Min | Max | Char Limit |
10
+ |-----------|-----|-----|------------|
11
+ | Headlines | 3 | 15 | 30 chars each |
12
+ | Descriptions | 2 | 4 | 90 chars each |
13
+ | Display Paths | N/A | 2 | 15 chars each |
14
+ | Final URL | 1 | 1 | Required |
15
+
16
+ Best practice: 8-10 headlines, 2-3 descriptions (Claude), 12-15 for Excellent (Google).
17
+
18
+ **Pinning Rules:**
19
+ - Pin 1 headline to Position 1 (brand/main keyword)
20
+ - Pin 1 headline to Position 2 (secondary angle)
21
+ - Each pinned position: provide 2-3 variants
22
+ - Leave Position 3 unpinned
23
+ - Never pin all positions (kills Ad Strength)
24
+
25
+ **Dynamic Insertion:**
26
+ ```
27
+ {KeyWord:Default Text} # Keyword insertion
28
+ {COUNTDOWN(YYYY/MM/DD HH:MM:SS)} # Countdown timer
29
+ {LOCATION(City)} # Location insertion
30
+ {CUSTOMIZER.attribute:default} # Ad customizer
31
+ ```
32
+
33
+ ### Performance Max Asset Groups
34
+ | Asset Type | Spec | Max Per Group |
35
+ |-----------|------|---------------|
36
+ | Marketing Image | 1200×628 (1.91:1) | 20 total |
37
+ | Square Image | 1200×1200 (1:1) | (in 20) |
38
+ | Portrait Image | 960×1200 (4:5) | (in 20) |
39
+ | Logo (landscape) | 1200×300 (4:1) | 5 total |
40
+ | Logo (square) | 1200×1200 (1:1) | (in 5) |
41
+ | Video (landscape) | 1920×1080 (16:9) | 5 total |
42
+ | Video (square) | 1080×1080 (1:1) | (in 5) |
43
+ | Video (vertical) | 1080×1920 (9:16) | 5 vertical |
44
+ | Headlines | 30 chars | 5 |
45
+ | Long Headlines | 90 chars | 5 |
46
+ | Descriptions | 90 chars | 5 |
47
+ | Short Description | 60 chars | 1 |
48
+ | Business Name | 25 chars | 1 |
49
+
50
+ **Image:** Min 128×128, max 5120×5120, max 5MB, JPG/PNG
51
+ **Video:** Min 10s, rec 60s, min 480p, rec 1080p+, MP4/MOV, max 256MB
52
+
53
+ ### YouTube Ad Formats
54
+ | Format | Ratio | Resolution | Duration | Skip |
55
+ |--------|-------|-----------|----------|------|
56
+ | Skippable In-Stream | 16:9 | 1920×1080 | 12s-3min (rec 15-30s) | After 5s |
57
+ | Non-Skippable | 16:9 | 1920×1080 | 15-60s (expanded 2025) | No |
58
+ | Bumper | 16:9 | 1920×1080 | ≤6s | No |
59
+ | In-Feed | 16:9 | 1920×1080 | Any | N/A |
60
+ | YouTube Shorts | 9:16 | 1080×1920 | ≤60s | Swipe |
61
+
62
+ **YouTube Shorts Safe Zone:** Center 1080×1420px. Bottom 480px = UI overlay.
63
+ **Shorts CTA timing:** CTA button appears at **3 seconds** for PMax/App/Demand Gen campaigns, **10 seconds** for Video View/Reach campaigns. Music/voiceover increases conversions by 20%+.
64
+
65
+ ### Google Extensions / Assets
66
+ | Type | Char Limit | Max Count | Notes |
67
+ |------|-----------|-----------|-------|
68
+ | Sitelink | 25 text, 35 desc ×2 | 20 | Min 4 rec; +3.5% conv with 6 |
69
+ | Callout | 25 chars | 20 | Min 4 rec |
70
+ | Structured Snippet | 25 chars | 2 sets | Predefined headers |
71
+ | Image | 1:1 or 1.91:1 | 20 | Min 1MB |
72
+ | Call | Phone number | 1 | With call tracking |
73
+ | Lead Form | 30 headline, 200 desc | 1 | Privacy URL required |
74
+ | Price | 25 header, 25 desc | 8 items | Min 3 |
75
+ | Promotion | 20 item | 1 | Schedulable |
76
+
77
+ ### Ad Strength Scoring
78
+ - Headline uniqueness (Levenshtein distance)
79
+ - Keyword inclusion in headlines
80
+ - 3-7 headlines = Poor/Average, 8-10 = Good, 11-15 = Excellent
81
+ - "Excellent" → ~12-15% more conversions (diagnostic, not direct factor)
82
+
83
+ ---
84
+
85
+ ## Meta Ads
86
+
87
+ ### Image Specs
88
+ | Placement | Ratio | Size | Max |
89
+ |-----------|-------|------|-----|
90
+ | Feed (preferred) | 4:5 | 1080×1350 | 30MB |
91
+ | Feed (supported) | 1:1 | 1080×1080 | 30MB |
92
+ | Stories/Reels | 9:16 | 1080×1920 | 30MB |
93
+ | Right Column | 1:1 | 1080×1080 | 30MB |
94
+ | Min width: 600px (1080px rec). No hard 20% text rule but AI penalizes heavy text.
95
+
96
+ ### Video Specs
97
+ | Placement | Ratio | Resolution | Max Duration | Max Size |
98
+ |-----------|-------|-----------|-------------|----------|
99
+ | Feed | 4:5 (pref) | 1080×1350 | 241 min | 4GB |
100
+ | Feed | 1:1 | 1080×1080 | 241 min | 4GB |
101
+ | Stories | 9:16 | 1080×1920 | 120s | 4GB |
102
+ | Reels | 9:16 | 1080×1920 | 90s (rec 15-30s) | 4GB |
103
+ | In-Stream | 16:9 | 1920×1080 | 15 min | 4GB |
104
+
105
+ **Reels Safe Zone:** Center 1080×1300px. Bottom 35% (~670px) = CTA, caption, reactions.
106
+
107
+ ### Text Limits
108
+ | Component | Recommended | Max |
109
+ |-----------|------------|-----|
110
+ | Primary Text | 125 chars | 2200 |
111
+ | Headline | 27-40 chars | N/A |
112
+ | Description | 20 chars (carousel) | N/A |
113
+ | Reels Primary | 72 chars | N/A |
114
+
115
+ ### Carousel
116
+ - 2-10 cards, all 1:1 (1080×1080)
117
+ - Per card: Headline 40 chars, Description 20 chars
118
+ - Unique URL per card supported
119
+
120
+ ### Advantage+ Creative Enhancements
121
+ Auto-adjustments when enabled: brightness/contrast, art filters, aspect ratio crops, music addition, text variations, video from static images. Test via A/B split.
122
+
123
+ ### Quality Rankings
124
+ Three signals: Quality Ranking, Engagement Rate Ranking, Conversion Rate Ranking.
125
+ Rated: Above Average / Average / Below Average (10th, 35th, 55th percentile).
126
+
127
+ ---
128
+
129
+ ## TikTok Ads
130
+
131
+ ### Video Specs
132
+ | Type | Min Resolution | Duration | Max Size | Min Bitrate |
133
+ |------|---------------|----------|----------|-------------|
134
+ | In-Feed (Non-Spark) | 540×960 (9:16) | 5-60s | 500MB | 516kbps |
135
+ | Spark Ads | Organic specs | Organic | N/A | N/A |
136
+ | TopView | 720×1280 (9:16) | 5-60s | 500MB | 2500kbps |
137
+ | Brand Takeover | 720×1280 | 3-5s | 2MB img / 500MB vid | N/A |
138
+
139
+ Recommended: 1080×1920, MP4/MOV, H.264, audio required, captions required.
140
+
141
+ ### TikTok Safe Zone
142
+ ```
143
+ Top: 0-150px → Status bar, account info
144
+ Right: 0-140px → Like, comment, share, profile
145
+ Bottom: 0-450px → Caption, music, CTA, nav bar
146
+
147
+ SAFE BOX: X:40-940px, Y:150-1470px (900×1320px)
148
+ ```
149
+ All critical text, logos, CTAs MUST be within safe box.
150
+ **Video Shopping Ads (VSA):** Increase bottom clearance to **450px** for product card overlay. Safe box becomes X:40-940px, Y:150-1320px.
151
+
152
+ ### Smart+ Specs
153
+ - Up to 30 ad groups per campaign
154
+ - Up to 50 creatives per asset group
155
+ - Symphony AI auto-generates variations
156
+
157
+ ---
158
+
159
+ ## LinkedIn Ads
160
+
161
+ ### Single Image
162
+ | Component | Spec |
163
+ |-----------|------|
164
+ | Image (landscape) | 1200×627 (1.91:1) |
165
+ | Image (square) | 1080×1080 (1:1): better engagement |
166
+ | Max file | 5MB, PNG/JPG |
167
+ | Intro text | 150 chars rec / 600 max |
168
+ | Headline | 70 chars rec / 200 max |
169
+ | Description | 100 chars (desktop only) |
170
+ | CTA Button | Predefined list |
171
+
172
+ ### Video
173
+ | Component | Spec |
174
+ |-----------|------|
175
+ | Format | MP4 required |
176
+ | Size | 75KB - 500MB |
177
+ | Duration | 3s - 30min (rec 15-30s) |
178
+ | Resolution | 360p min (720p+ rec) |
179
+ | Aspect Ratios | 16:9 (landscape), 1:1 (square), 9:16 (mobile only) |
180
+
181
+ ### Document Ads
182
+ - PDF, DOC, DOCX, PPT, PPTX
183
+ - 100MB max, 300 pages max (10-20 rec)
184
+
185
+ ### Messaging
186
+ | Type | Component | Limit |
187
+ |------|-----------|-------|
188
+ | Message Ad | Subject | 60 chars |
189
+ | Message Ad | Body | 1,500 chars |
190
+ | Message Ad | CTA | 20 chars |
191
+ | Conversation Ad | Intro | 500 chars |
192
+ | Conversation Ad | CTA buttons | 5 max, 25 chars each |
193
+
194
+ ### Audience Requirements
195
+ - Minimum: 500 members for delivery
196
+ - Recommended: 50,000-300,000
197
+ - Predictive Audiences seed: 300+ members
198
+ - Company list upload: up to 300,000
199
+
200
+ ---
201
+
202
+ ## Microsoft Ads
203
+
204
+ ### RSA (mirrors Google)
205
+ | Component | Limit |
206
+ |-----------|-------|
207
+ | Headlines | 3-15, 30 chars each |
208
+ | Descriptions | 2-4, 90 chars each |
209
+ | Display Paths | 2, 15 chars each |
210
+
211
+ ### Multimedia Ads (unique)
212
+ | Component | Spec |
213
+ |-----------|------|
214
+ | Image | 1200×628 (1.91:1) |
215
+ | Short Headline | 30 chars |
216
+ | Long Headline | 90 chars |
217
+ | Description | 90 chars |
218
+ | Business Name | 25 chars |
219
+
220
+ ### Video Ads (v1.5, April 2025+)
221
+ | Format | Ratio | Resolution | Duration | Notes |
222
+ |--------|-------|-----------|----------|-------|
223
+ | Vertical Video | 9:16 | 1080×1920 | Up to 90s | Added April 2025 |
224
+ | Horizontal Video | 16:9 | 1920×1080 | Up to 90s | Standard |
225
+ | Square Video | 1:1 | 1080×1080 | Up to 90s | Audience Network |
226
+ | CTV Non-Skippable | 16:9 | 1920×1080 | 30s | Netflix, Max, Hulu, Roku, discovery+ |
227
+
228
+ **Copilot Image Animation (Nov 2025 pilot):** Converts static images to video assets automatically.
229
+
230
+ ### Microsoft-Unique Extensions
231
+ | Extension | Description |
232
+ |-----------|-------------|
233
+ | Action Extension | Predefined action buttons |
234
+ | Filter Link Extension | Category-based deep links |
235
+ | Review Extension | Third-party review quotes |
236
+
237
+ ---
238
+
239
+ ## Cross-Platform Standards
240
+
241
+ ### Universal Safe Zone (Vertical Video)
242
+ For content running across TikTok + Reels + Shorts + Stories:
243
+ ```
244
+ Safe intersection: 900×1000px center
245
+ X: 40-940px (900px wide)
246
+ Y: 450-1450px (1000px tall)
247
+ ```
248
+
249
+ ### Character Normalization
250
+ | Component | Safe Limit | Strictest Platform |
251
+ |-----------|-----------|-------------------|
252
+ | Short headline | 30 chars | Google/Microsoft RSA |
253
+ | Long headline | 70 chars | LinkedIn recommended |
254
+ | Primary description | 90 chars | Google/Microsoft RSA |
255
+ | Short description | 25 chars | Extension callouts |
256
+
257
+ ### Video Encoding Standard
258
+ | Component | Recommended |
259
+ |-----------|-------------|
260
+ | Video codec | H.264 High Profile |
261
+ | Audio codec | AAC |
262
+ | Audio level | -14 LUFS |
263
+ | Container | MP4 |
264
+ | Frame rate | 30fps |
265
+ | Color space | Rec. 709 |
266
+ | Bitrate (1080p) | 8-12 Mbps |
267
+
268
+ ### Aspect Ratio Master Chart
269
+ | Ratio | Dimensions | Used By |
270
+ |-------|-----------|---------|
271
+ | 16:9 | 1920×1080 | YouTube, Google Display, LinkedIn Landscape |
272
+ | 9:16 | 1080×1920 | TikTok, Reels, Shorts, Stories |
273
+ | 4:5 | 1080×1350 | Meta Feed (preferred) |
274
+ | 1:1 | 1080×1080 | Meta Feed, LinkedIn, Carousel |
275
+ | 1.91:1 | 1200×628 | Google PMax, LinkedIn Single Image |
276
+ | 4:1 | 1200×300 | Google Logo (landscape) |