Files
cycle-atlas/.agents/skills/ad-creative-video/references/platform-specs.md
T

4.6 KiB
Raw Blame History

Platform Specs & Message-Match Worksheet

Exact pixel safe zones, durations, aspect ratios, and format limits per placement (2025/2026), plus a worksheet for building message-matched hook→CTA pairs before they go into the CSV. Verify against each platform's current Ads Manager docs before a big spend — placements and safe zones shift.

Aspect ratio → placement map

Aspect Resolution Native placements
9:16 1080×1920 TikTok In-Feed, Instagram/Facebook Reels, Stories, YouTube Shorts
4:5 1080×1350 Meta Feed (largest feed real estate, recommended for Feed video)
1:1 1080×1080 Meta Feed, broad/automatic placements, X
16:9 1920×1080 YouTube in-stream, landscape feed, in-article

Master rule: design the hook, product, and CTA inside the 1:1 center square so a single composition reframes to every aspect by re-centering, not letterboxing. Black bars on a vertical feed read as "ad" and underperform.

Safe zones (keep-clear bands)

Platform UI — captions, CTA chips, usernames, profile icons, progress bars — overlaps the frame. Keep all critical content out of these bands.

Aspect / placement Top keep-clear Bottom keep-clear Sides
9:16 Reels/Stories (Meta) ~14% (~270px on 1920h) ~20–35% (~384–672px) ~6% (~65px)
9:16 TikTok In-Feed ~130px ~484px (right-side icon rail + caption) right ~140px
4:5 Meta Feed ~5% ~10% (keep CTA above it) ~5%
1:1 / 16:9 center 90% safe center 90% safe center 90% safe

The 9:16 bottom third is the single most violated zone — captions, the CTA button, and the handle stack there. The bottomSafe padding in batch-ad-pipeline.md reserves it.

Duration & format limits

Placement Sweet spot Hard limits Format
Meta Feed (4:5/1:1) 6–15s up to 240 min, ≤4GB MP4/MOV, H.264
Meta Reels/Stories (9:16) 8–15s Reels ≤90s, Stories ≤2 min MP4/MOV
TikTok In-Feed (9:16) 15–30s (TikTok cites 21–34s) up to 10 min (non-Spark) MP4/MOV, ≥540×960
YouTube in-stream (16:9) 15–30s skippable after 5s MP4

Practical default for performance video: 15–30s, with the hook trigger landing before 2s. Most ad-account data shows attention falls off a cliff after ~15s, so front-load everything that matters.

Hook → CTA message-match worksheet

Fill one row per ad before writing the CSV. The CTA must pay off the exact promise the hook made; if it doesn't, the click is wasted and the test is noisy. Each completed row becomes one record in variants.csv.

Hook (0–3s promise) Hook type Single benefit Proof point CTA (pays off the hook)
"Spending 2 hrs/day on reports?" problem-first one-click report build "save 11 hrs/week" "Save 2 hours — try free"
"Your reporting tool is lying to you." pattern interrupt shows real numbers instantly "save 11 hrs/week" "See the real numbers — free"
"Nobody talks about this reporting trick." curiosity gap one click builds it "save 11 hrs/week" "Try the trick — free"
"Cut report time in half this week." immediate benefit auto-built reports "save 11 hrs/week" "Cut it in half — free"
"If you build reports by hand, stop." direct callout automate it now "save 11 hrs/week" "Automate yours — free"

Bad pairing to avoid: a "stop wasting 2 hours" hook ending on a generic "Shop now" — the promise and the payoff don't connect, so even a great hook converts poorly.

Testing order (which field to vary first)

Run tests in funnel order; isolate one field per wave using the matrix generator:

  1. Hook — biggest lever on CPA; test 5–8 hooks against one identical body.
  2. Offer / benefit — take the winning hook, vary the core promise.
  3. CTA — winning hook + offer, vary the closing action.
  4. Format / aspect — same winning ad, compare placements.

Budget guide many teams use: ~60% to proven winners, ~30% to variations of winners, ~10% to fresh concepts. Run each test long enough for a real sample (commonly several hundred impressions per variant, ~1 week to smooth daily swings) before declaring a winner.

Pre-flight checklist per variant

  • Hook trigger lands before 2s and fits the frame (≤~60 chars in 9:16).
  • CTA visibly pays off the hook's specific promise.
  • Critical content inside the center square and outside every keep-clear band.
  • Duration within the placement's sweet spot.
  • Exported in every aspect the campaign's placements require.
  • Exactly one field differs from the other variants in this test wave.