Why ad copy character limits decide whether your message survives
Every paid placement is a fixed-width slot. Facebook gives you 125 characters of primary text and 40 for the headline; Google's responsive search ad headline is 30; TikTok's caption is 150. Write past the limit and the platform does not reject the ad — it silently clips it, usually with an ellipsis or a 'more' link, and the cut lands wherever the character count runs out. That is frequently mid-clause, severing the promise from its payoff.
The damage is invisible in the ad editor, where your full copy renders fine, and only shows up in the live placement on a phone. A hook that read 'The one mistake draining your retirement that your advisor will never mention' becomes 'The one mistake draining your retirement that your…'. The curiosity gap is still open, but the reason to click is gone. Knowing the exact limit per slot — before you write — is the difference between a hook that lands and a hook that gets guillotined.
The exact per-slot character limits by platform
These are the limits the AI Copy Agent enforces, slot by slot, for the five platforms it generates against. They are read straight from the product's platform spec — the same numbers the validator checks against — so what you see here is what the agent applies when it builds a variant. Note that a platform's max is not always its effective length: Facebook's 125-char primary text truncates on mobile closer to 115, so the agent treats the headroom as a working budget rather than a hard ceiling.
Platforms adjust these limits without notice, so the spec is reviewed quarterly. Treat the table as the current working set rather than a permanent contract, and always re-check before a major launch.
| Platform | Slot | Max chars | Notes |
|---|---|---|---|
| Facebook / Instagram (Meta) | primary_text | 125 | Truncates with '…' on mobile around 115 effective chars |
| Facebook / Instagram (Meta) | headline | 40 | Shown bold, below the image |
| Facebook / Instagram (Meta) | description | 25 | Tiny — best for offer details / CTA hint |
| Google Search (RSA) | headline | 30 | RSA accepts up to 15 headlines, 30 chars each |
| Google Search (RSA) | long_headline | 90 | Used when the Display network surfaces the ad |
| Google Search (RSA) | description | 90 | RSA accepts up to 4 descriptions |
| TikTok | caption | 150 | Hook-first; the first 25 chars matter most |
| TikTok | video_text_overlay | 60 | On-screen text, often the actual hook |
| YouTube Shorts | title | 100 | Visible above the video |
| YouTube Shorts | description | 4000 | First 100 chars shown without expansion |
| Instagram Reels | caption | 125 | Truncates with a 'more' link around 125 chars; hashtags count toward the limit |
How the agent validates every variant against the limits
The agent runs the limits as a pipeline. Before it writes anything, it calls get_ad_platform_spec for your target platform (or list_ad_platforms if you have not picked one yet) and reads back every constrained slot — primary_text, headline, description, caption, video_text_overlay, title — with its max_chars. Those numbers become the budget the copy is written to, not a check applied afterward.
After each variant is written, the agent calls validate_ad_against_platform. That tool maps every slot name to its text, trims surrounding whitespace, counts the characters, compares against the slot's max, and returns a per-slot pass/fail plus an exact over_by count for any slot that runs long. The whole ad only passes when every slot passes — one overlong headline fails the variant, not just the slot.
Slot names are not guessed. The validator keys off the same slot identifiers the spec exposes — primary_text, headline, description, caption, video_text_overlay, title — so a variant written for the wrong platform cannot silently pass by being measured against the wrong limits. If you ask for a TikTok ad, it is checked against TikTok's 150-character caption and 60-character overlay, never against Facebook's slots.
Why it rewrites tighter instead of truncating
When a slot fails, the obvious fix is to chop the last few words. The agent does not do that, because truncation cuts by character position, not by meaning — it amputates the part of the sentence that was carrying the point. A 132-character primary text that loses its final seven characters usually loses its call to action or the back half of its promise.
Instead, the agent regenerates the failing slot tighter: it preserves the hook, the mechanism, and the payoff, and removes filler — adverbs, hedges, throat-clearing — until the line fits inside max_chars with the message intact. It then re-validates. The result is a 40-character headline that still says something, not a 40-character fragment of a 60-character idea.
This matters most on the tightest slots. Facebook's 25-character description and Google's 30-character headlines leave almost no room for waste, so the rewrite is less about deletion and more about choosing a shorter word that carries the same weight — 'fix' instead of 'eliminate', a number instead of a phrase. Because the agent re-validates after every rewrite, the loop only ends when the slot genuinely fits, not when it looks close enough in the editor.
Generate ad copy that fits every slot — and validates itself.
A Daily Intel Service membership unlocks the catalog; upgrade to Pro to unlock the AI Copy Agent, which writes each variant to platform limits and rewrites anything that overflows. Cancel anytime.
What each slot is actually for
Slots are not interchangeable, and writing to the limit without understanding the slot wastes the space. On Facebook, primary_text (125) is the body that sits above the creative and carries the argument; the headline (40) is the bold line under the image and should land the single biggest promise; the description (25) is too small for prose and works best as an offer detail or CTA nudge.
Google RSA splits the job differently: up to fifteen 30-character headlines and four 90-character descriptions get mixed and matched by the system, so each headline has to stand alone. TikTok's 150-character caption is hook-first — the first 25 characters do the work — while the 60-character on-screen text overlay is often the real hook the viewer reads. YouTube Shorts pairs a 100-character title with a 4,000-character description whose first 100 characters show without expansion, and Instagram Reels gives you a single 125-character caption where hashtags count against the limit. The agent knows which slot carries the weight on each platform and writes accordingly.
Limits plus corpus grounding: fit and substance
Fitting the slot is necessary but not sufficient — a perfectly-sized headline can still be weak. This is where the character-limit tools sit inside the larger AI Copy Agent. Before writing variants, the agent pulls corpus-grounded angle seeds so each of your N variants genuinely varies — by villain, mechanism, promise, hook angle, or emotional tone — drawn from real winning ads across the catalog of 4,490+ validated VSLs and ads spanning 57+ niches.
So a request for ten Facebook variants becomes: fetch ten distinct corpus-grounded seeds, write each one to Facebook's 125 / 40 / 25 budget, validate every slot, and rewrite any that overflow. You get variants that both fit the placement and mirror structure proven to convert — not generic lines padded to length.
The bottom line
Character limits are not trivia — they decide whether your hook reaches the reader whole. The AI Copy Agent encodes the exact per-slot limits for five platforms, writes each variant to that budget, validates it slot by slot, and rewrites anything that overflows so the meaning survives. Combined with corpus-grounded angle seeds, you get ad copy that both fits the placement and mirrors what is winning.
Frequently asked questions
What is the Facebook ad character limit?
The AI Copy Agent enforces Meta's slots at 125 characters for primary text (effectively ~115 on mobile before it truncates), 40 for the headline, and 25 for the description. These are the exact values in the product's platform spec.What is the Google Ads character limit?
For responsive search ads the agent uses 30 characters per headline (up to 15 headlines), 90 for the long headline used on the Display network, and 90 per description (up to 4 descriptions).What are the TikTok and Instagram Reels limits?
TikTok allows a 150-character caption (first 25 chars matter most) and a 60-character on-screen text overlay. Instagram Reels gives a single 125-character caption, and hashtags count toward that limit.Does the agent truncate copy that is too long?
No. When a slot exceeds its max, the agent rewrites that slot tighter — preserving the hook, mechanism and payoff while cutting filler — then re-validates. Truncating by character position would amputate the message.How does the agent check a variant fits?
It calls validate_ad_against_platform, which counts each slot's characters, compares to that slot's max, and returns per-slot pass/fail plus an exact over_by count. The ad passes only when every slot passes.Do platforms ever change these limits?
Yes — platforms adjust slot limits without notice, so the spec is reviewed quarterly. Treat the table as the current working set and re-check before a major launch.