
Purpose of this document:
How we write Google Ads responsive search ads for home service businesses. Three RSAs per ad group, each one a different offer angle, every slot filled (15 headlines, 4 descriptions, every time). Most home service RSAs ship half-built with one weak angle, and this playbook is the fix.
RSAs aren’t single ads. They’re a pool that Google rotates. Fill the pool right and the ads work. Cut corners and they don’t.
How responsive search ads work
A responsive search ad is a pool of pieces that Google assembles into the actual ad someone sees. You give Google 15 headlines and 4 descriptions. Every time the ad serves, Google picks 3 of those 15 headlines and 2 of the 4 descriptions, then shows that combo to the searcher. Next impression, different combo. Same RSA, different served ad.
This is the part most contractors miss. You’re not writing one ad. You’re writing a pool that Google rotates through forever, testing different mixes against different searches. Every headline you write is going to get tested in every position, against every other headline you wrote.
FILL EVERY SLOT, EVERY TIME
If you only wrote 8 headlines, Google has fewer combinations to test. If 3 of your headlines are weak, Google might serve those 3 together for one impression. The pool only works if you actually fill it.
The character limits
| Slot | Count per RSA | Character limit |
|---|---|---|
| Headlines | 15 | 30 max |
| Descriptions | 4 | 90 max, 70 min recommended |
Don’t waste descriptions on short copy. If you have 90 characters available, USE them. A 45-character description gives up half its real estate.
Pinning: controlling what Google can pick
By default, Google picks any 3 of your 15 headlines for any of the 3 positions on the served ad. Pinning forces a specific headline into a specific position. Two pins per RSA, every time:
| Headline | Position pinned to | What goes here |
|---|---|---|
| Headline 1 (H1) | Position 1 | A keyword-intent match in searcher language. If the ad group is “Fence Company Near Me”, H1 is “Local Fence Company” or “Fence Company in Cincinnati”. Never company jargon. Never your value prop. Use the searcher’s words. |
| Headline 15 (H15) | Position 3 | The exact business name. “Bedrock Fence”. Nothing else. No taglines, no “Call Today”, no ”& Co.”. |
| H2 through H14 | Unpinned (floating) | These rotate into any position Google wants, including position 2. The pool of 13 headlines that lean into this RSA’s specific theme. |
Position 2 is INTENTIONALLY left unpinned. Google has 13 unpinned headlines to choose from for that slot, and we want Google to test which one wins. That’s the whole point of the strategy. (More on that in the next section.)
Descriptions never get pinned. All four float, and Google picks 2 of them for any given served ad. So all 4 have to read clean in any order, alongside any other one in the pool.
Never convert "near me" to "near you"
When the ad group is “Fence Company Near Me”, a tempting move is to write H1 as “Fence Company Near You”. Don’t. It reads cheap and unnatural. Use a location reference (“Local Fence Company”, “Fence Company in Cincinnati”) or a stronger benefit headline (“Built-To-Last Fence Install”) instead.
Three RSAs per ad group: our strategy
Every ad group gets THREE RSAs, each with a psychologically distinct theme. Not three almost-the-same variants. Three different angles, each fighting for a different searcher mindset.
The math, per ad group:
- 3 RSAs
- 15 headlines per RSA × 3 RSAs = 45 headline slots
- H1 (shared, pinned) + H15 (shared, pinned) = 2 slots that repeat across all 3 RSAs
- H2-H14 (unpinned, leans into theme) × 3 RSAs = 39 unique unpinned headlines per ad group
- 4 descriptions per RSA × 3 RSAs = 12 unique descriptions per ad group
Forty-five headlines. Twelve descriptions. PER. AD. GROUP. This is what most contractors don’t do. They write one RSA, half-fill it, ship it, and wonder why the ads underperform. Then they blame the platform. The platform is fine. The pool is empty.
Why three angles
Google’s algorithm needs different angles to test, not different wordings of the same angle. When all 3 RSAs say “fast, friendly, professional fence install” in slightly different ways, Google can’t learn anything because there’s no real difference between them. When RSA #1 is Local & Trusted (“3rd-Generation Cincinnati Crew”), RSA #2 is Professional Quality (“Posts Set 4 Feet Deep”), and RSA #3 is Transparent & Reliable (“Itemized Quotes, Day One”), Google can actually see which mindset converts and lean into it.
You’re not picking the winner. Google is. Your job is to give Google 3 real choices.
Workflow: one RSA at a time
When you sit down to write the 3 RSAs for an ad group, work top-to-bottom on one before starting the next:
- Pick the 3 angles for the ad group (next section covers how).
- Write H1 (pinned, position 1). Same across all 3 RSAs in this ad group.
- Write H15 (pinned, position 3). Same across all 3.
- Write RSA #1’s 13 unpinned headlines (H2-H14), all leaning into angle #1.
- Write RSA #1’s 4 descriptions, each in a different structural shape.
- Repeat steps 4-5 for RSA #2 and RSA #3 with their angles.
- Spot-check: every unpinned headline is unique to its RSA. No copy-paste between RSAs. All 4 descriptions inside an RSA use different shapes.
Important: do not pool-write. Don’t brainstorm 39 headlines and then try to sort them into 3 RSAs. Write one RSA fully, then the next, then the next. The theme stays sharper that way.
Picking the three angles
The three angles are the editorial call that makes or breaks the ads. Three questions, in order:
1. What offers work best in this market? Different markets reward different things. Emergency plumbing rewards speed above everything. Premium roofing rewards trust and craftsmanship. Cleaning markets reward predictable pricing. Start here.
2. What’s this client’s USP versus the competition in the area? What does this business have that the other 5 ads on page one don’t? Family-owned 3rd generation. A specific certification. A guarantee none of the competition offers. Hyper-local crew with photos of recent jobs. Find the actual edge.
3. What does the ideal customer truly care about? Not what the business owner thinks they care about. What the customer actually wants in the moment they’re searching. Someone searching “fence company near me” on a Saturday afternoon is usually scouting before getting quotes. They care about reputation and pricing transparency more than 24-hour response time.
Synthesize those three answers into 3 distinct angles. The angles have to be PSYCHOLOGICALLY distinct, not three flavors of the same angle. “Fast install” and “quick turnaround” and “ready in days” are one angle three times. “Speed” and “Trust” and “Transparent Pricing” are three different angles.
Theme distinctness is the hard part
The #1 reason this strategy fails is writing 3 RSAs with different LABELS but the same UNDERLYING angle. “Speed”, “Quick Response”, and “Same-Day Service” are not 3 themes. They’re 1 theme written 3 times. If you can read the 3 RSA themes aloud and one of them is just a synonym of another, redo.
Common combinations by ad-group intent
A starting point when you’re stuck. Each row is a real ad-group intent and the 3 angles that usually fit.
| Ad-group intent | Angle 1 | Angle 2 | Angle 3 |
|---|---|---|---|
| Install (Fence Install, Roof Replacement) | Quality / Craftsmanship | Speed / Convenience | Trust / Reliability |
| Repair (AC Repair, Drain Cleaning) | Fast Service | Expert Repairs (done right, not band-aided) | Transparent Pricing |
| Safety-focused (Pool Fence, Privacy Fence) | Safety First (kids, family) | Code Compliance (passes inspection) | Peace of Mind |
| Local intent (Fence Company Near Me) | Local & Trusted | Professional Quality | Transparent & Reliable |
| Emergency (Emergency Plumber, Burst Pipe) | Speed (60-min response) | Risk Reversal (warranty / guarantee) | Trust (years in business) |
For the deeper angle taxonomy (14 angles, when to use which, how to stack them), see Offer Creation Framework.
Worked example: a full ad group’s 3 RSAs
Bedrock Fence in Cincinnati. Ad group: “Fence Company Near Me”. We’ll build all 3 RSAs end-to-end.
Step 1: Pick the angles
The market: Cincinnati fence install. Mid-ticket, planned-purchase, homeowner searching from the couch. They’ve been thinking about a fence for months and finally typed it in. Not in emergency mode.
The USP: Bedrock Fence is locally established, focuses on real craftsmanship (4-foot post depth, real cedar/vinyl, no shortcuts), and itemizes quotes up front so there’s no surprise pricing on install day.
The customer wants: Reputation, quality, and to know what it’s going to cost. Speed matters less here than confidence in the contractor.
Three psychologically distinct angles that fit:
- Angle 1, Local & Trusted. Cincinnati-specific reputation. Years in the area. Neighbor proof.
- Angle 2, Professional Quality. Build quality, materials, craftsmanship. The fence outlives the neighbor’s.
- Angle 3, Transparent & Reliable. Itemized quotes, fair pricing, show-up-when-they-say.
Step 2: Write the shared H1 and H15
These are pinned and don’t change across the 3 RSAs.
H1 (pinned position 1): Fence Company in Cincinnati
Why: matches the ad-group intent (“Fence Company Near Me”) in searcher language, with the real city name replacing “near me”. 27 characters. Could fall back to Local Fence Company (19 chars) if Cincinnati pushes a downstream headline over the limit, but the city-specific version wins on relevance.
H15 (pinned position 3): Bedrock Fence
Why: exact business name. 13 characters. No ”& Co.”, no tagline, no “Call Now”. Brand visibility on every served impression.
Step 3: RSA #1, Local & Trusted
The 13 unpinned headlines (H2-H14) all lean into LOCAL + TRUSTED. They’ll fill position 2 most of the time (and occasionally position 1 or 3 when Google serves a shorter ad). Mix of headline types (benefit / trust / differentiator / CTA), all in the same register.
The annotations show WHY each headline earns its slot. The first time the copy principles show up live, on real lines.
| # | Headline | Chars | Type | Note |
|---|---|---|---|---|
| H2 | 3rd-Generation Cincy Fencer | 27 | Trust | Hyper-local proof in one phrase. “Cincy” reads more local than “Cincinnati” (locals shorten it). |
| H3 | Built For Cincinnati Weather | 28 | Differentiator | Local-specific claim, not generic. Implies they’ve solved a problem out-of-town crews don’t know. |
| H4 | Trusted By 500+ Neighbors | 25 | Trust (proof) | Neighbor framing, not “customers”. More intimate, more local. |
| H5 | Family-Owned Since 1987 | 23 | Trust | Specific year > vague “decades”. |
| H6 | Top-Rated Cincinnati Fencer | 27 | Trust (ranking) | Local + ranking signal. |
| H7 | Your Neighbor Picked Us | 23 | Social proof | Implies the searcher’s actual neighbor already chose. 30-char-tight version of social proof. |
| H8 | Local Crew, Local Reputation | 28 | Differentiator | Repetition of LOCAL for emphasis. The pattern is the point. |
| H9 | See Cincy Installs This Week | 28 | CTA | Drives clicks to recent local work. “This week” adds freshness. |
| H10 | Real Local Crew, Real Results | 29 | Differentiator | Anti-corporate framing. The word “real” earns its weight because the alternative (national franchises) is the unspoken comparison. |
| H11 | Free On-Site Walk-Through | 25 | CTA | ”Walk-through” reads better than “free quote” (which has gone dead). Named deliverable beats named transaction. |
| H12 | Cincy Homeowner Favorite | 24 | Trust | Local nickname + ranking. |
| H13 | Talk To The Local Owner | 23 | Differentiator | Owner-accessible, not “rep” or “agent”. Implies a smaller, more accountable business. |
| H14 | Cincinnati Fences For 35 Years | 30 | Trust | Years in the local market. Right at the 30-char ceiling. |
The copy principles that ran through every headline above:
- Customer-perspective, not company-centric. “Your Neighbor Picked Us” beats “We Have Many Satisfied Customers.” The subject is them, not us.
- Specific and tangible. “500+ Neighbors”, “Since 1987”, “4 Feet Deep” beat “many”, “decades”, and “deep posts”. If you can’t visualize it, it’s too vague.
- Action-oriented. “See Cincy Installs This Week” and “Talk To The Local Owner” both push the searcher toward a next move.
- Emotional match. “Local Crew, Local Reputation” hits the local-pride emotion the searcher already feels typing “near me”.
Now the descriptions for RSA #1. Each one uses a different structural shape (D1-D4 are always 4 different shapes, not 4 versions of the same one).
D1, Problem-Agitator-Solution ([Problem]? [Pain]. [Solution]. [Implicit CTA].):
Out-of-town crew flake on you before? We're a Cincinnati crew. 3 generations local.
The problem is named, the implicit agitation lands (out-of-towners flake), and the solution is the contrast (local, generational). 81 chars.
D2, Direct Benefit & Offer ([Strongest Benefit]. [Specific Offer]. [CTA].):
Get a fence built by Cincinnati's top-recommended crew. Free walk-through this week.
Benefit + offer + soft urgency. 85 chars.
D3, Trust & Credibility ([Trust Signal]. [What you do]. [CTA].):
Trusted by 500+ Cincinnati homeowners since 1987. Family-owned. Real local reviews.
Number + year + ownership + proof source. 83 chars.
D4, Urgency / Speed ([Speed/availability]. [Service]. [CTA].):
Booking spring fence installs now. Cincinnati crew, real reviews. Call this week.
Time-bound + service + call. 81 chars.
That’s RSA #1: 15 headlines (H1 + 13 unpinned + H15) and 4 descriptions, all themed Local & Trusted.
Step 4: RSA #2, Professional Quality
Same H1 (Fence Company in Cincinnati), same H15 (Bedrock Fence). All 13 unpinned headlines and all 4 descriptions are NEW, and they all lean into QUALITY + CRAFTSMANSHIP. No copy-paste from RSA #1.
Unpinned headlines (H2-H14):
| # | Headline | Chars | Type |
|---|---|---|---|
| H2 | Posts Set 4 Feet Deep | 21 | Differentiator (specific) |
| H3 | Built To Outlast The House | 26 | Benefit (specific outcome) |
| H4 | Real Cedar, Real Vinyl | 22 | Differentiator (anti-cheap-materials) |
| H5 | No Leaning Posts, Ever | 22 | Benefit (problem solved) |
| H6 | 20+ Years Of Craftsmanship | 26 | Trust |
| H7 | Quality You Walk The Yard For | 29 | Differentiator |
| H8 | Built To Withstand Winters | 26 | Benefit (specific to climate) |
| H9 | See The Build Difference | 24 | CTA |
| H10 | Craftsmanship Over Speed | 24 | Differentiator (anti-rush) |
| H11 | Get A Quality Estimate | 22 | CTA |
| H12 | Pro-Grade Materials Only | 24 | Differentiator |
| H13 | We Don't Cut Corners | 20 | Differentiator |
| H14 | Built For The Next 30 Years | 27 | Benefit (lifespan) |
Descriptions:
D1 (Problem-Agitator-Solution, 87 chars):
Fence already leaning after one winter? We build them to outlast the house. Real cedar.
D2 (Direct Benefit & Offer, 87 chars):
Get a fence with 4-foot posts and real cedar. 20+ years craftsmanship. Quote in 24 hours.
D3 (Trust & Credibility, 84 chars):
Trusted by Cincinnati homeowners for 20+ years. Real cedar and vinyl. Built to last.
D4 (Urgency / Speed, 84 chars):
Booking quality builds for spring install. Real cedar, no shortcuts. Quote this week.
Notice: zero overlap with RSA #1’s descriptions. Same business, same H1, same H15, completely different argument.
Step 5: RSA #3, Transparent & Reliable
Same H1 (Fence Company in Cincinnati), same H15 (Bedrock Fence). New 13 unpinned headlines + 4 new descriptions, all leaning into TRANSPARENCY + RELIABILITY.
Unpinned headlines (H2-H14):
| # | Headline | Chars | Type |
|---|---|---|---|
| H2 | Itemized Quotes, Day One | 24 | Differentiator |
| H3 | No Surprise Fees Ever | 21 | Benefit (anti-gotcha) |
| H4 | What We Quote, You Pay | 22 | Benefit (specific promise) |
| H5 | Show Up When We Say | 19 | Trust (reliability) |
| H6 | Honest Pricing, Honest Crew | 27 | Trust |
| H7 | Get An Itemized Quote Free | 26 | CTA |
| H8 | No Hidden Fees Guaranteed | 25 | Risk reversal |
| H9 | Real Cost Before We Start | 25 | Differentiator |
| H10 | We Don't Play Pricing Games | 27 | Differentiator (anti-industry) |
| H11 | Quote In Writing, Always | 24 | Trust |
| H12 | Transparent From Day One | 24 | Differentiator |
| H13 | Get A Real Quote Today | 22 | CTA |
| H14 | Same-Day Quote, No Pressure | 27 | Speed + anti-pressure |
Descriptions:
D1 (Problem-Agitator-Solution, 89 chars):
Tired of contractors changing the price on install day? We itemize day one. No surprises.
D2 (Direct Benefit & Offer, 84 chars):
Get an itemized quote upfront. What we quote is what you pay. Honest Cincinnati crew.
D3 (Trust & Credibility, 86 chars):
Cincinnati crew with itemized quotes, no hidden fees. 500+ honest reviews. Free quote.
D4 (Urgency / Speed, 76 chars):
Get a same-day itemized quote. No sales pressure, no hidden fees. Call today.
That’s the full ad group. 45 headlines (2 shared pins + 39 unique unpinned + 4 not counted because H1 and H15 each count once shared across the 3). 12 unique descriptions. Google now has 3 real psychologically distinct RSAs to rotate, and a deep pool inside each one.
Common mistakes
The half-built ad. Filling 8 headlines and 2 descriptions, hitting save, and then blaming Google when nothing converts. The pool IS the strategy. If the pool is half empty, the strategy doesn’t run. Fill every slot, every time.
Three RSAs that are the same angle in different wrapping. “Fast Service”, “Quick Repairs”, and “Same-Day Available” are NOT three themes. They’re one theme written three times. Google can’t learn from three flavors of one angle. Themes have to be psychologically distinct or there’s nothing to test.
Copy-pasting unpinned headlines between RSAs. “Free Estimate” sitting in all three RSAs is a wasted slot two times over. H2 through H14 must be unique to each RSA. 39 unique unpinned headlines per ad group. No shortcuts here.
Going over 30 characters on headlines. Google truncates. The headline shows as “Professional Fence Install…” with the punch cut off. Count every character. If it’s over, rewrite.
Going under 70 characters on descriptions. You have 90. USE them. A 42-character description gives up half the slot. Pack it.
Writing all 4 descriptions in the same shape. If D1, D2, D3, and D4 all open with the same construction or close with “Call now.”, they look like one description shown twice when Google rotates two of them together. Use the 4 different shapes (Problem-Agitator-Solution / Direct Benefit & Offer / Trust & Credibility / Urgency-Speed), one per slot.
“Near You” headlines. Cardinal sin. When the ad group is “Fence Company Near Me”, the right H1 is a location (“Fence Company in Cincinnati”) or a benefit (“Built-To-Last Fence Install”). Never “Fence Company Near You”. It reads cheap, lowers Quality Score, and signals low-trust.
Company-centric copy. “We Offer Professional Installation” is about us. “Get Professional Installation Today” is about them. Same idea, different perspective. The customer perspective wins every time on click-through. Rewrite anything that opens with “We” unless it’s a deliberate trust beat (“We Don’t Cut Corners”).
Vague claims. “Quality Service” and “Great Workmanship” are invisible because every contractor on the page says them. “Posts Set 4-Foot Deep” is visible because it’s specific. If you can’t measure it or visualize it, rewrite it.
Wrong pinning. H1 unpinned means Google might bury your keyword-intent headline at position 3. H15 unpinned means your business name might not show in the served ad. Always pin H1 to position 1, H15 to position 3. The only two pins per RSA.

