Ad Copy Length Checker

Paste your headlines and descriptions — see every cell checked against the real platform limits.

Your ad copy is counted inside this browser. Nothing is uploaded, and the text itself is never saved — only your platform and column choices are remembered.

Why a plain character count gets this wrong

Paste a Google Ads sheet into Excel's LEN() and every character reads as one unit. Google Ads does not count that way: it bills each Korean, Japanese or Chinese character as two units, so a headline that "measures" short in a spreadsheet can still be over the real limit. The headline "이번 주 무료배송 이벤트" is 13 characters by string length, but 23 units against Google's 30-unit headline ceiling — the gap that causes silent rejections on rows that "looked fine" locally.

It matters most at scale: a sheet of 40 ad groups with up to 15 headlines and 4 descriptions each is hundreds of cells, and Google, Microsoft, Meta, Naver and Kakao each enforce a different ceiling with a different counting rule. This tool runs that arithmetic once, consistently, on the whole sheet, before it reaches the platform's own uploader.

Checking a sheet end to end

  1. Pick a platform first — the limit and the counting rule both change per platform.
  2. Switch to "Whole sheet" and paste from Ads Editor or a spreadsheet with the header row included, so columns auto-map to Headline 1, Description 2, Path 1, and so on.
  3. Fix any wrong guess — a Callout read as a Headline, say — from the dropdown above that column. Only the mapping is remembered locally, never the ad text.
  4. Read the colors: red is over the hard limit, amber is near the limit or (Meta only) will be truncated, darker amber is under the minimum, green is clear.
  5. Filter to "Only rows with issues," fix them, then copy as TSV or download as CSV.

The rule behind the double-width count

Every Unicode character carries an East Asian Width property, originally defined for East Asian typesetting. Two of its six categories render at roughly twice the width of a Latin letter — Wide (Hangul syllables, CJK ideographs, hiragana, katakana) and Fullwidth (full-width Latin letters/digits such as A, plus CJK punctuation) — and ad platforms bill both as two characters. The other four — Halfwidth, Narrow, Ambiguous and Neutral, covering ASCII, half-width kana, and most symbols — bill as one. This checker sums that per-character weight rather than guessing from the sentence's language as a whole, so a Korean sentence with an embedded English brand name or a percent sign still counts every part correctly.

Worked examples

Google Ads headline, passes: "이번 주 무료배송 이벤트" is 13 characters by string length — 10 Hangul plus 3 spaces. Weighted: (10 × 2) + (3 × 1) = 23, under the 30-unit ceiling with 7 to spare.
Google Ads headline, fails despite looking short: "겨울 신상 20% 할인 무료배송 이벤트 진행중" is 25 characters by string length — comfortably under 30 in a plain counter. Weighted: 16 Hangul × 2, plus 3 ASCII in "20%", plus 6 spaces = 32 + 3 + 6 = 41 — 11 units over, exactly the row a LEN() formula would wave through.
Meta primary text, truncated but not rejected: a 150-character line about a return policy is over Meta's 125-character recommendation but well under its 500-character hard cap. The tool marks it "will be truncated" in amber, not an error — the ad still runs, cut with an ellipsis on most placements.
Naver Powerlink description, below the minimum: "지금 특가" is 5 characters (Naver counts Korean as one, not two). Naver requires 20 to 45 characters, so 5 falls below the floor and is rejected at registration despite reading as "short and safe."

Unicode width categories this tool weighs

CategoryExamplesWeight
Wide (W)Hangul syllables, CJK ideographs, hiragana, katakana2
Fullwidth (F)Full-width Latin letters/digits (A B C), CJK punctuation2
Halfwidth (H)Half-width katakana, half-width symbols1
Narrow (Na)Standard ASCII letters, digits, punctuation1
Ambiguous (A)Greek/Cyrillic letters, symbols such as ± § ©1
Neutral (N)Most other punctuation and symbols1

Common mistakes

What this checker does not do

It measures length only — not whether a headline uses a restricted term, whether a phrase might trigger a policy review, or how an ad performs once the platform's serving algorithm decides which headlines and descriptions to combine. A fully green sheet means the copy will not be rejected for length, not that it is otherwise compliant. All of this runs locally: nothing you paste is uploaded, and only your platform and column choices are remembered.

Sources & further reading

Frequently asked questions

Why is my Korean headline rejected at 15 characters?

Because Google counts it as 30. Google Ads states that each character in a double-width language — Korean, Japanese or Chinese — counts as two characters. So a 30-character headline limit is really 15 Korean characters, a 90-character description is 45, and a 25-character callout is only 12 (Google spells that one out itself). Most ad copy length checkers use a plain string length and tell you 15 is fine, which is why the rejection only shows up at upload. This checker measures every character by its Unicode East Asian Width, so full-width characters — including full-width letters like A — count as two, exactly the way the platform counts them.

What are the Google Ads RSA character limits?

For a responsive search ad: headline 30, description 90, each display path 15, callout 25 and sitelink text 25 — in double-width languages, halve those (15 / 45 / 7 / 12 / 12). A responsive search ad also needs at least 3 headlines and 2 descriptions to run, so this tool flags rows that are short on either. Microsoft Ads uses the same 30 / 90 / 15 limits, and Performance Max splits headlines into short (30) and long (90).

Why are Naver and Kakao different?

Korean search platforms count Korean characters as one, not two — but they add a floor. Naver Powerlink allows a title of 15 characters and a description of 20 to 45, and a description under 20 characters is rejected at registration, so being short is a failure too, not just being long. Kakao keyword ads use 15 and 45. This tool shows those as "below minimum" in a separate colour from "over the limit", because they are two different rejection reasons.

Meta: why "will be truncated" instead of "over the limit"?

Because Meta will accept the ad either way. Primary text is recommended at 125 characters but accepts up to 500; a headline is recommended at 40 but accepts up to 255. Past the recommendation your copy is not rejected, it is cut off with an ellipsis on most placements. Flagging that in red like a hard limit would be a false alarm, so it is shown in orange as a truncation warning — and only a genuine hard limit is shown as an error.

How are spaces, emoji and keyword insertion counted?

Spaces and punctuation are counted, because the platforms count them. Emoji are counted as one grapheme each — including multi-codepoint ones — but Google Ads does not allow emoji in search ads at all, so they are flagged. Keyword insertion like {KeyWord:Running Shoes} is measured on the default text you supplied, since that is what shows when the keyword does not fit; the cell is badged so you know. If a placeholder has no default, the length genuinely varies at serving time and the tool says so rather than guessing. And none of this leaves your browser: the counting runs locally, your ad copy is never uploaded and never saved.