Shorts ad copy: 40-character headline, 90-character description

Google recommends 40-character headlines and 90-character descriptions for the Shorts ad CTA card. Draft copy in bulk with Sume and check lengths before upload.

5 min readSume
All posts

For the mobile call-to-action overlay card on a YouTube Shorts ad, Google Ads Help says to provide headlines of 40 characters and descriptions of 90 characters, and notes that channel descriptions are limited to 90 characters (read 2026-10-03). Text over one line on mobile or two lines on desktop and TV is truncated.

Sume can draft copy variants in bulk, but its output is a draft: a length check in your own code is what keeps overlong lines out of the upload.

Which limits apply?

The numbers are short enough to check in one pass. They are the page's recommendations for the card, not limits that Google Ads enforces on every field.

  • Shorts ads use your channel name and description.
  • Hooks belong in the first seconds of the video, not only in copy.
  • The page does not say how Google counts characters in every script.
Shorts ad text, read 2026-10-03
FieldGoogle saysCheck
HeadlineProvide 40 characterslen(text) <= 40
DescriptionProvide 90 characterslen(text) <= 90
Channel descriptionLimited to 90 characterslen(text) <= 90
TruncationOver 1 line on mobile or 2 on desktop and TV is cutPreview the card

How do I draft copy in bulk?

A bulk queue can take one item per product with the instruction "headline up to 40 characters, description up to 90 characters". Models do not count characters reliably, so treat that line as a request, not a guarantee.

The Format run returns an output; bind an output_schema if you want it as JSON with named fields rather than prose.

How do I check lengths?

Run the check on whatever comes back, before it goes near an ad account. The script below reads a list of pairs and prints the ones that are over; it has no network calls, so it is safe to run in CI.

Python's len counts code points, which is the simple standard. If you ship in a script with combining marks, confirm the limit against Google Ads' own editor preview.

ROWS = [
    ("Free shipping ends Sunday", "Gift-ready sets, wrapped and sent in two days."),
    ("The holiday gift set people actually keep using all year long",
     "A short description that stays under the limit."),
]
LIMITS = {"headline": 40, "description": 90}
bad = 0
for head, desc in ROWS:
    for name, text in (("headline", head), ("description", desc)):
        if len(text) > LIMITS[name]:
            bad += 1
            print(f"{name} {len(text)}>{LIMITS[name]}: {text}")
print("ok" if bad == 0 else f"{bad} over limit")

What Sume does not do

Sume has no Google Ads integration: it cannot push copy into a campaign or read what Google shows. Trim and approve text in your own tooling, then paste or import it in Google Ads.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume