agentleFS
MuvonMuvon/octomind-tap/skills/ad-meta/SKILL.md

ad-meta

Skill6 starsChanged 8 months agoApache-2.0View on GitHub

Meta ad specs for Facebook and Instagram Feed, Stories and Reels: text slots, character limits, ratios and CTAs. Use when writing Meta ad copy or briefs.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do not lead with a brand name or "we are excited to announce" — pure scroll-past

    line 166
  2. Distinctive:

    Before/after imagery: banned for weight loss, cosmetic, financial outcomes — even if real

    line 173

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Overview

This skill defines exactly what to produce for a Meta ad creative across Facebook and Instagram. It is platform-spec only: the slots Meta exposes, the truncation thresholds that decide what users see, the asset ratios per placement, and the CTA button enum. It does not cover audience setup, conversion events, Advantage+ settings, or attribution.

Meta is unusual: most copy fields have no hard cap, only truncation thresholds. Writing past the threshold is fine — but the text after the truncation point is read by almost no one. Treat thresholds as your real limits.

Instructions

Placements Covered

PlacementWhat You Produce
Facebook FeedPrimary text, headline, description, image/video, CTA button
Instagram FeedPrimary text, image/video, CTA button (headline shows less prominently)
Stories (FB + IG)Vertical video/image, optional sticker text, CTA
Reels (FB + IG)Vertical video, primary text, CTA — sound-on but caption-required
MarketplaceSame as Feed, narrower visible primary text
Audience NetworkHeadline, description, image/video, CTA
Threads AdsAdvertiser access since 2025; ads shown to users in all markets from early 2026 with a gradual ramp. Image, video, carousel; 1:1 or 4:5. Included in Advantage+ placements by default (opt out per ad set)
Carousel Ads2-10 cards with per-card image/headline/URL; shared primary text
Collection AdsHero (1:1 or 1.91:1) + 4 product tiles from catalog; opens Instant Experience; mobile-only
Lead AdsNative in-app form, no landing page; intro card + ≤3-5 questions + privacy URL + thank-you
Messenger / Click-to-Messenger AdsFeed creative + "Send Message" CTA → opens Messenger thread with welcome template (≤3 quick-reply chips)
Click-to-WhatsApp AdsFeed/Reels/Stories creative + "Send WhatsApp Message" CTA → opens WA chat with pre-filled message (≤160 char, editable)
Advantage+ sales campaigns (formerly Advantage+ Shopping)Meta merged manual and Advantage+ setup into one flow in 2025–26; legacy ASC/AAC creation ended with Marketing API v25. 2026: up to 50 ads per ad set, 150 per campaign (verify live). Catalog feed should include 1:1 + 4:5 (+ 9:16 for Reels)

Feed — Slots and Limits

SlotPreview ThresholdHard CapNotes
Primary text~125 chars before "See more"63,206 (effectively unlimited)First 125 chars decide click-through
Headline27 chars before truncation40 chars recommendedBelow image on Feed; smaller on IG
Description27 chars before truncation30 chars recommendedNews-Feed-only on FB
URLn/an/aDestination URL
CTA buttonEnumn/aSee CTA section below

Stories / Reels — Slots and Limits

SlotNotes
Primary textOptional, smaller display, treat 60 chars as visible budget
HeadlineNot always shown on Stories — Reels show it but small
Visual9:16 vertical, full screen, sound-on but assume sound-off readability
CTA buttonEnum, anchored to bottom of screen
Sticker textManual overlay on the asset itself, not a Meta-managed field

Visual Ratios by Placement

PlacementRecommended RatioNotes
Facebook Feed1:1 (1080×1080) or 4:5 (1080×1350)4:5 takes more mobile screen
Instagram Feed1:1 or 4:5Same — 4:5 outperforms 1:1 on mobile
Stories9:16 (1080×1920)Full screen, safe zone matters
Reels9:16 (1080×1920)Same as Stories
Right Column1.91:1 (1200×628)Desktop only, tiny — use brand visuals
Audience Network1:1 or 1.91:1Varies by publisher
Marketplace1:1Same as Feed
Video minimum1 secondPractical min: 6–15s for short, 15–30s for full
Video max241 minutes (Feed)Practical max: 60s for performance ads
Reels video maxVaries by placement (2026 sources disagree: 90s to 15 min — verify in Ads Manager)Sweet spot: 15–30s
Stories video max60 seconds (auto-split into 15s cards)Each card is its own segment
File size — image30 MBJPG or PNG
File size — video4 GBMP4, MOV, GIF

Safe Zones (Stories / Reels)

  • Top ~14% (≈270px on 1920px asset) reserved for username/handle overlay — never put critical copy there
  • Bottom ~20-35% (≈380-670px depending on CTA + caption stack) reserved for CTA button + interaction icons + caption — never put critical copy there
  • Effective safe zone: middle band of the 1920px height
  • Logo + key copy belongs in the middle band

Advantage+ Creative Enhancements (2026 — check toggles live)

Many enhancements are on by default for new ads, and Meta keeps adding and renaming them. Review the enhancement list per ad before publishing. Common ones:

  1. Image enhancement (recolor / crop)
  2. 3D parallax effect
  3. Music overlay
  4. Image expansion (generative fill)
  5. Alt headlines generation
  6. Primary text variants generation
  7. Image animation (animate statics)
  8. Text variations generation

Brand-safety opt-outs (toggle per ad; confirm whether your choice persists to new ads):

  • Disable "Image enhancement" + "3D effect" for brand-driven creative
  • Disable "Music" for accounts with sonic identity
  • Disable "Image animation" for product photography
  • Disable "Text variations" + "Image expansion" for regulated verticals

CTA Button Enum (Pick One — 2026 Full Enum)

Meta only allows CTAs from this enum (selection depends on campaign objective). Cannot use custom CTA text.

Action / commerce:

  • Apply Now
  • Book Now
  • Buy Tickets
  • Download
  • Get Access
  • Get Directions
  • Get Offer
  • Get Quote
  • Get Showtimes
  • Install Now
  • Order Now
  • Request Time
  • Shop Now
  • Sign Up
  • Subscribe
  • Use App

Info / engagement:

  • Contact Us
  • Donate Now
  • Learn More
  • Listen Now
  • Play Game
  • Read More
  • See Menu
  • View Menu
  • Watch More
  • Watch Now

Messaging-objective only:

  • Call Now
  • Send Message (opens Messenger)
  • Send WhatsApp Message (opens WhatsApp thread)

Pick the CTA that matches the actual landing-page action. "Learn More" is the universal default but converts worse than a verb that names the action.

Variant strategy: Meta's ad retrieval (Andromeda, 2024–) rewards genuinely different concepts — different hooks, angles, formats, people — over near-duplicate tweaks of one ad. Build the variant set from distinct concepts.

Hook Rules (Where Reads Actually Happen)

Meta is brutal about scroll-speed. The first 3 elements decide everything:

  1. The image / video first frame — must stop the thumb
  2. First 3 words of primary text — must reward the stop
  3. The next line before "See more" — must promise something worth the click

So:

  • Primary text first sentence must hook in ≤125 chars
  • Do not lead with a brand name or "we are excited to announce" — pure scroll-past
  • Video first frame must be the hook, not a logo intro
  • Caption every line of video — 85%+ of Meta video plays on mute

Policy Constraints (Common Rejections)

  • Personal attributes: "Are you depressed?" / "Diabetics, listen up" — Meta's Personal Attributes policy bans calling out the viewer's condition
  • Before/after imagery: banned for weight loss, cosmetic, financial outcomes — even if real
  • Sensational language: "Shocking", "You won't believe" — manual review trigger
  • Misleading scarcity: "Last day!" "Only 3 left!" without evidence — disapproval
  • Profanity: even mild ("damn") — disapproval
  • Restricted categories: weight loss, gambling, dating, financial products, healthcare — require certification; health and wellness advertisers also face limits on lower-funnel event optimization
  • Political, electoral, and social-issue ads: no longer delivered in the EU since October 2025 (Meta's response to the TTPA regulation); elsewhere they need authorization and a "Paid for by" disclaimer
  • AI-generated or digitally altered realistic people/events in political or social-issue ads require Meta's AI disclosure
  • Body parts isolated from context: cropped tight on stomach/legs — disapproval risk
  • Text-on-image rule: was strict, now relaxed — but heavy text overlays still suppress delivery (lower reach, higher CPM)

Output Format

# Meta Ads — [Product] [Campaign Name]

## Placements
[Facebook Feed / Instagram Feed / Stories / Reels / Audience Network]

## Final URL
[Landing page URL]

## Primary Text
> [Copy — first sentence ≤125 chars must hook]
> [Rest of copy if any]

Preview slice (first 125 chars): "[show what users see before See more]"

## Headline (≤27 char recommended, ≤40 hard)
> [Headline] — [chars]

## Description (≤27 char recommended)
> [Description] — [chars]

## CTA Button (enum only)
[Selected CTA from enum] — [why this one matches the landing action]

## Visual Spec
- Ratio: [1:1 / 4:5 / 9:16]
- Shot: [concrete scenario, not stock]
- Text overlay: "[copy on the image/video]"
- First frame (video): [what's visible at 0s]
- Caption track: [yes — list per-scene captions if video]

## Variant Set
| # | Angle | Primary Text Opener | Headline | CTA | Visual |
|---|-------|---------------------|----------|-----|--------|
| 1 | [angle] | [≤125 char] | [≤27] | [enum] | [ratio + shot] |
| 2 | ... | ... | ... | ... | ... |

## Pre-Submit Checklist
- [ ] Primary text hook within first 125 chars
- [ ] First 3 words of primary text are not brand-name throat-clearing
- [ ] CTA button from enum, matches landing action
- [ ] Video first frame is the hook
- [ ] All video text captioned (85% mute viewing)
- [ ] Safe zones respected for Stories/Reels
- [ ] No personal-attribute language ("you, the [condition]")
- [ ] No before/after for restricted verticals
- [ ] No misleading scarcity
- [ ] Visual ratio matches placement

When NOT to Use This Skill

  • Audience setup, lookalike creation, retargeting rules → out of scope
  • Pixel events, Conversions API setup → out of scope
  • Campaign objective selection, Advantage+ settings → out of scope

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.