paid ads · playbook
Ad copy that passes review: specs and testing for Google, LinkedIn and Reddit Ads
Current text limits, editorial rules and a testing plan for B2B ad copy on Google, LinkedIn and Reddit, plus a pre-launch checklist.
Key takeaways
- Write to the recommended length, not the hard maximum: LinkedIn and Reddit both truncate long text well before their limits.
- On Google, fill all 15 headline and 4 description slots with distinct messages, and pin only what legal or brand rules require.
- Ad Strength isn't used in Ad Rank or Quality Score. Use it as a checklist, not as a performance goal.
- Most rejections come from editorial and claim rules: odd capitalization, gimmicky punctuation, competitor trademarks, and claims you can't back up.
- B2B accounts rarely get the volume for clean copy tests, so test big differences in angle, one variable at a time, and judge on pipeline, not just CTR.
Good B2B ad copy fails in two predictable ways: it gets truncated or rejected because it ignored a platform rule, or it gets approved but says the same thing as every other ad in the auction. This guide covers both problems. First come the current text specs for Google, LinkedIn and Reddit Ads. Then a way to build distinct angles, how to adapt tone to each platform, the policy rules that cause most rejections, and a testing approach that fits B2B volumes. It ends with a checklist to run before launch.
Specs change often. Every number below was checked against the platform’s own documentation in October 2026. Where a number couldn’t be confirmed from an official source, the table says “check current spec”. Confirm against the ad builder before you build final assets.
Google Ads text specs
Responsive Search Ads
Responsive Search Ads (RSAs) are the default Search ad format. You supply a pool of headlines and descriptions, and Google assembles combinations for each auction.
| Asset | Count | Character limit |
|---|---|---|
| Headlines | Minimum 3, up to 15 | 30 each |
| Descriptions | Minimum 2, up to 4 | 90 each |
| Display path | 2 fields | 15 each |
Characters in double-width languages (Chinese, Japanese, Korean) count as 2 toward these limits.
Pinning. You can pin a headline or description to a position. Pins to Headline 1, Headline 2 or Description 1 always show. Pins to Headline 3 or Description 2 are not guaranteed to show. Every pin cuts the number of combinations Google can build, and Google says pinning isn’t recommended for most advertisers and can lower Ad Strength. If you must pin a position, pin 2 or 3 interchangeable options to it instead of a single line.
Ad Strength is not a ranking factor. Google states that Ad Strength isn’t used to calculate Ad Rank, Quality Score or auction wins, and doesn’t directly affect serving eligibility. The rating (Incomplete, Poor, Average, Good, Excellent) mostly measures how well your assets match your keywords and how many distinct combinations they allow. Google recommends at least 2 RSAs rated Good or Excellent per ad group. Use the rating as a completeness check, and never trade a compliant, specific headline for a vague one to raise it.
Assets that extend Search ads
| Asset | Limit | Notes |
|---|---|---|
| Sitelink text | 25 characters | Up to 6 sitelinks on desktop and 8 on mobile for Search and Performance Max; a minimum of 2 must be eligible to show |
| Sitelink descriptions | 2 lines, 35 characters each | Optional, but if you set one line you must set both |
| Callouts | 25 characters each | Up to 10 can show, depending on space and device |
| Structured snippet values | 25 characters each, 3 to 10 values per header | Headers come from a fixed list (Brands, Courses, Models, Service catalog, Types and others); Google recommends at least 4 values |
Callouts set at a lower level override those above them: ad group callouts stop campaign callouts from serving in that ad group. Sitelinks behave differently. By default an ad group uses its campaign and account sitelinks, adding ad group sitelinks changes that default, and higher-level sitelinks can still serve alongside them. Check what each ad group actually inherits.
Performance Max and Demand Gen text assets
| Asset | Performance Max | Demand Gen |
|---|---|---|
| Headlines | 3 to 15, 30 characters each; include at least one of 15 characters or fewer | 1 to 5, 40 characters each; at least one must be 30 characters or fewer to serve on Display |
| Long headlines | 1 to 5, 90 characters each | Not a Demand Gen field |
| Descriptions | 2 to 5, 90 characters each | 1 to 5, 90 characters each |
| Business name | 25 characters; must match your domain or verified business name | 25 characters |
| Call to action | 1, automated by default or picked from a list | Automated, 1 per ad |
The business name field doesn’t allow promotional text. “Acme Analytics” is fine. “Acme, #1 Analytics Platform” is not.
LinkedIn Ads text specs
LinkedIn renamed its hierarchy in late 2025: campaign groups are now campaigns, and the old campaigns are now ad sets. The copy specs didn’t change, but A/B tests now compare ad sets.
Single Image Ads
| Field | Recommended (to avoid truncation) | Hard maximum |
|---|---|---|
| Introductory text | 150 characters | 3,000 characters (up to 10 emojis) |
| Headline | 70 characters | 200 characters |
| Description | 100 characters | 300 characters; may vary on the Audience Network |
| Ad name (internal) | — | 255 characters |
The recommended lengths are the ones that matter. In the feed, members see about the first 150 characters of intro text before “see more”. Put the hook and the offer up front, and treat the rest as optional reading.
Thought Leader Ads
Thought Leader Ads promote an organic post from a person, usually an employee or executive, instead of a company page post. The constraints shape how you write:
- You can’t add a headline or intro text. Any edit has to come from the post’s original author.
- There are no CTA buttons and no ad-level URL. Links in the original post stay clickable after you sponsor it.
- Posts with multiple images, polls or documents can’t be promoted. Single-image and video posts can.
So the copy work happens before the post goes live. Write and approve the post as if it were already an ad, because once it is promoted you can’t fix it at the ad level. The Thought Leader Ads guide covers this format in depth.
Message Ads and Conversation Ads
| Field | Message Ads | Conversation Ads |
|---|---|---|
| Subject | 60 characters, including personalization macros | — |
| Message text | 1,500 characters (up to 10 emojis) | 8,000 characters per message (up to 10 emojis) |
| CTA buttons | 1 button, 20 characters; a “Not Interested” button is added automatically | Up to 5 per message, 25 characters each; “Not Interested” is one of the 5 on the intro message |
| Custom footer / terms | Up to 20,000 characters | Up to 20,000 characters |
| Banner (desktop only) | 300×250, JPG/PNG/non-animated GIF, 2 MB max | 300×250, JPG/PNG, 2 MB max |
Both formats arrive in the member’s inbox, so write them like a short note from a named person. Don’t paste in the copy from a feed ad. Keep the first message short, since the limit is far longer than anyone will read.
Reddit Ads text specs
| Field | Spec |
|---|---|
| Headline (post title) | Up to 300 characters; keep it under 100, or under 80 to avoid mobile truncation |
| CTA button | Picked from a fixed list (Learn More, Sign Up, Download and others), or no button; check current options in Ads Manager |
| Comments | Off by default; turn on “Allow comments” when creating the post, and lock or unlock comments later from the post’s mod tools |
| Lead forms | Onsite lead forms were retired on September 21, 2026; lead generation now sends people to a form on your site |
The headline does most of the work on Reddit because it reads as a post title. Comments are a copy decision too. If you turn them on, the thread becomes part of the ad, and replies that challenge your claims are shown right below them. Plan who answers, and how fast, before you enable comments. The Reddit Ads guide covers community management on ads.
Message pillars and angles for B2B
Platform specs set how much you can write. Pillars and angles set what’s worth writing. Most B2B ads underperform because each asset makes the same vague benefit claim in slightly different words. Start with three or four message pillars: the few things that are true, important to the buyer, and hard for competitors to claim. Then write each pillar through several angles:
- Problem. Name the specific pain in the buyer’s words. “Still reconciling pipeline numbers in spreadsheets?” beats “Streamline your workflow.”
- Outcome. State the result, with a number if you can support it: “Close the books in 3 days, not 10.”
- Proof. Use a customer count, a named logo (with permission), a review-site rating, or a certification. Proof is what makes the other angles believable.
- Objection. Answer the reason people don’t buy: “Live in a week, no engineering ticket” or “Works with your existing CRM.”
- Comparison. Position against the status quo or a category (“Unlike legacy BI…”). Comparing against a named competitor raises the trademark and substantiation issues covered below.
A practical grid is 3–4 pillars × 5 angles. That’s 15–20 candidate lines, enough to fill an RSA pool and plan LinkedIn and Reddit variants from one source. Add a CTA line that sets expectations, such as “Get the 2026 benchmark report” or “See a 20-minute demo”, so the click is pre-qualified.
RSA headline mix and when to pin
Google combines headlines freely, so every headline has to make sense next to any other. A balanced pool of 15 might look like this:
- 3–4 keyword or intent headlines that echo the ad group’s core query. Ad Strength and relevance both reward this.
- 3 outcome or benefit headlines.
- 2–3 proof headlines (numbers, ratings, customer counts).
- 2 objection-handling headlines (pricing model, setup time, integrations).
- 2 CTA or offer headlines.
- 1 brand headline.
Use descriptions (up to 4 × 90) to expand on one pillar each, not to repeat the headlines. Avoid near-duplicates. Ten headlines that all say “fast” give Google nothing to choose between.
When to pin: when legal requires a disclaimer in a fixed spot, when the brand name must always appear, or in a regulated category where certain lines must never appear without others. If you pin Headline 1 for the brand, put 2–3 brand variants on that position. Otherwise, leave it unpinned and let the system learn.
Writing for each platform
Google Search is answer-first. The searcher has already stated their intent, so mirror the query, give the answer, and give a reason to choose you. Headlines are short, so cut adjectives before you cut specifics.
LinkedIn is professional but still a social feed. The first line of the intro text has to stop the scroll on its own. Lead with the role-specific problem or a concrete number, and keep the claim to one idea. The headline sits under the image, so use it to restate the offer (“Free guide: …”, “Webinar: …”). Jargon goes over better than on other platforms, but hype doesn’t, and LinkedIn’s policy bars excessive emojis and capitalization anyway.
Reddit is native or nothing. Headlines that read like a peer’s post outperform polished marketing lines: plain language, specific, a little self-aware, and no exclamation marks. “We built a cheaper way to run load tests. Here’s the benchmark” fits Reddit. “Revolutionize Your Testing Today!” doesn’t. Match the vocabulary of the communities you target. If you can’t write a headline that a member of that community might plausibly have posted, rethink the targeting or the offer.
Policy pitfalls that cause rejections
Editorial rules (Google is the strictest)
Google’s editorial policy disallows:
- Capitalization that isn’t used correctly or for its intended purpose (“FREE TRIAL”, “SaaS PLATFORM”).
- Punctuation or symbols that are gimmicky, unsupported or not used correctly. Excessive or decorative punctuation is a common cause.
- Gimmicky or unnecessary repetition of words or phrases, including repetition inside a single asset.
- Missing, extra or gimmicky spacing.
- Phone numbers in ad text. Use a call asset instead.
- Ads or destinations that don’t name the product, service or business being promoted.
LinkedIn’s ads policy is similar: no incorrect spelling, grammar or punctuation, excessive emojis, capitalization, or unrelated hashtags.
Editorial disapprovals are the easiest to fix and the most annoying to wait on. Lint for them before you submit.
Trademarks
The platforms treat trademarks differently:
- Google doesn’t restrict trademarks as keywords. If a trademark owner files a complaint, it can restrict their trademark in ad text from a direct competitor, or in any ad that uses it in a confusing or misleading way. Descriptive use of a word in its ordinary meaning is allowed. Resellers and informational sites have specific exceptions.
- LinkedIn says ads must not use third-party trademarks without the owner’s express permission, and must not use marks or company names in a way that could confuse users.
The safe default for comparison ads is to compare against a category or approach, not a named competitor. Save named comparisons for your landing page, where you have room to substantiate them, and get legal sign-off.
Superlatives and claims
LinkedIn requires that “any claims in your ad must have factual support,” and bars deceptive or inaccurate claims about competitors. Google’s Misrepresentation policy covers inaccurate claims, improbable results presented as typical, and leaving out material information. In practice, “#1”, “best”, “fastest” or “guaranteed” without a cited source on the landing page invites disapproval or a complaint. If you have a ranking or award, name its source and date (“Rated 4.8 on G2, 2026”), and make sure the landing page shows it.
Personal-attribute and targeting language
Don’t write copy that implies you know something personal about the reader, especially anything in a sensitive category. Google won’t personalize ads based on sensitive categories such as health or sexual orientation. LinkedIn’s policy prohibits discrimination based on personal attributes such as age, gender, disability, religion or ethnicity, and adds requirements for employment, housing, education and credit ads. B2B rarely touches sensitive categories, but “Are you a struggling founder over 50?” style copy causes problems on every platform. Address the role or the situation (“For finance teams closing month-end”), not personal traits.
Misleading by mismatch
All three platforms penalize a gap between the ad and the destination. If the ad says “free”, the landing page can’t open with a paywall. If it says “2026 report”, the report has to be from 2026. Since Reddit retired onsite lead forms, every Reddit lead ad lands on your own page, so the promise in the headline and the first screen of the page need to match.
Testing ad copy on B2B volumes
What to test
Test the difference between angles before you test wording. A test of a problem-led line against a proof-led line will reach a clear result faster than one that swaps a single word. In rough order of impact:
- Offer (demo vs. guide vs. benchmark vs. tool).
- Angle (problem, outcome, proof, objection, comparison).
- Hook: the first line on LinkedIn, the headline on Reddit, Headline 1 candidates on Google.
- CTA wording and button choice.
- Smaller wording and formatting changes.
Change one variable at a time. On LinkedIn, the built-in A/B test runs two ad sets that share every setting except the variable you choose (ad, audience, placement or optimization). Tests must run at least 2 weeks and at most 90 days, and can’t start the day you create them. On Google, ad variations let you test headline or description changes across RSAs, splitting traffic by cookie so each user tends to see only one version.
Sample size realism
Most B2B accounts can’t reach statistical significance on conversions within a normal test window. A rough rule: to tell apart two conversion rates that differ by a relative 20–30%, you need hundreds of conversions per variant, not dozens. If a variant gets 15 leads a month, a conversion test will take quarters. A few ways to cope:
- Test on a higher-volume proxy (CTR, landing-page engagement, form starts), then confirm the winner on pipeline over a longer window.
- Pool traffic into fewer, larger ad sets and ad groups before you split.
- Make the variants bigger. A large gap between angles shows up with less data than a small wording change.
- Judge on qualified outcomes. An angle that doubles CTR and halves sales-accepted leads is the losing variant.
- Write down the decision rule (metric, minimum run time, minimum volume) before you start, so the result isn’t argued after the fact.
On Google, also watch per-asset performance labels in RSA reporting. A headline that stays rated “Low” after it has had enough impressions is the first one to replace.
Refresh triggers
Creative fatigue is real on LinkedIn and Reddit, where the same small audience sees your ads over and over. The thresholds below are rules of thumb, not platform rules. Refresh copy when:
- CTR falls steadily over 2–3 weeks while targeting and bids stay the same.
- Frequency keeps rising in a small, fixed audience (common in ABM campaigns) and engagement drops.
- Cost per qualified lead drifts up without a matching change in auction pressure.
- On Reddit, comment sentiment turns, or the same objection keeps coming up. Rewrite to answer it.
- The offer itself goes stale: last year’s report, a past event, an old pricing claim.
Rotate in a new angle, not a rewording of the tired one, and keep the previous winner running as a control.
Pre-launch checklist
Specs
- Every field within its hard limit, and LinkedIn intro text, LinkedIn headlines and Reddit headlines within their recommended lengths.
- Google RSA: 15 distinct headlines and 4 descriptions where possible; display paths filled; Ad Strength checked, but not chased.
- Sitelinks (25 + 2 × 35), callouts (25) and structured snippets (3–10 values × 25) set at the right level, without accidentally overriding inherited ones.
- PMax: at least one headline of 15 characters or fewer. Demand Gen: at least one headline of 30 characters or fewer.
- Business name matches the domain or verified name, with no promotional text.
Copy quality
- Each asset maps to a pillar and an angle, with no near-duplicates in the RSA pool.
- The first line works alone on LinkedIn; the headline reads like a native post on Reddit.
- CTA states what happens after the click.
- Pins are used only where legal or brand rules require them, with 2–3 options per pinned position.
Policy
- No gimmicky capitalization, punctuation, spacing or repetition, and no phone numbers in Google ad text.
- No competitor trademarks in ad text without permission and legal review.
- Every superlative, number and comparison is backed by a source shown on the landing page.
- No copy that implies knowledge of the reader’s personal attributes.
- Ad promise matches the landing page (offer, price, date, format).
Operations
- Reddit comments decision made, with an owner and response time if comments are on.
- LinkedIn Thought Leader posts are final, since they can’t be edited at the ad level.
- Test plan written: variable, metric, minimum run time, decision rule.
- Refresh review on the calendar (every 2–3 weeks for LinkedIn and Reddit).
Sources
- Google Ads Help: About responsive search ads
- Google Ads Help: About Ad Strength for responsive search ads
- Google Ads Help: About sitelink assets
- Google Ads Help: About callout assets
- Google Ads Help: About structured snippet assets
- Google Ads API reference: SitelinkAsset, CalloutAsset, StructuredSnippetAsset
- Google Ads Help: Performance Max specs and format requirements
- Google Ads Help: Demand Gen campaigns specs and format requirements
- Google Ads Help: Set up an ad variation
- Google Ads policy: Editorial, Trademarks, Misrepresentation
- LinkedIn Marketing Solutions Help: Single image ads specifications
- LinkedIn Marketing Solutions Help: Message ads advertising specifications
- LinkedIn Marketing Solutions Help: Create an A/B test using the ad variable
- LinkedIn: Thought Leader Ads specs
- LinkedIn Marketing Solutions Help: Conversation ads advertising specifications
- LinkedIn: Conversation Ads best practices guide (PDF)
- LinkedIn: Advertising policies
- Reddit Ads Help Center: Image ad specifications
- Reddit Ads Help Center: Manage ads with comments on