Free tool, no signup

Meta Ad Copy Checker

See exactly where Meta cuts your primary text, headline and description, with a live feed preview as you type.

Meta hard-caps ad text at 3,000 characters for primary text and 255 for headlines, but the numbers that matter are far smaller: primary text is truncated behind a See more link at roughly 125 characters, and headlines at roughly 27. Anything past those points is invisible to most people scrolling.

Feed preview

Your PageSponsored

Launching ads used to take my whole afternoon. Now the batch goes out in about a minute, with every enhancement turned off.

Launch 100 ads in one clickFirst 10 ad uploads freeShop Now

Truncation points are approximate: Meta varies them by placement, device width and font. Treat them as the safe line, not an exact one.

Check copy once, apply it across the whole batch

Copy variations multiply fast across creatives and ad sets. Volume Creatives takes your approved variations and builds every combination in one publish, so nothing gets retyped or mistyped.

How to use it

  1. 1

    Paste the primary text

    Drop your primary text into the first box. The meter counts characters against the 125 character truncation point and the 3,000 character hard limit, and the feed preview shows where See more will appear.

  2. 2

    Add the headline and description

    Type the headline and description. Both are counted against a 27 character safe line, the point where a narrow mobile feed card starts clipping, and a 255 character hard limit.

  3. 3

    Read the feed preview

    The mock feed card on the right renders your copy the way a mobile feed does, cut at the truncation points with an ellipsis, so you can see which words survive above the fold.

  4. 4

    Move the hook above the cut

    If the meter turns amber, edit until the offer, the claim or the question sits inside the visible portion. Length past the cut is allowed; hiding the point of the ad behind it is the mistake.

Worked example

You enter

Primary text
144 characters
Headline
Cold brew that ships free on $40 orders
Description
12 cups per bottle

You get

Primary text
Truncates after ~125

Visible: “Our cold brew concentrate makes 12 cups per bottle and ships free on orders over $40. Try it for 30 days and send it back if…”

Headline
39 / 27, truncates

Shows as “Cold brew that ships free o…” on a narrow feed card.

Description
18 / 27, shows in full

The primary text survives because both the product claim and the free shipping offer land before the cut; only the guarantee is hidden, which is acceptable supporting detail. The headline does not survive: the $40 threshold is the point of it and it is clipped. Rewrite it as something like Free shipping over $40 (22 characters) and the whole offer is visible.

Meta ad text limits by field

FieldVisible before truncationMeta's recommendationHard limitWhere it appears
Primary text~125 characters, then See more125 characters3,000 charactersAbove the creative in Feed; as a short caption on Stories and Reels
Headline~27 characters on narrow mobile cards40 characters255 charactersUnder the creative in Feed, beside the CTA button; not shown on Stories or Reels
Description~27 characters when shown at all30 characters255 charactersDesktop feed and right column; only sometimes on mobile
Link displayDomain onlyn/aDomain of the destinationUnder the headline in Feed

The visible counts are truncation points, not limits. Meta accepts copy up to the hard limit and simply hides the rest behind See more or an ellipsis. The exact cut moves with placement, device width, font and language, so these are safe lines to write inside, not walls.

Why the truncation point matters more than the limit

Meta's hard limits are generous enough that almost nobody hits them. The number that actually shapes results is the truncation point, because it decides what a person scrolling at speed sees before deciding whether to stop. On a mobile feed card the primary text shows roughly the first 125 characters, or fewer if you use line breaks, and then folds behind See more. Most people never tap it. If your offer, your proof or your question sits in character 140, you paid to show an ad that does not say anything.

The same logic applies to the headline. It is the boldest text on the card and it sits right next to the button, so it is often the only line people read. A headline that clips mid-word looks broken, and a headline whose meaning lives in the last three words is a headline with no meaning on half of all phones. Write it short, front-load the noun, and treat 27 characters as the safe line even though Meta's guidance says 40.

Common mistakes

Opening with a greeting or a throat-clear ("Hey there! We are so excited to announce") spends the visible characters on nothing. Starting with an emoji stack pushes the first real word further right and, because emoji widths vary by device, makes the cut unpredictable. Using several short paragraphs in the primary text triggers See more after the first line or two regardless of length, so the second paragraph is effectively hidden. Putting the discount only in the headline, where vertical placements never show it. And relying on the description for anything important, when on most phones it does not render at all.

Long copy still works, when it is built for the cut

None of this means primary text must be short. Long copy performs well for considered purchases, supplements, courses and anything where the buyer wants detail before clicking. The rule is that the first 125 characters must work as a complete ad on their own: a hook, a claim and a reason to keep reading. Everything after the cut is a second ad for the minority who tap through, and it can be as long as it needs to be. Test both lengths rather than assuming; the creative testing guide covers how to structure that fairly.

Placements change what is shown

Feed shows primary text, headline and (sometimes) description. Stories and Reels show a short caption from the primary text and no headline card at all, so any copy that only exists in the headline vanishes on vertical placements. Meta's placement customisation lets you supply a different primary text and headline per placement group within one ad, and it is worth using: a full version for Feed, a one line version for vertical. Pair this with correctly sized assets from the ad size cheat sheet and preview each placement in the mockup generator before publishing.

A working structure for the first 125 characters

A pattern that survives the cut on most accounts is claim, proof, offer, in that order and in one sentence if possible. "Makes 12 cups per bottle, rated 4.8 by 3,000 customers, free shipping over $40" is 78 characters and says everything a first-time viewer needs. Notice what it does not do: no greeting, no brand name (the page name is already on the card), no emoji, no line break. Write that sentence first, check it here, and only then add the longer story underneath for the people who tap See more.

Length is not the only review risk

This checker counts characters and shows the cut. It does not judge what the words say. Phrasing that implies personal attributes, promises results or makes health or income claims can be rejected at any length, so run the final copy through the ad policy checker as well, and read why Facebook ads get rejected if a batch has already been disapproved. Once the copy is approved and sized, the remaining risk is a typo introduced while pasting it into thirty ads by hand, which is the part a bulk launcher removes.

Frequently asked questions

What is the Facebook ad character limit?

The hard limits are 3,000 characters of primary text, 255 for the headline and 255 for the description. The practical limits are much lower: about 125 characters of primary text and about 27 of headline show before truncation on a mobile feed card. Meta's own guidance suggests 125, 40 and 30 characters respectively, and this checker uses a tighter headline line because narrow phones clip earlier than that.

Does going over the truncation point hurt performance?

Not directly, and long copy works well in some verticals, particularly considered purchases where people want detail before clicking. What hurts is putting the hook or the offer after the cut, where most of the audience never sees it. Write the first 125 characters as if they were the whole ad, then let the rest earn its place for the people who tap See more.

Are the truncation points exact?

No. Meta varies them by placement, device width, font rendering and language, so treat them as a safe line rather than a precise cutoff. A line break in the primary text also triggers See more early, sometimes after only one or two lines regardless of character count, which is why the checker counts characters and the preview is a guide rather than a guarantee.

Where does the headline show, and when is it hidden?

The headline sits under the image in Feed placements, next to the call to action button. In Stories and Reels there is no headline card at all: the primary text may show as a short caption and the headline is dropped. So a headline that carries the offer on its own is fine for Feed and invisible on vertical placements. Put the offer in the primary text as well.

Does the description ever show?

Rarely on mobile. Meta shows the description on desktop feed and right column, and only in some mobile feed layouts when there is room. Treat it as optional supporting copy such as shipping terms or a guarantee, never as the place the offer lives.

Do emojis count as one character?

Not always. Many emojis are several code units, and some flags and skin tone variants are five or more, so a line that looks short can count long. Emojis also render at different widths across devices, which shifts the truncation point. Use them sparingly at the start of a line, not as bullet points down a long list.

Should I write different copy per placement?

Yes, when the placement changes how the copy is displayed. Meta lets you customise primary text and headline per placement group within one ad. A common pattern is a full length primary text for Feed and a one line version for Stories and Reels, where only the first line is likely to be read over a full screen video.

Stop rebuilding ads one at a time.

Connect your ad account, drop in the creatives, and watch the batch land paused. Nothing spends until you say so.

First 10 uploads free No credit card Every batch publishes paused

Not ready for a trial? Get the 100-ad launch QA checklist instead.