| name | ad-bing |
| title | Microsoft Advertising (Bing) Production Spec |
| description | What to produce for a Microsoft Advertising creative — Responsive Search Ads (RSA with Microsoft-only long headlines), Multimedia Ads, Audience Ads (Outlook.com / MSN / Microsoft Start / Edge News), Performance Max, Shopping, Lodging/Travel verticals, Video, and Connected TV (Netflix inventory via Microsoft Invest / Xandr). Encodes the exact slots, char limits (including Microsoft's 90-char long-headline slot that Google does NOT have), asset ratios, CTA enum, LinkedIn Profile Targeting note, Copilot creative behavior, and the trademark/political/regional policy differences from Google. Use whenever the task is producing Microsoft Ads / Bing copy or assets. Strictly platform-specific — does not cover keyword strategy, bidding, audience setup, or UET pixel. |
| license | Apache-2.0 |
| compatibility | Octomind launch agents. Platform-specific to Microsoft Advertising (Bing, MSN, Outlook.com, Microsoft Start, Edge News, Microsoft Invest CTV). |
| domains | launch |
| rules | ["content(microsoft ads)","content(bing ads)","content(microsoft advertising)","match(\\bmicrosoft\\s+ads?\\b)","match(\\bbing\\s+ads?\\b)","match(\\bmicrosoft\\s+advertising\\b)","match(\\bmsn\\s+ads?\\b)","match(\\boutlook\\s+ads?\\b)","match(\\bxandr\\b)","semantic(write a microsoft ads campaign)","semantic(produce bing ads copy)","semantic(microsoft audience ads on outlook)"] |
Overview
This skill defines exactly what to produce for a Microsoft Advertising creative. Microsoft Ads (still commonly called "Bing Ads") serves across Bing, MSN, Outlook.com, Microsoft Start, Edge News, Yahoo, AOL, and CTV inventory including Netflix (via Microsoft Invest / Xandr). It's the second-largest search ad platform and the typical second channel after a Google Ads launch.
Key Microsoft differences from Google:
- RSA has long headlines (90 chars, 3–5 required) — this slot does NOT exist in Google RSA. The most common mistake is importing from Google and leaving long headlines empty.
- Competitor trademarks in ad copy are PROHIBITED by default (Google often allows). Trademark enforcement is faster (~5 business days).
- Political ads are paused globally since 2019, still paused 2026.
- Audience Ads description allows 130 chars (vs Google Demand Gen 90).
- LinkedIn Profile Targeting is native to Microsoft (Job Function, Seniority, Company, Industry, Custom Company Lists for ABM).
- CTV via Netflix inventory — no QR codes allowed on Netflix.
Out of scope: keyword strategy, audience setup, bidding, UET pixel, conversion goals, ABM list construction.
Instructions
Ad Formats Covered
| Format | Surfaces | What You Produce |
|---|
| Responsive Search Ads (RSA) | Bing, Yahoo, AOL search | Short headlines × 15, long headlines × 5, descriptions × 4, paths × 2, business name |
| Multimedia Ads (MMA) | Mainline search + Audience Network | Short headlines × 15, long headlines × 5, descriptions × 4, 4 image ratios, business name |
| Microsoft Audience Ads | Outlook.com, MSN, Microsoft Start, Edge News | Short headline (50 char) × 5, long headline × 5, description × 5 (130 char), images, CTA |
| Performance Max | All surfaces | Asset group: headlines, descriptions, images, logos, videos |
| Product Ads (Shopping) | Bing Shopping | Catalog-driven, "Highlights for Copilot" enrichment available |
| Hotel Price Ads (HPA) | Travel verticals | Feed-driven, image optional |
| Property Promotion Ads | Lodging | Image required, property name, tagline |
| Tours & Activities Ads | Travel | Feed-driven, image + price + duration |
| Cruise Ads | Travel | Feed-driven |
| Video Ads | Microsoft Invest | 16:9 MP4, 6/15/30/60s |
| Connected TV (CTV) | Netflix, premium CTV via Microsoft Invest / Xandr | 1080p 16:9, 15s or 30s, NO QR codes on Netflix |
| Brand Ads (premium) | MSN, Edge, IAB display | IAB New Ad Portfolio formats |
| Smart Search / Smart Campaigns | Bing search | Auto-generated by Copilot from URL crawl |
Responsive Search Ads (RSA) — Slots
| Slot | Count | Limit | Notes |
|---|
| Short headlines | 3–15 | 30 chars | Same as Google RSA |
| Long headlines | 3–5 | 90 chars | MICROSOFT-ONLY. Does not exist on Google. The #1 import-from-Google mistake is leaving these empty. |
| Descriptions | 2–4 | 90 chars | Same as Google |
| Path 1 / Path 2 | 0–2 | 15 chars each | Display URL only |
| Final URL | 1 | 2048 | Destination |
| Business name | 0–1 | 25 chars | Brand surface |
Multimedia Ads (MMA) — Slots
| Slot | Count | Limit |
|---|
| Short headlines | 3–15 | 30 chars |
| Long headlines | 3–5 | 90 chars |
| Descriptions | 2–4 | 90 chars |
| Business name | 1 | 25 chars |
| Image 1.91:1 (1200×628 rec, 703×368 min) | 1+ | required |
| Image 1:1 (1200×1200 rec, 300×300 min) | 1+ | required |
| Image 1:2 (600×1200) | optional | recommended for mobile |
| Image 4:1 (1200×300) | optional | banner placements |
| Final URL | 1 | 2048 |
Microsoft Audience Ads (Native) — Slots
| Slot | Count | Limit | Notes |
|---|
| Short headline | up to 5 variants | 50 chars | Larger than Demand Gen's 40 |
| Long headline | 0–5 | 90 chars | Optional |
| Description | 1–5 | 130 chars | Larger than Demand Gen's 90 |
| Business/brand name | 1 | 25 chars | |
| Image 1.91:1 | 1–15 total across ratios | 1200×628 | Required |
| Image 1:1 | 1–15 | 1200×1200 | Required |
| Image 4:1 | 0–15 | 1200×300 | Banner placements |
| CTA | 0–1 | enum (see below) | If omitted, Microsoft auto-selects |
Performance Max — Asset Group Slots
| Slot | Range | Notes |
|---|
| Short headlines | 3–15 × 30 chars | Same as RSA |
| Long headlines | 1–5 × 90 chars | Microsoft-specific |
| Descriptions | 2–5 × 90 chars | |
| Business name | 1 × 25 chars | |
| Images (all ratios) | 1–20 total | Mix of 1:1, 1.91:1, 1.5:1 |
| Square 1:1 | 1+ | 1200×1200 rec, 300×300 min |
| Landscape 1.91:1 | 1+ | 1200×628 rec, 703×368 min |
| Rectangle 1.5:1 | 0+ | 1200×800 rec |
| Logo 1:1 | 1+ | 1200×1200 |
| Videos | 0–5 | YouTube URL or upload |
| Final URL | 1 | |
| Asset groups per campaign | up to 100 | |
| Products per asset group | up to 19,998 | |
CTV / Video Specs (Microsoft Invest)
| Spec | Value | Notes |
|---|
| Format | MP4, MOV, WebM | |
| Codec | H.264 (preferred), H.265, VP9 | |
| CTV resolution | 1920×1080 (1080p) required | |
| Video min resolution | 1280×720 | |
| Aspect ratio | 16:9 only (CTV) | |
| Frame rate | 23.976 / 24 / 25 / 29.97 / 30 fps | |
| Bitrate | 15–20 Mbps for 1080p CTV | |
| Audio | AAC, 128 kbps min, -23 to -24 LKFS | |
| Duration | 15s or 30s (CTV); 6/15/30/60s (video) | |
| File size | ≤ 200 MB | |
| Netflix inventory | NO QR CODES, no clickable CTA | Awareness play only |
Image Asset Library
| Asset | Ratio | Recommended | Minimum | Max File |
|---|
| Landscape | 1.91:1 | 1200×628 | 703×368 | 5 MB |
| Square | 1:1 | 1200×1200 | 300×300 | 5 MB |
| Rectangle | 1.5:1 | 1200×800 | 300×200 | 5 MB |
| Portrait | 1:2 | 600×1200 | 300×600 | 5 MB |
| Banner | 4:1 | 1200×300 | 600×150 | 5 MB |
| Logo | 1:1 | 1200×1200 | 128×128 | 5 MB |
| Max dimensions | — | 2592×2048 max | — | — |
| Formats | JPG, JPEG, PNG, non-animated GIF | — | — | — |
Image rules: ≤20% text overlay (OCR-enforced on Audience Network), no QR codes on Netflix CTV, no animated GIFs in Audience Ads, no transparent backgrounds for native.
CTA Behavior
- RSA / MMA / Shopping — NO free-text CTA button. CTA lives inside the headline/description copy.
- Audience Ads — optional CTA from enum:
- Apply Now, Book Now, Contact Us, Download, Get Quote, Learn More, Order Now, See More, Shop Now, Sign Up, Subscribe, Visit Site
- Performance Max — inherits Audience Ads CTA enum on native placements; no button on search.
- Custom CTA text is NOT supported (unlike Google Demand Gen which allows ≤10 char custom override).
Copilot Creative Generation (2025–2026)
Microsoft's Copilot auto-generates headlines + descriptions from final URL crawl. By default, auto-generated assets backfill empty RSA slots.
- Term Exclusions (2026) — supply a blocklist of words the AI must never produce (competitor names, banned phrases)
- Messaging Constraints (2026) — upload brand/legal guidelines document the AI must honor
- Brand voice profile in Microsoft Ads Editor — pick tone (Professional / Friendly / Conversational / Bold) + reading level
- Automatic Image Extensions — Microsoft sources images from landing page if no image asset supplied (opt-out per account)
LinkedIn Profile Targeting (Audience-Level — Affects Creative Choice)
Microsoft Audience Network supports LinkedIn-based targeting natively (audience setup is out of scope here, but the existence of these targeting layers affects the creative angle you should write):
- Company (specific named companies)
- Industry
- Job Function
- Job Seniority (10 levels: CXO → Entry)
- Custom Company Lists (ABM, event lists)
Available in US, CA, UK, FR, DE, AU. 2026: now also supported on Search Ads (previously Audience-only).
Creative implication: when LinkedIn targeting is active, write to the role/seniority — but do NOT name the role in the copy itself ("Hey CTO at [Co]…") because that triggers Personal Attributes policy.
Policy + Restricted Categories (2025–2026)
Disallowed entirely: counterfeit goods, illegal drugs, weapons/explosives, tobacco (most markets), endangered species, adult sexual content, hacking, fake documents.
Restricted (certification or geo-limits required):
- Financial services — must be licensed in target market; crypto requires Microsoft pre-approval; payday loans restricted (US, UK, AU)
- Healthcare / pharma — Rx requires LegitScript; OTC must follow FDA/MHRA claims rules; Microsoft is stricter than Google on telehealth claims
- Alcohol — age-gated; PROHIBITED in UAE, Saudi Arabia, Pakistan, parts of India
- Gambling — license required; sports betting permitted in select US states
- Dating — mainstream allowed; "casual encounters" disallowed (stricter than Google)
- Political ads — PAUSED GLOBALLY since 2019, still paused 2026
- Cannabis — CBD topicals allowed in some US/CA states with restrictions; THC products disallowed everywhere
Trademark (stricter than Google):
- Competitor trademarks in ad copy: PROHIBITED by default (Google allows in many markets)
- Competitor trademarks as keywords: permitted
- Complaint takedown: ~5 business days
AI-generated content: No formal label required globally, but synthetic media depicting real people in financial/political/election contexts requires "AI-generated" overlay (per 2024 EU AI Act, Microsoft enforces globally).
No serving: China, Russia, Crimea, Iran, North Korea, Syria, Cuba.
EU: GDPR + Digital Services Act labeling for sponsored content.
Output Format
# Microsoft Ads — [Product] [Campaign Name]
## Format
[RSA / Multimedia / Audience / PMax / Shopping / Hotel / Property / CTV]
## Final URL
[URL]
## RSA Slots (if applicable)
- Short headlines (≤15 × 30 char):
1. [Headline] — [chars/30]
...
- Long headlines (3-5 × 90 char — MICROSOFT-ONLY, do not skip):
1. [Long headline] — [chars/90]
2. [Long headline] — [chars/90]
3. [Long headline] — [chars/90]
- Descriptions (≤4 × 90 char):
1. [Description] — [chars/90]
...
- Paths (≤2 × 15 char):
- Path 1: [path] — [chars/15]
- Path 2: [path] — [chars/15]
- Business name (≤25): [name] — [chars/25]
## Multimedia Ads / Audience Ads / PMax Additions
[Slots per format above, including image asset specs]
## Image Asset Briefs
- 1.91:1 (1200×628): [scenario]
- 1:1 (1200×1200): [scenario]
- 1:2 (600×1200): [scenario, mobile lift]
- 4:1 (1200×300): [scenario, banner placements]
- Logo 1:1: [supplied]
## Video / CTV (if applicable)
- Format: MP4 H.264
- Duration: [15s / 30s for CTV]
- Resolution: 1920×1080
- Audio: -23 LKFS
- QR codes: [None if Netflix inventory]
## CTA (Audience Ads / PMax native only)
[From enum]
## Copilot Settings
- Brand voice profile: [Professional / Friendly / Conversational / Bold]
- Term Exclusions: [competitor names, banned phrases]
- Messaging Constraints: [brand guideline doc reference]
- Auto-generated assets: [allow / block]
## LinkedIn Targeting Note (if active)
- Targeting layer: [Company / Industry / Job Function / Seniority / Custom List]
- Creative angle should match the targeted role WITHOUT naming it in copy (Personal Attributes policy)
## Pre-Submit Checklist
- [ ] 3-5 long headlines populated (90 char each) — most common Google-import miss
- [ ] No competitor trademark in copy
- [ ] No political ad copy
- [ ] If restricted vertical: certification/license referenced
- [ ] Alcohol copy excluded from restricted markets (UAE/SA/PK/India regions)
- [ ] If Netflix CTV: NO QR codes, no clickable CTA
- [ ] Brand voice profile aligned to target audience
- [ ] If LinkedIn-targeted: role mentioned in angle, not in copy text
Realistic 2026 Scenarios
A. Google Ads import (most common entry point): Imported via Ads Editor. RSA short headlines transfer 1:1. Manually add 3-5 long headlines (90 chars) — they don't exist on Google side. Add Microsoft business name. Set up UET tag before launch. Without long headlines populated, ad strength stays at "Average" maximum.
B. B2B SaaS targeting Microsoft 365 / Outlook users via Audience Ads: 1.91:1 product screenshot + 1:1 logo, short headline ≤50 chars emphasizing Outlook/Teams integration, description ≤130 chars with concrete outcome stat, CTA="Get Quote", layered LinkedIn Profile Targeting (Director+, IT/Engineering, Custom Company List from ABM CRM). Copy avoids "you, the IT director" Personal-Attributes phrasing.
C. Multimedia Ads for premium consumer (luxury / craftsmanship): Supply all 4 image ratios at 2592×2048 quality, 15 short headlines mixing brand + benefit + offer, 5 long headlines (90 chars) for premium narrative, 4 descriptions emphasizing craftsmanship. Brand voice = "Bold." Term Exclusions includes competitor names + "cheap/affordable."
D. CTV app launch via Netflix inventory: 15s + 30s 1080p MP4 H.264 16:9, audio -24 LKFS, no QR codes, no end-card URL (CTV unclickable — drive to search). Upload via Microsoft Invest. Geo: US/CA/UK/DE/FR/AU. Pair with retargeting Audience Ads (1.91:1 + 1:1) on Edge News.
When NOT to Use This Skill
- Keyword research / negative keywords → out of scope
- UET pixel / Conversions API setup → out of scope
- Audience strategy (incl. LinkedIn list construction) → out of scope
- Bid strategy or budget → out of scope