Ad CTA Button Character Limits & Predefined Labels

Unlike headlines or descriptions, CTA buttons aren't really a copywriting field on most networks — they're a dropdown. This page documents which networks let you type custom button text, the exact character ceilings, and what happens when you exceed them.

Use the Ad Specs Validator

Paste your copy once. See if it fits Google, Meta, LinkedIn, TikTok, and 8 more ad networks — instantly.

Open the Specs Validator →

The short version: in 2026, only two placements on a major network accept fully custom CTA button text — LinkedIn Message Ads (20 chars) and LinkedIn Spotlight Ads (18 chars). Everywhere else, you pick from a predefined list.

The limits exist because the button is a UI element, not ad copy. Networks render it inside a fixed-width pill button alongside platform chrome (profile pic, sponsored label, dismiss icon). A button that wraps to two lines or overflows breaks the entire creative grid, so platforms either disallow custom text outright or cap it at what fits on a 320px-wide mobile viewport at 14px font.

Predefined-label networks (no custom text accepted):

  • Google Ads: CTAs are part of the asset library or auto-generated; no manual button on Search. Display & Discovery use Apply Now, Book Now, Contact Us, Download, Learn More, Get Quote, Shop Now, Sign Up, Subscribe, See More, Visit Site.
  • Meta (Facebook/Instagram): ~18 predefined labels including Shop Now, Learn More, Sign Up, Book Now, Get Quote, Send Message, Get Offer, Subscribe, Apply Now, Donate Now, Contact Us, Download. Reels and Stories surface a subset.
  • TikTok: ~20 predefined labels. Notably includes Order Now, Pre-order, Read More, Watch Now, Listen Now, Install Now.
  • Pinterest: ~10 labels (Shop, Sign Up, Learn More, Try It, Order Now, Book Now, Visit, Buy, Watch, Read).
  • Snapchat: predefined only — Swipe Up patterns retired, now standard CTA dropdown matching Meta.
  • X (formerly Twitter): predefined only on Website Cards (Shop, Book, Connect, Order, Donate, Get access).
  • Reddit: predefined only, with community-flavored options like Join, View, Get Started.

Custom-text networks:

  • LinkedIn Message Ads: 20 character custom CTA. Counts include spaces. UTF-8 multi-byte characters (em dash, curly quotes) count as 1 character toward the limit but may break in older email clients that mirror the message — use straight ASCII when possible.
  • LinkedIn Spotlight Ads: 18 character custom CTA. Tighter than Message Ads because the button sits in a narrower right-rail unit.
  • LinkedIn Conversation Ads: each reply node has its own custom button — 25 characters per button, up to 5 buttons per node.

What happens when you exceed the limit:

LinkedIn's editor hard-blocks submission past the limit — you cannot save the campaign. There is no truncation, no silent fail. Predefined-label networks simply don't expose a text field, so the question doesn't arise. If you try to inject a custom CTA via API on Meta or Google, the call returns a validation error against the call_to_action_type enum.

Gotchas:

  • Emoji cost 2 characters in LinkedIn's counter (some count as 4 if they're compound zero-width-joiner sequences like 👨‍💻). They also render as [?] on ~3% of older Android Outlook clients receiving Message Ads.
  • Trademark/registered symbols (™, ®) count as 1 char but visually crowd a small button. Avoid.
  • RTL languages (Arabic, Hebrew) — the 20-char limit still applies, but glyphs are wider; Book your free demo translates to ~14-16 chars of Arabic that occupy the same pixel width. Test on device.
  • Title case vs. sentence case: LinkedIn doesn't enforce either, but Meta auto-renders predefined labels in Title Case regardless of how the API stores them.

Best-practice rules for fitting copy in 18-20 characters:

  • Front-load the verb (Book, Get, Download, Start).
  • Cut articles (a, the) — they almost never change comprehension.
  • Replace your with nothing or with the noun directly.
  • Specify the asset, not the action (Pricing PDF beats Click here).
  • Numbers are cheap and high-signal (Get 30-day trial = 16 chars).

Example

Source headline: Download our complete 2026 paid media benchmark report (56 chars).

For a LinkedIn Message Ad CTA (20 char limit):

  • Round 1: Download benchmark report — 25 chars. Over.
  • Round 2: Get benchmark report — 20 chars. Fits exactly.
  • Round 3: Get the 2026 report — 19 chars. Fits, adds specificity.

Ship Round 3.

Tip — Build your CTA copy in a plain-text editor with a character counter visible (most IDEs, or a simple `=LEN(A1)` in Sheets). LinkedIn's in-platform counter is accurate but lags by a keystroke, and you'll waste time discovering you're over-budget after writing the rest of the ad.

Questions

Do spaces and punctuation count toward the CTA character limit?
Yes — every visible character counts, including spaces, hyphens, apostrophes, and punctuation. `Book your free demo` is `19 chars` (3 spaces included). Trailing whitespace also counts but gets stripped on render, so don't pad. Emoji count as 2+ characters depending on the codepoint.
Why don't Google and Meta let me write custom button text?
Two reasons: UI integrity and trust. Predefined labels guarantee the button fits the rendering grid across thousands of placements (feed, Reels, Stories, Audience Network, Discover). Second, the labels are pre-vetted for policy — a custom `Click here to win` would create a moderation queue Meta doesn't want to staff. The tradeoff is you get less testable creative on the highest-friction element of the ad.

AdPlus is live — free Starter tier

One login for 12 ad networks. AI plans your campaign, validates every asset automatically, and publishes across every connected account. Start on the free Starter tier.

Get started