Why Meta Ad Character Limits Are Tricky
Unlike Google Ads which hard-rejects text over the limit, Meta truncates your copy silently. Your carefully crafted message gets cut off with "...See More" and nobody clicks it.
Knowing the limits — and the *recommended* lengths — is the difference between ads that communicate and ads that get clipped.
The Core Meta Ad Character Limits
These apply to the standard single-image and single-video ad formats across Facebook and Instagram:
| Element | Technical Limit | Recommended | Displayed |
|---|---|---|---|
| <strong>Primary text</strong> | 2,200 characters | 125 characters | ~125 chars before "See More" |
| <strong>Headline</strong> | 255 characters | 40 characters | ~40 chars before truncation |
| <strong>Description</strong> | 255 characters | 125 characters | Often hidden on mobile |
| <strong>URL</strong> | No hard limit | Short and clean | Domain shown automatically |
<strong>The critical number is 125.</strong> That's roughly how much primary text shows before the "See More" link on mobile. Everything after 125 characters is hidden unless someone taps to expand — and most people don't.
Primary Text: 125 Characters (Recommended)
Primary text is the main body copy above your image or video. It's the first thing people read.
<strong>What works in 125 characters:</strong>
- "Tired of writing ad copy from scratch? Paste any URL and get 15 Google Ads headlines in 30 seconds. Free, no signup." (117 chars)
- "Our best-selling running shoes are 40% off this weekend. Free shipping, free returns. Shop now before sizes sell out." (117 chars)
<strong>When to go longer:</strong> If your audience is warm (retargeting) or your product needs explanation, longer primary text can work. But front-load the hook — your first sentence must earn the "See More" click.
<strong>Structure for long primary text:</strong>
1. Hook (first 125 chars — must stand alone)
2. Body (expand on the value)
3. CTA (clear next step)
Headlines: 40 Characters
Headlines appear below your image/video in bold. They're your second chance to persuade after the creative.
| Good (≤40 chars) | Why |
|---|---|
| "40% Off — This Weekend Only" (29) | Urgency + specificity |
| "Free Trial — No Credit Card" (29) | Zero-risk CTA |
| "Rated 4.9 Stars by 3,000+ Users" (33) | Social proof |
| "Your First Order Ships Free" (28) | Benefit-led |
<strong>Avoid:</strong> Generic headlines like "Learn More" or "Click Here." You're wasting the most prominent text in the ad.
Descriptions: 125 Characters
Descriptions appear below the headline. On mobile, they're often hidden — so don't put critical info here.
Use descriptions for secondary benefits or social proof:
- "Join 50,000+ marketers who use Jupitron AI to generate ad copy."
- "Free shipping on orders over $50. 30-day hassle-free returns."
Format-Specific Limits
Carousel Ads
| Element | Limit |
|---|---|
| <strong>Primary text</strong> | 2,200 (recommend 125) |
| <strong>Headline per card</strong> | 40 characters |
| <strong>Description per card</strong> | 20 characters |
| <strong>Number of cards</strong> | 2–10 |
| <strong>Landing URL</strong> | Per card |
Stories & Reels Ads
| Element | Limit |
|---|---|
| <strong>Primary text</strong> | 125 characters (overlay) |
| <strong>Headline</strong> | Not shown |
| <strong>CTA button</strong> | Predefined options |
<strong>Stories/Reels tip:</strong> Most of your communication is visual. Text overlays on the creative matter more than the primary text field.
Collection / Instant Experience Ads
| Element | Limit |
|---|---|
| <strong>Primary text</strong> | 2,200 (recommend 90) |
| <strong>Headline</strong> | 40 characters |
| <strong>Products</strong> | Up to 50 |
Lead Gen (Instant Form) Ads
| Element | Limit |
|---|---|
| <strong>Primary text</strong> | 2,200 (recommend 125) |
| <strong>Headline</strong> | 40 characters |
| <strong>Form headline</strong> | 60 characters |
| <strong>Form description</strong> | 155 characters |
Facebook vs Instagram Differences
Most limits are identical across Facebook and Instagram, but display behavior differs:
| Behavior | ||
|---|---|---|
| <strong>Primary text visible</strong> | ~125 chars | ~125 chars |
| <strong>Description shown</strong> | Sometimes | Rarely |
| <strong>Headline shown</strong> | Yes | Yes (below image) |
| <strong>CTA button</strong> | Yes | Yes |
<strong>Bottom line:</strong> Design for Instagram (most restrictive display) and your ads will work everywhere.
Common Mistakes
1. <strong>Writing 500-word primary text for cold audiences.</strong> They don't care enough to tap "See More." Keep it under 125.
2. <strong>Putting the CTA in the description.</strong> Descriptions are often hidden on mobile. Put your CTA in the primary text and headline.
3. <strong>Ignoring the headline.</strong> Many advertisers leave it blank or write something generic. The headline is prime real estate.
4. <strong>Same copy for all placements.</strong> Stories, Reels, Feed, and Marketplace all display differently. Customize where possible.
Quick Reference Card
```
Primary Text: 125 chars (recommended)
Headline: 40 chars (recommended)
Description: 125 chars (recommended)
Carousel Headline: 40 chars per card
Carousel Desc: 20 chars per card
Stories Text: 125 chars (overlay)
Form Headline: 60 chars
Form Description: 155 chars
```
Generate Meta Ad Copy That Fits
Jupitron AI generates Meta ad copy within recommended character limits automatically. Paste any URL and get headlines, primary text, and descriptions — all validated for length before you see them.
Generate Meta Ad Copy — Free