Dev.to WebDev 🛠 Dev 👁 0 📖 2 min read

Character limits have two numbers: building an ad preview around warnings and blocks

At Maestro we built a free LinkedIn ad mockup tool, and the most useful decision in it was also the simplest: a field doesn't have one limit, it has two. LinkedIn publishes hard maximums, and it also recommends much sho

At Maestro we built a free LinkedIn ad mockup tool, and the most useful decision in it was also the simplest: a field doesn't have one limit, it has two.

LinkedIn publishes hard maximums, and it also recommends much shorter lengths to reduce truncation:

Field Review target Published maximum
Introductory text 150 characters 3,000 characters
Headline 70 characters 200 characters
Description 100 characters 300 characters

A single maxLength can't represent that. Set it to 3,000 and people ship copy that gets cut off. Set it to 150 and you block copy LinkedIn would accept.

Warn on one, block on the other

So the two limits behave differently:

  • Past the recommendation: show a warning. The copy may be fine, and the writer decides.
  • Past the published maximum: block the review export until the field is fixed.

This separates "you should look at this" from "this can't work", and the same pattern suits any field with a soft and a hard limit.

Be honest about what you can't count

LinkedIn doesn't publish every detail of its Unicode counting logic, so our count is a local review count, not LinkedIn's. The tool says so, and tells people to test boundary copy in Campaign Manager before launch. It's better to state the uncertainty than to show a number that looks authoritative.

Don't fake unsupported states

A 4:5 portrait image serves on mobile only. A desktop/mobile switch could just squeeze the same image into both frames, but that would imply a placement that doesn't exist. So the desktop view shows an unsupported state instead.

Keep it in the browser

There's no sign-in, and the image and production files are generated in the browser. Uploaded images stay there unless you download or copy a file yourself. For a tool that handles unreleased ad creative, that also means there's no creative to store on a server.

Say what it isn't

It isn't an official LinkedIn preview. It's an approximation for creative review, and the final check belongs in Campaign Manager.

You can try it here: LinkedIn ad mockup. Disclosure: I run Maestro, the B2B paid media company that makes it.

Limits were checked against LinkedIn's single-image ad specifications on September 27, 2026.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.