Ad platforms do not usually reject copy that runs long. They truncate it, or they quietly stop showing that asset, and the campaign keeps spending.
So the failure never reaches you as an error. It reaches you as a slightly worse result, which is indistinguishable from a slightly worse week.
We built a checker for this — 22 placements across Google Ads, Meta, LinkedIn, TikTok, X, Pinterest and Microsoft Advertising, with 87 tests behind it. The interesting part is not the tool. It is the four decisions that had to be made before a single limit could be checked, and each one applies whether you use a tool or a spreadsheet.
Decision one: where does a number live?
Every limit lives in exactly one file, and each entry carries two things beyond the number itself: the official URL it came from, and whether it has been verified against that source.
That sounds bureaucratic until you try to maintain limits without it. Platform limits change. Somebody reads a figure on a blog, writes it into a checklist, and two years later nobody can say whether 90 characters was ever right or where it came from. The number and its provenance have to travel together, or the checklist becomes folklore.
The practical version for a business not building a tool: keep your limits in one document, and next to each number put the URL you got it from and the date you last checked it. That is the whole discipline.
Decision two: an unverified number can warn, never block
Some platforms publish their limits plainly. Some do not, and the figure circulating is from secondary sources.
Any limit we could not confirm on the platform’s own documentation is marked unverified, and an unverified limit can only produce a warning — never a hard failure. The finding says so explicitly.
The reason is about trust in the tool rather than about accuracy. A checker that blocks your ad on a number it cannot substantiate will be overridden the first time it is inconvenient, and once a team learns to override a gate they override it for the real failures too. A control that fires on shaky evidence destroys its own authority.
Decision three: separate a hard cap from a recommendation
Two different things get called a limit.
A hard cap is a number the platform enforces. Exceed it and the asset is rejected or cut. That is a blocking failure.
A soft cap is where truncation or degradation begins in practice, or what the platform recommends. Exceeding it is a judgement call.
Meta is the clearest case: it publishes no hard cap for feed text, so a length finding on Meta can only ever be a warning. Treating a recommendation as a rejection would make the tool wrong about the platform.
If you are checking by hand, the same distinction: two columns, not one.
Decision four: fail closed on anything unknown
An unrecognised placement, a mistyped field name, or a missing required field produces a failure rather than a pass.
This is the decision that most tools get backwards, and it is the difference between a checker and a decoration. If a typo in a field name causes that field to be skipped silently, your ad passes because it was never examined — and you have the same defect as a gate that reads a file which does not exist.
★ Insight ─────────────────────────────────────
Every one of these four decisions is really the same question: what does the tool do when it does not know? Skip silently, warn, or refuse. Get that wrong and the output stops meaning anything, because a pass no longer distinguishes “checked and fine” from “not checked”. The limits themselves are the easy part — they are published numbers. The design is entirely in the unknown cases.
─────────────────────────────────────────────────
The one that catches real campaigns: dynamic keyword insertion
This is the failure worth knowing about even if you never use a checker.
Dynamic keyword insertion lets a headline include the search term that triggered it — you write something like Emergency {KeyWord:Plumber} Sydney, and Google substitutes the matched keyword, falling back to your default if it would be too long.
Which means the length of that headline is not a property of the headline. It depends on which keyword matched.
Emergency Plumber Sydney fits comfortably. Emergency Blocked Drain Repair Sydney may not, and when it does not, Google falls back to your default — so the ad that actually shows is the generic one, on the highest-intent searches, which is the opposite of what the feature is for.
You cannot see this by looking at the ad. You have to take each headline and expand it against every keyword in the ad group, then check the longest result. Our checker takes an optional keyword list for exactly this. By hand it is a spreadsheet with a length formula, and it is worth an hour.
What to check before an ad goes live
Five things, none of which need software:
- Every headline and description against its platform’s current limit, from the platform’s own documentation rather than a blog.
- Every dynamic insertion expanded against your longest keyword, and the result checked against the same limit.
- Whether you are looking at a hard cap or a recommendation — they demand different responses.
- That the landing page says the same thing as the ad. Not a length issue, and in our experience it catches more than length does, because the two get edited by different people at different times.
- That every claim in the copy is one you can support. Character limits are the cheap check; the claims are the expensive one.
The general principle underneath: an ad platform’s silence is not approval. It will take copy it cannot fully display and spend your budget on it, and nothing in the interface will tell you that is what is happening.
Cosmos Web Tech manages Google Ads and builds websites for Western Sydney and Hills District small businesses. Managed IT comes from Cloud Geeks, apps from Awesome Apps, and we are part of Ganda Tech Services.
