🔥 Bright Side Plumbing
Google Search Campaign Playbook
The complete, click-by-click blueprint for building and optimizing Google Search campaigns that drive $6M in annual revenue for Bright Side Plumbing in the Kansas City metro.
🎯 1. Campaign Architecture Overview
Every campaign in this playbook follows one rule: one service category = one campaign. This gives you granular budget control, clean reporting, and the ability to pause or scale any service independently.
🚀 The Campaign Structure
| Campaign Name | Priority | Daily Budget | Monthly Budget | Bid Strategy |
|---|---|---|---|---|
BSP | Search | Sewer Repair |
🔴 P1 | $350 | $10,500 | Max Conversions (tCPA $250) |
BSP | Search | Sewer Replacement |
🔴 P1 | $200 | $6,000 | Max Conversions (tCPA $275) |
BSP | Search | Water Heater |
🟠 P2 | $150 | $4,500 | Max Conversions (tCPA $200) |
BSP | Search | Drain Cleaning |
🟠 P2 | $115 | $3,450 | Max Conversions (tCPA $150) |
BSP | Search | Gas Line |
🔵 P3 | $80 | $2,400 | Manual CPC (enhanced) |
BSP | Search | Emergency 24-7 |
🔴 P1 | $165 | $4,950 | Max Conversions (tCPA $225) |
BSP | Search | Branded |
🟩 P4 | $25 | $750 | Manual CPC ($1.50 max) |
| TOTAL | $1,085 | $32,550 | ||
| Remaining $2,450/mo reserved for seasonal surges, new campaign tests, and Performance Max experiments. | ||||
| New RSA Headlines | Framework Element |
|---|---|
| Catch Problems Early, Save Thousands | "Saving money" framing |
| Repair vs Replace? Free Camera Inspection | Diagnostic positioning |
| 3 Options. Honest Advice. You Decide. | Three intelligent options |
| Repair vs Trenchless vs Traditional: Compare | Comparison angle |
| We Show All Options. You Decide What Fits. | Customer empowerment |
"Free sewer camera inspection shows the real problem. We diagnose, educate, and present three honest options: repair, trenchless, or full replacement. No pressure, no upselling. 5th-generation master plumber. You choose what fits your budget."
Sewer repair and sewer replacement are 60%+ of revenue. They get 50% of the budget. Emergency campaigns capture high-intent, same-day buyers (Emergency Eric persona). Branded defense costs pennies but protects against competitor conquest ads.
🏷️ Naming Conventions
Every object in the account follows this naming pattern so anyone can understand what it does at a glance:
| Object | Pattern | Example |
|---|---|---|
| Campaign | BSP | [Network] | [Service] | BSP | Search | Sewer Repair |
| Ad Group | [Intent Cluster] | [Match Type] | Sewer Line Repair | Phrase |
| Ad | [Service] RSA v[#] | Sewer Repair RSA v2 |
| Sitelink | SL | [Destination] | SL | Free Estimate |
| Negative List | NEG | [Scope] | NEG | Shared | DIY Terms |
📝 How to Create a Campaign (Click-by-Click)
Go to ads.google.com. Make sure the account selector in the top bar shows 7269555791 (Bright Side Plumbing). If you see MCC 8449092450, click the account name and select the BSP sub-account.
In the left sidebar, click Campaigns (the megaphone icon).
Click the blue + New campaign button at the top left.
Select campaign objective: Leads. Then check the conversion goals: "Phone calls" and "Submit lead form" should both be checked. Click Continue.
Select campaign type: Search. Click Continue.
Name the campaign using the naming convention above (e.g., BSP | Search | Sewer Repair).
Under Bidding, select "Conversions" as the focus. Check "Set a target cost per action" and enter the tCPA from the architecture table above. Click Next.
Under Campaign settings: Networks, UNCHECK both "Include Google search partners" and "Include Google Display Network". We want Search only.
Under Locations, click "Enter another location" and add these zip codes/cities: Overland Park, KS; Olathe, KS; Lenexa, KS; Shawnee, KS; Prairie Village, KS; Leawood, KS; Mission, KS; Merriam, KS; Kansas City, MO (south metro). Set targeting to "Presence: People in or regularly in your targeted locations" (NOT "Presence or interest").
Under Languages, select English.
Under Budget, enter the daily budget from the architecture table.
Click Next to proceed to ad group creation. Follow the campaign-specific sections below for keywords and ads.
Always select "Presence: People IN or regularly in your targeted locations." The default "Presence or interest" will show your ads to people in Dallas who googled "Overland Park plumber" out of curiosity. That burns budget on leads you can never service.
🚨 2. Sewer Repair Campaign #1 REVENUE DRIVER
This is the crown jewel. Sewer repair jobs average $3,000 to $15,000+ per ticket. A single closed sewer repair lead can pay for an entire month of ad spend. Every dollar, keyword, and ad in this campaign must be optimized ruthlessly.
🔑 Ad Group 1: Sewer Line Repair | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"sewer line repair" | Phrase | $18-35 | 🔴 High |
"sewer repair near me" | Phrase | $22-40 | 🔴 High |
"sewer line repair cost" | Phrase | $15-28 | 🟠 Medium |
"sewer pipe repair" | Phrase | $16-30 | 🔴 High |
"sewer repair overland park" | Phrase | $20-38 | 🔴 High |
"sewer repair kansas city" | Phrase | $20-38 | 🔴 High |
"sewer repair olathe" | Phrase | $18-32 | 🔴 High |
"sewer repair lenexa" | Phrase | $16-30 | 🔴 High |
"sewer line fix" | Phrase | $14-25 | 🔴 High |
"broken sewer line repair" | Phrase | $18-35 | 🔴 High |
🔑 Ad Group 2: Sewer Line Repair | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[sewer line repair] | Exact | $20-38 | 🔴 High |
[sewer repair near me] | Exact | $25-45 | 🔴 High |
[sewer repair overland park] | Exact | $22-40 | 🔴 High |
[sewer pipe repair near me] | Exact | $22-38 | 🔴 High |
[sewer line repair cost] | Exact | $16-30 | 🟠 Medium |
[emergency sewer repair] | Exact | $28-50 | 🔴 High |
[sewer repair kansas city] | Exact | $22-42 | 🔴 High |
🔑 Ad Group 3: Sewer Camera / Inspection | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"sewer camera inspection" | Phrase | $12-22 | 🟠 Medium |
"sewer scope inspection" | Phrase | $10-20 | 🟠 Medium |
"sewer line inspection near me" | Phrase | $14-25 | 🔴 High |
"sewer video inspection" | Phrase | $10-18 | 🟠 Medium |
"sewer camera inspection cost" | Phrase | $8-16 | 🟠 Medium |
Camera inspections are the gateway to $3K-$15K repair jobs. A homeowner who books a $200 camera inspection often discovers they need a full sewer line repair. These keywords have lower CPCs but convert to high-ticket jobs at 30-40%.
🔑 Ad Group 4: Trenchless / No-Dig Repair | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"trenchless sewer repair" | Phrase | $15-30 | 🔴 High |
"trenchless sewer repair near me" | Phrase | $18-35 | 🔴 High |
"no dig sewer repair" | Phrase | $14-28 | 🔴 High |
"pipe lining sewer repair" | Phrase | $12-25 | 🔴 High |
"trenchless pipe repair cost" | Phrase | $12-22 | 🟠 Medium |
"cured in place pipe repair" | Phrase | $10-20 | 🔴 High |
📝 How to Add These Keywords (Click-by-Click)
Open the BSP | Search | Sewer Repair campaign. Click Ad groups in the left panel.
Click the blue + button to create a new ad group. Name it Sewer Line Repair | Phrase.
In the keywords box, paste ALL phrase match keywords from Ad Group 1 above, each on its own line, with quotes around each one (the quotes tell Google it is phrase match).
Click Save and continue. Repeat for each ad group (Exact Match, Camera/Inspection, Trenchless).
For exact match keywords, use square brackets: [sewer line repair]. Google interprets brackets as exact match.
Broad match keywords (no brackets, no quotes) will match to wildly irrelevant searches. BSP just had 9 broad match negatives that were blocking high-value money searches. Only use phrase match (quotes) and exact match (brackets).
📄 Sewer Repair RSA: Full Ad Copy (15 Headlines + 4 Descriptions)
All 15 Headlines (max 30 characters each)
| # | Headline | Chars | Pin Position |
|---|---|---|---|
| H1 | Overland Park Sewer Repair | 26 | Pin to Position 1 |
| H2 | 5th-Gen Master Plumber | 22 | Pin to Position 2 |
| H3 | Call (913) 270-1194 Now | 23 | Pin to Position 3 |
| H4 | Sewer Line Repair Experts | 25 | None |
| H5 | 4.9 Stars, 384+ Reviews | 24 | None |
| H6 | Trenchless Sewer Repair | 23 | None |
| H7 | Free Camera Inspection | 22 | None |
| H8 | Same-Day Sewer Service | 22 | None |
| H9 | KC Metro Sewer Experts | 22 | None |
| H10 | Financing Available | 19 | None |
| H11 | No Dig Sewer Solutions | 22 | None |
| H12 | Licensed & Insured | 18 | None |
| H13 | Trusted Since Generations | 25 | None |
| H14 | {KeyWord:Sewer Repair} | DKI | None |
| H15 | Get Your Free Estimate | 22 | None |
All 4 Descriptions (max 90 characters each)
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Bright Side Plumbing fixes sewer lines fast. 4.9 stars. Trenchless options. Call today! | 87 | Pin to Pos 1 |
| D2 | 5th-generation master plumber. Camera inspections, trenchless repair, full replacements. | 89 | None |
| D3 | Overland Park's trusted sewer experts. 384+ five-star reviews. Financing available. | 83 | None |
| D4 | Same-day sewer repair in KC metro. Free estimates. Licensed, insured, family-owned. | 83 | None |
📝 How to Create This RSA (Click-by-Click)
Inside the Sewer Line Repair | Phrase ad group, click Ads in the left panel, then click the blue + button and select Responsive search ad.
In Final URL, enter: https://callbrightside.com/sewer-repair/
In Display path, enter: Path 1 = sewer, Path 2 = repair
Enter all 15 headlines from the table above, one per field. To pin a headline: click the pin icon (📌) next to the headline field, then select the position number.
Enter all 4 descriptions from the table above. Pin D1 to Position 1.
Check the Ad strength indicator on the right side. It should show "Good" or "Excellent." If it shows "Average" or below, add more unique headlines with different themes (price, trust, speed, location).
Click Save.
Headline H14 uses
{KeyWord:Sewer Repair}. This automatically inserts the user's search query into the headline when it fits within 30 characters. If the query is too long, it falls back to "Sewer Repair." This boosts relevance and click-through rate.
🎯 Landing Page
URL: https://callbrightside.com/sewer-repair/
This page must include: phone number in hero, ServiceTitan booking widget, trust badges (4.9 stars, 394+ reviews, 5th-generation), before/after photos, FAQ section with schema markup, and a clear CTA above the fold.
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL (Cost Per Lead) | $200-$250 | $150-$300 |
| CTR (Click-Through Rate) | 5-8% | 3-10% |
| Conversion Rate | 8-12% | 5-15% |
| Avg CPC | $18-30 | $12-45 |
| Close Rate (lead to job) | 30-40% | 25-50% |
| ROAS | 10:1 to 30:1 | 5:1+ |
🚧 3. Sewer Replacement Campaign P1 HIGH-TICKET
Sewer replacement is the highest-ticket service Bright Side offers. Full line replacements run $8,000 to $25,000+. These searchers are past the "maybe I can fix it myself" stage. They know they need professional help and are comparing providers.
🔑 Ad Group 1: Sewer Replacement | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"sewer line replacement" | Phrase | $20-40 | 🔴 High |
"sewer replacement near me" | Phrase | $22-42 | 🔴 High |
"sewer line replacement cost" | Phrase | $18-35 | 🔴 High |
"sewer pipe replacement" | Phrase | $18-35 | 🔴 High |
"main sewer line replacement" | Phrase | $20-38 | 🔴 High |
"sewer replacement overland park" | Phrase | $18-36 | 🔴 High |
"sewer replacement kansas city" | Phrase | $20-40 | 🔴 High |
"replace sewer line" | Phrase | $18-34 | 🔴 High |
"collapsed sewer line" | Phrase | $16-30 | 🔴 High |
"broken sewer pipe replacement" | Phrase | $18-32 | 🔴 High |
🔑 Ad Group 2: Sewer Replacement | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[sewer line replacement] | Exact | $22-44 | 🔴 High |
[sewer replacement near me] | Exact | $25-48 | 🔴 High |
[sewer line replacement cost] | Exact | $20-38 | 🔴 High |
[sewer replacement overland park] | Exact | $20-40 | 🔴 High |
[main sewer line replacement] | Exact | $22-42 | 🔴 High |
[sewer replacement kansas city] | Exact | $22-44 | 🔴 High |
🔑 Ad Group 3: Trenchless Replacement | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"trenchless sewer replacement" | Phrase | $16-32 | 🔴 High |
"trenchless sewer line replacement" | Phrase | $16-30 | 🔴 High |
"no dig sewer replacement" | Phrase | $14-28 | 🔴 High |
"pipe bursting sewer replacement" | Phrase | $12-25 | 🔴 High |
"trenchless pipe replacement near me" | Phrase | $16-32 | 🔴 High |
📄 Sewer Replacement RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | Sewer Line Replacement | 22 | Pin Pos 1 |
| H2 | 5th-Gen Master Plumber | 22 | Pin Pos 2 |
| H3 | Get a Free Quote Today | 22 | Pin Pos 3 |
| H4 | Overland Park Sewer Pros | 24 | None |
| H5 | 4.9 Stars, 384+ Reviews | 24 | None |
| H6 | Trenchless Options Available | 28 | None |
| H7 | Save Your Yard, Fix Sewer | 25 | None |
| H8 | Financing Plans Available | 25 | None |
| H9 | Full Sewer Replacement | 22 | None |
| H10 | KC Metro Sewer Experts | 22 | None |
| H11 | Licensed & Insured Team | 23 | None |
| H12 | Call (913) 270-1194 | 20 | None |
| H13 | Camera Inspection Included | 27 | None |
| H14 | {KeyWord:Sewer Replace} | DKI | None |
| H15 | Family-Owned Since Gen 1 | 24 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Complete sewer line replacement by Overland Park's top-rated plumber. 4.9 stars. Call now! | 90 | Pin Pos 1 |
| D2 | Trenchless sewer replacement saves your yard. 5th-generation expertise. Free estimates. | 87 | None |
| D3 | 384+ five-star reviews. Full sewer replacement with financing options. Licensed and insured. | 90 | None |
| D4 | From camera inspection to full replacement. Bright Side handles it all. Schedule today. | 87 | None |
🎯 Landing Page
URL: https://callbrightside.com/sewer-replacement/
If this page does not exist yet, use https://callbrightside.com/sewer-repair/ as a temporary landing page and create a dedicated replacement page as a priority.
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL | $225-$275 | $175-$350 |
| CTR | 4-7% | 3-9% |
| Conversion Rate | 6-10% | 4-12% |
| Avg CPC | $20-35 | $15-50 |
| ROAS | 15:1 to 40:1 | 8:1+ |
🌡️ 4. Water Heater Campaign P2
Water heater replacements and repairs are steady, year-round revenue. Replacements average $2,000 to $5,000. Emergency "no hot water" calls are high-urgency and convert fast. Tankless upgrades are premium upsell opportunities.
🔑 Ad Group 1: Water Heater Repair | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"water heater repair" | Phrase | $14-28 | 🔴 High |
"water heater repair near me" | Phrase | $16-32 | 🔴 High |
"hot water heater repair" | Phrase | $14-28 | 🔴 High |
"water heater not working" | Phrase | $10-22 | 🔴 High |
"no hot water" | Phrase | $8-18 | 🔴 High |
"water heater leaking" | Phrase | $10-22 | 🔴 High |
"water heater repair overland park" | Phrase | $14-28 | 🔴 High |
🔑 Ad Group 2: Water Heater Replacement | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"water heater replacement" | Phrase | $15-30 | 🔴 High |
"water heater replacement near me" | Phrase | $18-35 | 🔴 High |
"water heater installation" | Phrase | $14-28 | 🔴 High |
"new water heater cost" | Phrase | $10-22 | 🟠 Medium |
"water heater replacement cost" | Phrase | $12-25 | 🟠 Medium |
"replace water heater" | Phrase | $14-28 | 🔴 High |
"50 gallon water heater install" | Phrase | $10-20 | 🔴 High |
🔑 Ad Group 3: Tankless Water Heater | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"tankless water heater" | Phrase | $12-25 | 🟠 Medium |
"tankless water heater installation" | Phrase | $14-28 | 🔴 High |
"tankless water heater cost" | Phrase | $10-22 | 🟠 Medium |
"tankless water heater near me" | Phrase | $14-28 | 🔴 High |
"on demand water heater" | Phrase | $8-18 | 🟠 Medium |
🔑 Ad Group 4: Water Heater | Exact Match (Top Performers)
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[water heater repair near me] | Exact | $18-35 | 🔴 High |
[water heater replacement near me] | Exact | $20-38 | 🔴 High |
[water heater installation overland park] | Exact | $16-30 | 🔴 High |
[tankless water heater installation] | Exact | $16-30 | 🔴 High |
[no hot water] | Exact | $10-20 | 🔴 High |
📄 Water Heater RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | Water Heater Repair Pros | 24 | Pin Pos 1 |
| H2 | 4.9 Stars in Overland Park | 26 | Pin Pos 2 |
| H3 | Call (913) 270-1194 | 20 | Pin Pos 3 |
| H4 | Same-Day Water Heater Fix | 25 | None |
| H5 | Tankless Upgrades Available | 27 | None |
| H6 | No Hot Water? We Can Help | 24 | None |
| H7 | 384+ Five-Star Reviews | 23 | None |
| H8 | 5th-Gen Master Plumber | 22 | None |
| H9 | Water Heater Replacement | 24 | None |
| H10 | Financing Options Available | 27 | None |
| H11 | Licensed & Insured | 18 | None |
| H12 | Fast, Reliable Service | 22 | None |
| H13 | Free Installation Estimate | 26 | None |
| H14 | {KeyWord:Water Heater} | DKI | None |
| H15 | KC Metro Plumbing Experts | 25 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Same-day water heater repair and replacement. 4.9 stars, 394+ reviews. Call Bright Side! | 88 | Pin Pos 1 |
| D2 | Tankless and traditional water heater experts. 5th-generation master plumber. Free quotes. | 90 | None |
| D3 | No hot water? We fix it today. Overland Park's trusted plumber. Financing available. | 83 | None |
| D4 | Licensed, insured, family-owned. Water heater install and repair across KC metro. | 82 | None |
🎯 Landing Page
URL: https://callbrightside.com/water-heaters/
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL | $150-$200 | $100-$250 |
| CTR | 5-9% | 3-11% |
| Conversion Rate | 8-14% | 5-18% |
| Avg CPC | $14-25 | $8-35 |
| ROAS | 8:1 to 15:1 | 5:1+ |
🪝 5. Drain Cleaning Campaign P2
Drain cleaning is the highest-volume, lowest-ticket service. Individual jobs run $150 to $500, but it is a critical entry point. Maintenance Mike persona books drain cleaning first, then becomes a lifetime customer worth $5K to $25K in LTV. Think of drain cleaning as the top of the customer acquisition funnel.
🔑 Ad Group 1: Drain Cleaning | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"drain cleaning" | Phrase | $10-22 | 🔴 High |
"drain cleaning near me" | Phrase | $12-25 | 🔴 High |
"drain cleaning service" | Phrase | $10-22 | 🔴 High |
"clogged drain plumber" | Phrase | $10-20 | 🔴 High |
"drain cleaning overland park" | Phrase | $10-22 | 🔴 High |
"drain cleaning kansas city" | Phrase | $10-22 | 🔴 High |
"drain cleaner plumber" | Phrase | $8-18 | 🔴 High |
"professional drain cleaning" | Phrase | $10-20 | 🔴 High |
🔑 Ad Group 2: Clogged Drain / Slow Drain | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"clogged drain" | Phrase | $8-18 | 🔴 High |
"clogged toilet plumber" | Phrase | $8-16 | 🔴 High |
"slow drain fix" | Phrase | $6-14 | 🔴 High |
"backed up drain" | Phrase | $8-18 | 🔴 High |
"kitchen drain clogged" | Phrase | $6-14 | 🔴 High |
"bathroom drain clogged" | Phrase | $6-14 | 🔴 High |
"shower drain clogged" | Phrase | $6-14 | 🔴 High |
🔑 Ad Group 3: Hydro Jetting | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"hydro jetting" | Phrase | $10-22 | 🔴 High |
"hydro jetting near me" | Phrase | $12-25 | 🔴 High |
"hydro jetting drain cleaning" | Phrase | $10-22 | 🔴 High |
"hydro jetting cost" | Phrase | $8-18 | 🟠 Medium |
"sewer jetting service" | Phrase | $10-20 | 🔴 High |
🔑 Ad Group 4: Drain Cleaning | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[drain cleaning near me] | Exact | $14-28 | 🔴 High |
[drain cleaning overland park] | Exact | $12-25 | 🔴 High |
[clogged drain plumber near me] | Exact | $12-22 | 🔴 High |
[hydro jetting near me] | Exact | $14-28 | 🔴 High |
📄 Drain Cleaning RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | Drain Cleaning Experts | 22 | Pin Pos 1 |
| H2 | 4.9 Stars in Overland Park | 26 | Pin Pos 2 |
| H3 | Same-Day Drain Service | 22 | Pin Pos 3 |
| H4 | Clogged Drain? Call Us | 21 | None |
| H5 | Hydro Jetting Available | 23 | None |
| H6 | 384+ Five-Star Reviews | 23 | None |
| H7 | 5th-Gen Master Plumber | 22 | None |
| H8 | Call (913) 270-1194 | 20 | None |
| H9 | Fast, Professional Service | 26 | None |
| H10 | Camera Drain Inspection | 23 | None |
| H11 | Flat-Rate Drain Cleaning | 24 | None |
| H12 | Licensed & Insured | 18 | None |
| H13 | Kitchens, Baths & Sewers | 24 | None |
| H14 | {KeyWord:Drain Cleaning} | DKI | None |
| H15 | KC Metro Drain Pros | 19 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Clogged drain? Bright Side clears it fast. Same-day service, flat rates. Call today! | 84 | Pin Pos 1 |
| D2 | Hydro jetting, camera inspections, and expert drain cleaning. 4.9 stars, 394+ reviews. | 87 | None |
| D3 | Kitchen, bathroom, and sewer drains. 5th-generation plumber. Overland Park and KC metro. | 88 | None |
| D4 | Professional drain cleaning you can trust. Licensed, insured, family-owned since day one. | 88 | None |
🎯 Landing Page
URL: https://callbrightside.com/drain-cleaning/
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL | $100-$150 | $75-$200 |
| CTR | 6-10% | 4-12% |
| Conversion Rate | 10-16% | 6-20% |
| Avg CPC | $10-18 | $6-25 |
| ROAS (immediate) | 1:1 to 3:1 | 0.5:1+ |
| ROAS (LTV incl.) | 10:1 to 25:1 | 5:1+ |
Drain cleaning looks low-ROAS on a per-job basis ($150 job for $100 ad spend). But Maintenance Mike becomes a lifetime customer. ServiceTitan's GCLID attribution pipeline will eventually show that many of your highest-LTV customers entered through a drain cleaning ad. Track first-touch attribution, not just last-touch.
🔥 6. Gas Line Campaign P3
Gas line work is specialized, high-trust, and commands premium pricing ($1,500 to $8,000+). Search volume is lower than sewer or drain, but intent is extremely high. People searching for gas line repair have an urgent safety concern and will book immediately with a trusted provider.
🔑 Ad Group 1: Gas Line Repair | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"gas line repair" | Phrase | $12-25 | 🔴 High |
"gas line repair near me" | Phrase | $14-28 | 🔴 High |
"gas pipe repair" | Phrase | $10-22 | 🔴 High |
"gas leak repair" | Phrase | $14-28 | 🔴 High |
"gas line repair overland park" | Phrase | $12-25 | 🔴 High |
"natural gas line repair" | Phrase | $10-22 | 🔴 High |
🔑 Ad Group 2: Gas Line Installation | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"gas line installation" | Phrase | $12-25 | 🔴 High |
"gas line installation near me" | Phrase | $14-28 | 🔴 High |
"gas line for stove" | Phrase | $8-18 | 🔴 High |
"gas line for grill" | Phrase | $8-16 | 🟠 Medium |
"gas line for fire pit" | Phrase | $8-16 | 🟠 Medium |
"gas line for dryer" | Phrase | $8-16 | 🔴 High |
"run gas line to kitchen" | Phrase | $8-18 | 🔴 High |
"gas line plumber" | Phrase | $10-22 | 🔴 High |
🔑 Ad Group 3: Gas Line | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[gas line repair near me] | Exact | $16-30 | 🔴 High |
[gas line installation near me] | Exact | $16-30 | 🔴 High |
[gas leak repair near me] | Exact | $16-32 | 🔴 High |
[gas line plumber overland park] | Exact | $14-28 | 🔴 High |
📄 Gas Line RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | Gas Line Repair & Install | 24 | Pin Pos 1 |
| H2 | Licensed Gas Line Pros | 22 | Pin Pos 2 |
| H3 | Call (913) 270-1194 | 20 | Pin Pos 3 |
| H4 | Gas Leak? Call Now | 17 | None |
| H5 | 4.9 Stars, 384+ Reviews | 24 | None |
| H6 | Gas Line for Your Stove | 23 | None |
| H7 | Gas Line for Grill/Fire | 23 | None |
| H8 | 5th-Gen Master Plumber | 22 | None |
| H9 | Overland Park Gas Experts | 25 | None |
| H10 | Safe, Code-Compliant Work | 24 | None |
| H11 | Free Gas Line Estimates | 22 | None |
| H12 | Same-Day Availability | 21 | None |
| H13 | Family-Owned, Trusted | 21 | None |
| H14 | {KeyWord:Gas Line} | DKI | None |
| H15 | KC Metro Gas Line Service | 25 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Licensed gas line repair and installation. Bright Side Plumbing. 4.9 stars. Call today! | 87 | Pin Pos 1 |
| D2 | New gas lines for stoves, grills, fire pits, and dryers. 5th-generation master plumber. | 87 | None |
| D3 | Gas leak detection and repair. Safe, code-compliant work. 384+ five-star reviews. | 81 | None |
| D4 | Overland Park's trusted gas line experts. Free estimates. Licensed, insured, reliable. | 86 | None |
🎯 Landing Page
URL: https://callbrightside.com/gas-lines/
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL | $175-$250 | $125-$300 |
| CTR | 5-9% | 3-11% |
| Conversion Rate | 8-14% | 5-18% |
| Avg CPC | $10-20 | $8-30 |
| ROAS | 5:1 to 15:1 | 3:1+ |
Gas line campaigns have lower conversion volume (fewer searches). Automated bidding strategies like Maximize Conversions need 30+ conversions per month to learn effectively. Until this campaign hits that threshold, use Manual CPC with Enhanced CPC enabled. Set max CPC at $25 and adjust based on performance after 2 weeks.
🚨 7. Emergency / 24-7 Campaign P1 URGENT BUYERS
Emergency Eric is 50-60% of revenue. He has a flooded basement, a burst pipe, or a sewage backup at 11 PM. He is searching on his phone, in panic mode, and will call the first plumber who answers. This campaign captures the highest-urgency, highest-value searches in the entire account.
🔑 Ad Group 1: Emergency Plumber | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"emergency plumber" | Phrase | $20-45 | 🔴 Urgent |
"emergency plumber near me" | Phrase | $25-50 | 🔴 Urgent |
"24 hour plumber" | Phrase | $18-40 | 🔴 Urgent |
"24 hour plumber near me" | Phrase | $22-45 | 🔴 Urgent |
"emergency plumber overland park" | Phrase | $20-42 | 🔴 Urgent |
"emergency plumbing service" | Phrase | $18-38 | 🔴 Urgent |
"plumber open now" | Phrase | $16-35 | 🔴 Urgent |
"after hours plumber" | Phrase | $16-35 | 🔴 Urgent |
🔑 Ad Group 2: Emergency Situations | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"burst pipe plumber" | Phrase | $16-35 | 🔴 Urgent |
"pipe burst repair" | Phrase | $14-30 | 🔴 Urgent |
"sewage backup" | Phrase | $14-28 | 🔴 Urgent |
"sewage backup in house" | Phrase | $14-28 | 🔴 Urgent |
"flooded basement plumber" | Phrase | $14-30 | 🔴 Urgent |
"water leak emergency" | Phrase | $14-30 | 🔴 Urgent |
"broken pipe repair" | Phrase | $12-25 | 🔴 Urgent |
"toilet overflowing plumber" | Phrase | $10-22 | 🔴 Urgent |
"sewer backup in basement" | Phrase | $14-28 | 🔴 Urgent |
🔑 Ad Group 3: Emergency | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[emergency plumber near me] | Exact | $28-55 | 🔴 Urgent |
[24 hour plumber near me] | Exact | $25-50 | 🔴 Urgent |
[emergency plumber overland park] | Exact | $22-48 | 🔴 Urgent |
[plumber open now near me] | Exact | $20-42 | 🔴 Urgent |
[sewage backup plumber] | Exact | $16-35 | 🔴 Urgent |
📄 Emergency RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | 24/7 Emergency Plumber | 22 | Pin Pos 1 |
| H2 | We Answer Day & Night | 21 | Pin Pos 2 |
| H3 | Call (913) 270-1194 Now | 23 | Pin Pos 3 |
| H4 | Burst Pipe? Call Us Now | 22 | None |
| H5 | 4.9 Stars, 384+ Reviews | 24 | None |
| H6 | Sewage Backup Experts | 21 | None |
| H7 | Overland Park Emergency | 23 | None |
| H8 | Fast Response, Any Hour | 22 | None |
| H9 | 5th-Gen Master Plumber | 22 | None |
| H10 | Flooded Basement? Call | 22 | None |
| H11 | Licensed & Insured 24/7 | 23 | None |
| H12 | Same-Hour Dispatch | 18 | None |
| H13 | We Are on Our Way | 18 | None |
| H14 | {KeyWord:Emergency Plumber} | DKI | None |
| H15 | KC Metro, 24/7 Service | 22 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | 24/7 emergency plumbing. Burst pipes, sewage backups, floods. Call Bright Side right now! | 88 | Pin Pos 1 |
| D2 | We answer day and night. 4.9 stars, 394+ reviews. Overland Park's trusted emergency plumber. | 90 | None |
| D3 | Fast response, any hour. 5th-generation master plumber. Licensed, insured, ready to go. | 87 | None |
| D4 | Plumbing emergency? Do not wait. Bright Side dispatches immediately across KC metro. | 83 | None |
⏱️ Ad Scheduling (Critical for Emergency)
Open the BSP | Search | Emergency 24-7 campaign. Click Ad schedule in the left panel.
Click the blue pencil icon (✎️) to edit. Add all 7 days of the week, each set to All day (12:00 AM to 12:00 AM).
After saving, click on each day to set bid adjustments:
• Mon-Fri, 7 AM to 9 PM: +0% (standard bids)
• Mon-Fri, 9 PM to 7 AM: +30% (night emergencies, less competition, higher conversion rate)
• Sat-Sun, all day: +20% (weekend emergencies, offices closed, higher urgency)
Click Save. Verify by clicking Ad schedule again and confirming all 7 days show with the correct bid adjustments.
🎯 Landing Page
URL: https://callbrightside.com/emergency-plumbing/
If this page does not exist, create it as a priority. The emergency landing page must have: massive phone number, "Call Now" button, trust badges, "Available 24/7" prominently displayed, and a short list of emergency services (burst pipes, sewage backup, floods, gas leaks).
📈 Expected Performance
| Metric | Target | Acceptable Range |
|---|---|---|
| CPL | $175-$225 | $125-$300 |
| CTR | 6-10% | 4-12% |
| Conversion Rate | 10-18% | 6-22% |
| Avg CPC | $18-35 | $12-55 |
| ROAS | 8:1 to 25:1 | 5:1+ |
🏆 8. Branded Campaign P4 DEFENSE
The branded campaign protects your brand name from competitor conquest ads. When someone searches "Bright Side Plumbing," you want YOUR ad at the top, not a competitor's. Branded clicks cost pennies ($0.50 to $2.00) and convert at 30%+ because the searcher already knows your name.
🔑 Ad Group 1: Brand Terms | Exact Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
[bright side plumbing] | Exact | $0.50-1.50 | 🟢 Brand |
[bright side plumbing and heating] | Exact | $0.50-1.50 | 🟢 Brand |
[callbrightside] | Exact | $0.30-0.80 | 🟢 Brand |
[callbrightside.com] | Exact | $0.30-0.80 | 🟢 Brand |
[bright side plumbing overland park] | Exact | $0.50-1.50 | 🟢 Brand |
[bright side plumbing reviews] | Exact | $0.30-1.00 | 🟢 Brand |
[bright side plumbing phone number] | Exact | $0.30-0.80 | 🟢 Brand |
[kalen barker plumber] | Exact | $0.30-0.80 | 🟢 Brand |
🔑 Ad Group 2: Brand Terms | Phrase Match
| Keyword | Match Type | Est. CPC | Intent |
|---|---|---|---|
"bright side plumbing" | Phrase | $0.50-1.50 | 🟢 Brand |
"bright side plumber" | Phrase | $0.50-1.50 | 🟢 Brand |
"call bright side" | Phrase | $0.30-1.00 | 🟢 Brand |
📄 Branded RSA: Full Ad Copy
All 15 Headlines
| # | Headline | Chars | Pin |
|---|---|---|---|
| H1 | Bright Side Plumbing | 20 | Pin Pos 1 |
| H2 | Official Website | 16 | Pin Pos 2 |
| H3 | Call (913) 270-1194 | 20 | Pin Pos 3 |
| H4 | 4.9 Stars, 384+ Reviews | 24 | None |
| H5 | 5th-Gen Master Plumber | 22 | None |
| H6 | Sewer Repair Experts | 20 | None |
| H7 | Overland Park, KS | 18 | None |
| H8 | Book Online Today | 17 | None |
| H9 | Family-Owned Since Gen 1 | 24 | None |
| H10 | 24/7 Emergency Service | 22 | None |
| H11 | Free Estimates Available | 24 | None |
| H12 | Financing Options | 17 | None |
| H13 | Trusted KC Metro Plumber | 24 | None |
| H14 | Licensed & Insured | 18 | None |
| H15 | Schedule Service Now | 20 | None |
All 4 Descriptions
| # | Description | Chars | Pin |
|---|---|---|---|
| D1 | Bright Side Plumbing. Overland Park's top-rated plumber. Call or book online! | 89 | Pin Pos 1 |
| D2 | 5th-generation master plumber. Sewer repair, water heaters, drains, gas lines, and more. | 89 | None |
| D3 | 4.9 stars with 394+ reviews. 24/7 emergency service. Financing available. Call today! | 84 | None |
| D4 | Family-owned, community-trusted. Serving Overland Park, Olathe, Lenexa, and KC metro. | 87 | None |
🎯 Landing Page
URL: https://callbrightside.com/ (homepage)
You can bid on competitor brand names (e.g., "Mr. Rooter Overland Park," "Roto-Rooter Kansas City") in a separate ad group within this campaign. Use ONLY exact match. Your ad cannot include their brand name in the copy (that violates Google's trademark policy), but you can show your ad when someone searches for them. Set max CPC at $3.00. This is aggressive and may trigger competitor retaliation, so discuss with Kalen before launching.
🚫 9. Negative Keyword Strategy CRITICAL
Bright Side just discovered 9 BROAD MATCH negatives that were blocking high-value money searches. A broad match negative for "repair" would block "sewer repair near me." A broad match negative for "line" would block "sewer line replacement." This is a budget-killing mistake. All negatives must be PHRASE or EXACT match only. Never, ever add a broad match negative unless you fully understand its blast radius.
📄 Shared Negative Keyword Lists
Shared lists apply to multiple campaigns at once. Create these in Tools & Settings > Shared library > Negative keyword lists.
📝 How to Create a Shared Negative List (Click-by-Click)
In Google Ads, click the Tools icon (wrench, 🔧) in the top navigation bar.
Under Shared library, click Negative keyword lists.
Click the blue + button to create a new list.
Name the list using the naming convention (e.g., NEG | Shared | DIY Terms).
Add all keywords from the relevant list below. Use quotes for phrase match, brackets for exact match. Click Save.
After saving, click the list name, then click Apply to campaigns. Check ALL campaigns you want it to apply to, then click Apply.
List 1: NEG | Shared | DIY Terms (Apply to ALL campaigns)
"how to fix" "how to repair" "how to unclog" "how to replace" "how to install" "diy" "do it yourself" "tutorial" "youtube" "video how to" "step by step" "home depot" "lowes" "amazon" "walmart" "menards" "buy online" "parts for" "replacement parts"
List 2: NEG | Shared | Job Seekers (Apply to ALL campaigns)
"plumber jobs" "plumber salary" "plumber apprentice" "plumber training" "plumber school" "plumbing career" "plumber hiring" "plumber job openings" "plumbing certification" "plumber license" "plumber helper" "plumber resume" "plumber interview" "become a plumber"
List 3: NEG | Shared | Irrelevant Services (Apply to ALL campaigns)
"hvac" "air conditioning" "ac repair" "furnace repair" "heating repair" "electrical" "electrician" "roofing" "roofer" "landscaping" "painting" "carpet cleaning" "maid service" "pest control" "pool plumbing" "sprinkler system" "irrigation"
List 4: NEG | Shared | Non-Buyers (Apply to ALL campaigns)
"free" "cheap" "cheapest" "discount" "coupon" "groupon" "bargain" "lowest price" "complaint" "lawsuit" "scam" "rip off" "BBB complaint" "attorney" "lawyer"
List 5: NEG | Shared | Wrong Geography (Apply to ALL campaigns)
"denver" "dallas" "houston" "chicago" "los angeles" "new york" "phoenix" "atlanta" "san antonio" "st louis" "wichita" "topeka" "springfield mo" "columbia mo"
📄 Campaign-Level Negatives
These negatives are specific to individual campaigns to prevent cannibalization between campaigns.
Sewer Repair Campaign: Add These Negatives
"sewer replacement" "replace sewer" "sewer installation" "new sewer line"
Reason: Prevent sewer replacement searches from triggering sewer repair ads. The replacement campaign has its own dedicated ads and landing page.
Sewer Replacement Campaign: Add These Negatives
"sewer repair" "fix sewer" "sewer camera" "sewer inspection"
Drain Cleaning Campaign: Add These Negatives
"sewer" "water heater" "gas line" "pipe replacement"
Water Heater Campaign: Add These Negatives
"sewer" "drain cleaning" "gas line" "tankless conversion kit" "water heater blanket" "water heater timer"
Emergency Campaign: Add These Negatives
"non emergency" "routine" "scheduled" "annual maintenance" "plumber estimate"
📝 How to Add Campaign-Level Negatives (Click-by-Click)
Open the specific campaign (e.g., BSP | Search | Sewer Repair).
In the left panel, click Keywords, then click the Negative keywords tab at the top.
Click the blue + button, select Add negative keywords.
Select Add to campaign (not ad group). Paste the negatives from the relevant list above, each on its own line, with quotes around each one (phrase match).
Click Save.
Every Monday, go to each campaign, click Keywords > Search terms. Sort by cost (highest first). Look for any search query that is irrelevant, DIY-related, or outside your service area. Add it as a phrase match or exact match negative immediately. This is the single most impactful weekly optimization you can do.
🎲 10. Bid Strategy Deep Dive
Choosing the right bid strategy is one of the highest-leverage decisions in the account. The wrong strategy wastes thousands per month. Here is when to use each one, with exact settings.
🔸 Option 1: Manual CPC (with Enhanced CPC)
| Attribute | Detail |
|---|---|
| What it does | You set a max CPC bid for each keyword. Google can adjust your bid up or down by up to 100% based on likelihood of conversion (Enhanced CPC). |
| When to use | New campaigns with <30 conversions/month. Low-volume campaigns (Gas Line, Branded). When you want full control. |
| BSP campaigns | BSP | Search | Gas Line, BSP | Search | Branded |
| Exact settings | Go to campaign Settings > Bidding. Select "Manual CPC." Check "Help increase conversions with Enhanced CPC." Set default max CPC at the ad group level. |
| Recommended default bids | Gas Line: $15-20. Branded: $1.50. |
🟠 Option 2: Maximize Conversions
| Attribute | Detail |
|---|---|
| What it does | Google automatically sets bids to get the most conversions within your daily budget. No CPC cap. |
| When to use | Campaigns with 30+ conversions/month and stable conversion rates. When you want to maximize volume and your budget is the constraint. |
| BSP campaigns | Use as the transition strategy before adding a tCPA target. Start here for 2-4 weeks, then add a target CPA. |
| Exact settings | Campaign Settings > Bidding. Select "Conversions" as the focus. Leave "Set a target cost per action" UNCHECKED initially. |
| Danger | Without a tCPA cap, Google may spend your entire budget on expensive clicks. Monitor daily for the first 2 weeks. |
🔴 Option 3: Maximize Conversions with Target CPA (Recommended)
| Attribute | Detail |
|---|---|
| What it does | Google automatically sets bids to get the most conversions at or below your target cost per acquisition. |
| When to use | Campaigns with 30+ conversions/month and at least 2 weeks of conversion data. This is the ideal steady-state strategy for most campaigns. |
| BSP campaigns | BSP | Search | Sewer Repair (tCPA $250), BSP | Search | Sewer Replacement (tCPA $275), BSP | Search | Water Heater (tCPA $200), BSP | Search | Drain Cleaning (tCPA $150), BSP | Search | Emergency 24-7 (tCPA $225) |
| Exact settings | Campaign Settings > Bidding. Select "Conversions" as the focus. CHECK "Set a target cost per action." Enter the tCPA value from the architecture table. |
| How to set tCPA | Start at 120% of your actual average CPA for the first 2 weeks. Then gradually lower it by 10% every 2 weeks until performance degrades. The sweet spot is usually 10-20% above your actual CPA. |
🟢 Option 4: Target ROAS
| Attribute | Detail |
|---|---|
| What it does | Google automatically sets bids to maximize conversion value at your target return on ad spend. |
| When to use | Only when you have revenue values flowing back to Google Ads via offline conversion import (GCLID pipeline). Requires 50+ conversions with values per month. |
| BSP campaigns | Future state only. Once the GCLID attribution pipeline is flowing ServiceTitan revenue data back to Google Ads for 60+ days, switch Sewer Repair and Sewer Replacement to tROAS. |
| Exact settings | Campaign Settings > Bidding. Select "Conversion value" as the focus. CHECK "Set a target return on ad spend." Enter target ROAS (e.g., 1000% = 10:1 ROAS). |
| Target ROAS values | Sewer Repair: 1000% (10:1). Sewer Replacement: 1500% (15:1). Water Heater: 800% (8:1). |
📝 Bid Strategy Migration Path
Follow this exact sequence when launching a new campaign:
Week 1-2: Launch with Manual CPC + Enhanced CPC. Set aggressive default bids ($15-25 for sewer, $10-15 for drain). Goal: gather conversion data fast.
Week 3-4: Once you have 15+ conversions, switch to Maximize Conversions (no tCPA cap). Goal: let Google learn what converts.
Week 5-8: Once you have 30+ conversions, add a tCPA target at 120% of your average CPA. Goal: maintain volume while controlling costs.
Week 9+: Gradually lower tCPA by 10% every 2 weeks. If conversions drop by more than 20%, raise tCPA back up.
Month 3+ (when GCLID pipeline is mature): Switch sewer campaigns to Target ROAS with revenue values from ServiceTitan.
Launching a brand new campaign on Target CPA with zero conversion history will fail. Google's algorithm needs data to learn from. Always start with Manual CPC, then graduate to automated strategies as data accumulates.
📝 11. Ad Copy Templates & RSA Best Practices
Every campaign in this playbook uses Responsive Search Ads (RSAs). Google shows 3 of your 15 headlines and 2 of your 4 descriptions in each ad impression. The combination is chosen by Google's machine learning to match the user's query and intent.
🌟 RSA Best Practices for BSP
- Always provide 15 headlines and 4 descriptions. This gives Google maximum combinations to test. Ad strength should be "Good" or "Excellent."
- Pin sparingly. Pin your most important headline to Position 1 (service name + location), a trust signal to Position 2, and a CTA to Position 3. Let the other 12 headlines float.
- Use 5 headline themes: Service name, Location, Trust (reviews/ratings/generations), Urgency (same-day, 24/7, call now), Value (free estimate, financing).
- Include the phone number in at least one headline:
Call (913) 270-1194allows users to call directly from the ad without clicking. - Use Dynamic Keyword Insertion (DKI) in one headline:
{KeyWord:Default Text}automatically inserts the user's search query. - Never repeat themes. If H1 says "Overland Park Sewer Repair," do not have H5 say "Sewer Repair in Overland Park." Google may show both together, which looks repetitive.
- Write descriptions as complete sentences. Each description should stand alone and make sense without the others.
- Include a call to action in every description: "Call today," "Book online," "Schedule now," "Get a free estimate."
📄 Headline Formula Templates
| Theme | Formula | Example |
|---|---|---|
| Service + Location | [Service] in [City] | Sewer Repair in Overland Park |
| Trust Signal | [Rating] Stars, [#]+ Reviews | 4.9 Stars, 384+ Reviews |
| Heritage | [N]th-Gen Master Plumber | 5th-Gen Master Plumber |
| Urgency | Same-Day [Service] | Same-Day Sewer Service |
| CTA Phone | Call (913) 270-1194 | Call (913) 270-1194 |
| CTA Action | Get Your Free [Offer] | Get Your Free Estimate |
| Value Prop | [Benefit] Available | Financing Available |
| DKI | {KeyWord:[Default]} | {KeyWord:Sewer Repair} |
| Differentiator | [Unique Feature] | Trenchless Sewer Repair |
| License | Licensed & Insured | Licensed & Insured |
📄 Description Formula Templates
| Theme | Formula | Example |
|---|---|---|
| Service + Trust + CTA | [Service action]. [Trust signal]. Call today! | Bright Side fixes sewer lines fast. 4.9 stars. Call today! |
| Features List | [Feature 1], [Feature 2], and [Feature 3]. [Heritage]. | Camera inspections, trenchless repair, and full replacements. 5th-generation plumber. |
| Location + Trust + Value | [City]'s trusted [service]. [Reviews]. [Value prop]. | Overland Park's trusted sewer experts. 394+ reviews. Financing available. |
| Speed + Area + Trust | Same-day [service] in [area]. [Trust]. [License]. | Same-day sewer repair in KC metro. Free estimates. Licensed and insured. |
📝 How to Create an RSA (Universal Steps)
Navigate to the ad group where you want to add the ad. Click Ads in the left panel.
Click the blue + button. Select Responsive search ad.
Final URL: Enter the landing page URL for this service (e.g., https://callbrightside.com/sewer-repair/).
Display path: Enter two short words that appear after the domain (e.g., Path 1 = sewer, Path 2 = repair). These are cosmetic only and do not affect the actual URL.
Headlines: Enter all 15 headlines. For each headline you want to pin, click the pin icon (📌) and select the position.
Descriptions: Enter all 4 descriptions. Pin D1 to Position 1.
Review the Ad strength meter on the right. Aim for "Good" or "Excellent." If it is "Poor" or "Average," Google will suggest improvements; follow the suggestions that make sense.
Click Save. The ad enters review and should be approved within 1-24 hours.
Create two RSAs in each ad group with different themes. For example, RSA v1 focuses on trust (reviews, heritage) and RSA v2 focuses on urgency (same-day, call now). After 30 days, pause the lower-performing ad and create a new challenger. This is the foundation of A/B testing (see Section 18).
🔌 12. Ad Extensions Setup (Complete)
Ad extensions add extra information below your ad. They increase ad real estate, improve CTR by 10-15%, and are free to add (you only pay when someone clicks). Set these at the ACCOUNT level so they apply to all campaigns, then override with campaign-specific extensions where needed.
📞 Call Extensions
In Google Ads, click Ads & assets in the left panel, then click the Assets tab.
Click the blue + button, select Call.
Set level to Account.
Phone number: (913) 270-1194
Check "Use a Google forwarding number for call reporting." This enables call tracking within Google Ads.
Under Advanced options, set "Call reporting": ON. Set "Minimum call duration for conversion": 60 seconds.
Click Save.
🔗 Sitelink Extensions
Create these 8 sitelinks at the ACCOUNT level:
| Sitelink Text | Description Line 1 | Description Line 2 | Final URL |
|---|---|---|---|
Sewer Repair |
KC's #1 sewer repair team. | Trenchless options available. | https://callbrightside.com/sewer-repair/ |
Water Heater Service |
Repair or replace your water heater. | Tankless upgrades available. | https://callbrightside.com/water-heaters/ |
Drain Cleaning |
Clogged drains cleared fast. | Hydro jetting and camera scope. | https://callbrightside.com/drain-cleaning/ |
24/7 Emergency |
We answer day and night. | Same-hour dispatch available. | https://callbrightside.com/emergency-plumbing/ |
Free Estimate |
Get a no-obligation free quote. | Fast response, honest pricing. | https://callbrightside.com/contact/ |
Our Reviews |
4.9 stars with 394+ reviews. | See why customers trust us. | https://callbrightside.com/reviews/ |
Gas Line Services |
Repair, install, and inspect gas lines. | Licensed for all gas work. | https://callbrightside.com/gas-lines/ |
Financing Available |
Affordable payment plans. | Apply online in minutes. | https://callbrightside.com/financing/ |
📝 How to Add Sitelinks (Click-by-Click)
Go to Ads & assets > Assets. Click the blue + button, select Sitelink.
Set level to Account.
Enter the sitelink text, both description lines, and the final URL from the table above.
Click Add another sitelink and repeat for all 8 sitelinks.
Click Save.
💬 Callout Extensions
Callouts are short text snippets (25 chars max) that appear below your ad. Create these at the ACCOUNT level:
| # | Callout Text | Chars |
|---|---|---|
| 1 | 4.9 Star Google Rating | 22 |
| 2 | 5th-Generation Plumber | 22 |
| 3 | Financing Available | 19 |
| 4 | Free Estimates | 14 |
| 5 | Licensed & Insured | 18 |
| 6 | Same-Day Service | 16 |
| 7 | 24/7 Emergency Available | 24 |
| 8 | Family-Owned Business | 21 |
| 9 | Trenchless Technology | 22 |
| 10 | 384+ Customer Reviews | 22 |
📋 Structured Snippet Extensions
Structured snippets show a predefined header with a list of values. Create these at the ACCOUNT level:
| Header | Values |
|---|---|
| Service catalog | Sewer Repair, Sewer Replacement, Water Heaters, Drain Cleaning, Gas Lines, Emergency Plumbing |
| Neighborhoods | Overland Park, Olathe, Lenexa, Shawnee, Prairie Village, Leawood, Mission |
| Types | Trenchless Repair, Camera Inspection, Hydro Jetting, Pipe Lining, Tankless Install, Gas Line |
📍 Location Extensions
Go to Ads & assets > Assets. Click +, select Location.
If not already linked, click "Link to a Google Business Profile." Search for "Bright Side Plumbing" and link the business at 12022 Blue Valley Pkwy, Overland Park, KS 66213.
Click Save. This shows your address, phone number, and a map marker alongside your ads.
💰 Price Extensions
Go to Ads & assets > Assets. Click +, select Price.
Set type to Services. Language: English. Currency: USD.
Add these price items:
| Header | Description | Price | Unit | URL |
|---|---|---|---|---|
| Drain Cleaning | Professional drain clearing | From $149 | Per service | /drain-cleaning/ |
| Sewer Camera | HD video inspection | From $199 | Per service | /sewer-repair/ |
| Water Heater | Repair or replacement | From $199 | Per service | /water-heaters/ |
| Sewer Repair | Expert sewer line repair | From $2,999 | Per service | /sewer-repair/ |
| Gas Line | Install, repair, inspect | From $299 | Per service | /gas-lines/ |
The prices above are estimates based on industry standards. Confirm exact minimum prices with Kalen before setting these live. Incorrect pricing in ads can create customer expectation mismatches and lead to negative reviews.
🎯 13. Audience Targeting
Audiences in Search campaigns work as "observation" layers (bid adjustments) or "targeting" layers (restrict who sees your ads). For most BSP campaigns, use Observation mode so you can see which audiences convert best without restricting reach, then increase bids on high-value segments.
👥 In-Market Audiences
These are people Google has identified as actively researching or planning to purchase specific services.
| Audience | Apply To | Bid Adjustment |
|---|---|---|
| In-market: Plumbing Services | All campaigns | +20% |
| In-market: Home Improvement | Sewer, Water Heater | +10% |
| In-market: Emergency Services | Emergency campaign | +25% |
| In-market: Home Services | All campaigns | +10% |
| In-market: Plumbers | All campaigns | +15% |
📝 How to Add In-Market Audiences (Click-by-Click)
Open a campaign. In the left panel, click Audiences.
Click Edit audience segments (pencil icon).
Set targeting to Observation (not Targeting). This is critical; "Targeting" mode restricts your ads to only those audiences.
Click Browse, then expand In-market audiences.
Search for "Plumbing" in the search box. Check "Plumbing Services." Repeat for each audience in the table above.
Click Save.
After saving, click on each audience segment and set the bid adjustment percentage from the table above.
👥 Custom Audiences
Custom audiences target people based on search terms they have recently used, websites they have visited, or apps they have used.
Custom Audience 1: "Sewer Problem Researchers"
| Type | Values |
|---|---|
| Search terms | sewer line repair, sewer replacement cost, trenchless sewer, broken sewer pipe, sewer camera inspection, sewer backup, sewer smell in house |
| URLs visited | angi.com, homeadvisor.com, thumbtack.com, yelp.com/search?find_desc=plumber |
Custom Audience 2: "Emergency Plumbing Seekers"
| Type | Values |
|---|---|
| Search terms | emergency plumber, 24 hour plumber, burst pipe, flooded basement, sewage backup, water leak emergency |
Custom Audience 3: "Water Heater Shoppers"
| Type | Values |
|---|---|
| Search terms | water heater replacement, tankless water heater cost, no hot water, water heater leaking, best water heater brand |
| URLs visited | homedepot.com/b/Plumbing-Water-Heaters, lowes.com/pl/Water-heaters |
📝 How to Create Custom Audiences
Go to Tools > Shared library > Audience manager.
Click the Custom segments tab, then click the blue + button.
Name the audience (e.g., "Sewer Problem Researchers").
Select "People who searched for any of these terms on Google." Enter each search term on its own line.
Optionally add URLs under "People who browse types of websites."
Click Save. Then add this audience to the relevant campaign in Observation mode with a +15% bid adjustment.
👥 Remarketing Lists for Search Ads (RLSA)
RLSA lets you bid higher when someone who already visited callbrightside.com searches for a plumbing keyword. These users are 2-3x more likely to convert because they already know your brand.
| List Name | Definition | Duration | Bid Adj. |
|---|---|---|---|
| All Website Visitors | Anyone who visited callbrightside.com | 90 days | +30% |
| Sewer Page Visitors | Visited /sewer-repair/ or /sewer-replacement/ | 90 days | +40% |
| Contact Page Visitors | Visited /contact/ but did not convert | 30 days | +50% |
| Past Converters | Completed a phone call or form submission | 540 days | +25% |
👥 Demographic Adjustments
| Demographic | Adjustment | Rationale |
|---|---|---|
| Age 25-34 | +0% | First-time homeowners, moderate ticket |
| Age 35-44 | +10% | Established homeowners, high ticket |
| Age 45-54 | +15% | Aging homes, sewer problems peak here |
| Age 55-64 | +15% | Highest home equity, willing to invest |
| Age 65+ | +10% | Fixed income but need reliable plumber |
| Age 18-24 | -30% | Rarely homeowners, low conversion rate |
| HH Income: Top 10% | +20% | Premium services, no price shopping |
| HH Income: Top 11-20% | +15% | High-value homeowners |
| HH Income: Top 21-30% | +10% | Above-average homeowners |
| HH Income: Lower 50% | -10% | More price-sensitive, lower close rate |
📝 How to Set Demographic Adjustments
Open a campaign. In the left panel, click Demographics.
Click the Age tab. For each age group, click the bid adjustment column and enter the percentage.
Click the Household income tab. Set bid adjustments per the table.
Click Save. Repeat for each campaign.
💰 14. Budget Allocation ($35K/Month)
Here is exactly how to split $35,000 monthly across campaigns, with seasonal adjustment guidance.
📈 Base Monthly Budget Split
| Campaign | Monthly $ | % of Total | Rationale |
|---|---|---|---|
BSP | Search | Sewer Repair | $10,500 | 30% | #1 revenue driver. $3K-$15K tickets. Highest ROAS. |
BSP | Search | Sewer Replacement | $6,000 | 17.1% | #2 revenue driver. $8K-$25K tickets. |
BSP | Search | Emergency 24-7 | $4,950 | 14.1% | Emergency Eric = 50-60% of revenue. |
BSP | Search | Water Heater | $4,500 | 12.9% | Steady year-round volume. $2K-$5K tickets. |
BSP | Search | Drain Cleaning | $3,450 | 9.9% | Entry-point service. Feeds LTV pipeline. |
BSP | Search | Gas Line | $2,400 | 6.9% | Specialized, lower volume, premium pricing. |
BSP | Search | Branded | $750 | 2.1% | Brand defense. Pennies per click. |
| Reserve/Testing | $2,450 | 7% | Seasonal surges, new tests, PMax. |
| TOTAL | $35,000 | 100% |
🌦️ Seasonal Adjustments
| Season | Months | Key Adjustments |
|---|---|---|
| ❄️ Winter (Peak) | Nov, Dec, Jan, Feb | Sewer +20% ($12,600). Emergency +25% ($6,188). Drain -15%. Gas +10%. Move reserve into Sewer/Emergency. |
| 🌸 Spring | Mar, Apr, May | Use base allocation. Sewer lines discovered during thaw. Water Heater steady. |
| ☀️ Summer (Slow) | Jun, Jul, Aug | Reduce total 10-15% ($30-31.5K). Sewer -10%. Emergency -10%. Gas +30% (grills/outdoor). |
| 🍂 Fall (Ramp) | Sep, Oct | Sewer +10% ($11,550). Water Heater +10% ($4,950). Use reserve for holiday promos. |
📝 How to Change Campaign Budgets
Go to Campaigns in the left panel.
Click the Budget column value for the campaign to adjust.
Enter new daily budget (monthly / 30.4). Example: $10,500/month = $345/day.
Click Save. Google may spend up to 2x daily but will not exceed monthly (daily x 30.4).
Every Monday: check spend vs. budget per campaign. Underspending (<80%): raise bids, add keywords, or broaden from exact to phrase. Overspending: lower tCPA or add negatives. Never let budget sit idle while technicians need work.
📈 15. Conversion Tracking & GCLID Attribution Pipeline
Conversion tracking is the foundation. Without it, bid strategies are blind, ROAS is unknowable, and optimization is guesswork. BSP's GCLID attribution pipeline is live, connecting Google Ads clicks to closed revenue in ServiceTitan.
💡 The GCLID Pipeline (7 Steps)
Click: Homeowner clicks a Google Search ad. Google appends a GCLID to the URL: callbrightside.com/sewer-repair/?gclid=abc123
Capture: JavaScript on callbrightside.com captures the GCLID from the URL, stores it in a cookie and hidden form field.
Submit: When the homeowner calls or fills out a form, the GCLID is passed to ServiceTitan with the lead data.
Book: ServiceTitan creates a job. GCLID stored as a custom field on the customer/job record.
Close: Technician completes the job. ServiceTitan records revenue (e.g., $8,500).
Import: Nexus system (or manual CSV) sends GCLID + revenue to Google Ads as an offline conversion.
Attribute: Google Ads matches GCLID to the original click. Now it knows: "This click on [sewer repair overland park] generated $8,500." Smart bidding optimizes for revenue.
🔌 Required Conversion Actions
| Name | Source | Category | Value | Count |
|---|---|---|---|---|
Phone Call (60s+) | Phone calls | Phone call lead | Default | One/click |
Form Submission | Website (GTM) | Submit lead form | Default | One/click |
ST Booked Job | Import (offline) | Book appointment | Dynamic | One/click |
ST Closed Revenue | Import (offline) | Purchase/Sale | Actual $ | One/click |
📝 Creating the Offline Conversion Action
Tools > Measurement > Conversions. Click + New conversion action.
Select Import > Other data sources or CRMs > Track conversions from clicks.
Name: ST Closed Revenue. Category: Purchase/Sale.
Value: Use different values for each conversion. Count: One.
Click-through window: 90 days. Attribution: Data-driven.
Click Create and continue.
🔧 Enhanced Conversions
Go to Tools > Conversions. Click Form Submission. Scroll to Enhanced conversions. Toggle ON.
Implementation: Google Tag Manager (GTM-M3L9374).
In GTM, open the Google Ads Conversion tag. Under "Include user-provided data," map form fields: email, phone, first name, last name.
Publish GTM. Verify: test form submit; conversion should show "Recording (enhanced)" within 48 hours.
📝 Manual Offline Conversion Import (CSV)
Until automated Nexus pipeline handles this, upload weekly:
Parameters:TimeZone=America/Chicago Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency abc123def456,ST Closed Revenue,2026-03-10 14:30:00,8500,USD ghi789jkl012,ST Closed Revenue,2026-03-11 09:15:00,3200,USD
Export closed jobs from ServiceTitan (past 7 days) with GCLID and revenue.
Format CSV per template. Save as offline_conversions_YYYY-MM-DD.csv.
Tools > Conversions > Uploads. Click +, select Upload file. Choose CSV.
Click Preview. Fix any errors. Click Apply.
Upload every Monday until the automated pipeline is live.
Every Monday: (1) All conversions show "Recording" status. (2) Phone conversions match 3CX logs. (3) Form subs match ServiceTitan new leads. (4) Offline import success >95%. If anything breaks, fix immediately; bid strategies degrade within 3-5 days.
✅ 16. Optimization Checklist (Daily / Weekly / Monthly)
The operational cadence that keeps the account healthy. Print this. Make it a habit.
📅 Daily (15 min, every morning)
| # | Task | Where | Look For | Action |
|---|---|---|---|---|
| D1 | 📈 Spend vs. budget | Campaigns > Overview | >120% or <60% of daily budget | Overspend: lower bids/add negatives. Underspend: raise bids/add keywords. |
| D2 | 🔴 Conversion count | Conversions column | 0 conversions with $50+ spend | Check search terms. Check landing page. |
| D3 | 👁 Auction insights | Auction insights tab | New competitor >30% impression share | Note name. Check their ads. Adjust bids. |
| D4 | ⚠️ Ad disapprovals | Ads & assets | "Disapproved" or "Limited" status | Fix copy or appeal. |
📅 Weekly (45 min, every Monday)
| # | Task | Where | Look For | Action |
|---|---|---|---|---|
| W1 | 🔴 Search term mining | Keywords > Search terms | Irrelevant searches $5+ spend | Add as phrase match negatives. THE #1 weekly task. |
| W2 | 💰 Keyword performance | Keywords tab | >$100 spend, 0 conversions | Pause the keyword. |
| W3 | 📄 Ad performance | Ad group > Ads | CTR <3% or cost/conv >2x target | Pause underperformer. New challenger. |
| W4 | 📱 Device split | Devices tab | Mobile conv rate >50% worse | -15% mobile bid adj. Fix mobile UX. |
| W5 | 📍 Location split | Locations tab | City $100+ spend, 0 conv | Exclude or lower bid. |
| W6 | 🌟 Quality Score | QS column | QS < 5 | Improve ad relevance, landing page, CTR. |
| W7 | 💰 Budget pacing | Budget column | Consistent under/overspend | Reallocate to budget-limited campaigns. |
📅 Monthly (2 hours, first Monday)
| # | Task | Where | Look For | Action |
|---|---|---|---|---|
| M1 | 📈 Performance report | Reports > Campaigns | MoM trends: CPL, CTR, conv, ROAS | 1-page summary for Kalen/Stephanie with ServiceTitan revenue. |
| M2 | 🎲 Bid strategy eval | Settings > Bidding | tCPA met? Learning mode? | Raise tCPA if exceeded >20%. Check tracking if conv dropped. |
| M3 | 👥 Audience review | Audiences tab | Best/worst conv rates | Increase bids on top. Decrease/exclude worst. |
| M4 | 🔌 Extension review | Assets tab | Sitelinks <1% CTR | Replace with new variants. |
| M5 | 🌐 Landing page audit | Landing pages report | Bounce >70%, speed <50 | Fix speed. A/B test. Check ST widget. |
| M6 | 👁 Competitive analysis | Auction insights + Semrush | New competitors, IS shifts | Update competitor file. Adjust bids. |
| M7 | 🔌 GCLID pipeline health | Conversions > Uploads | Import errors, missing GCLIDs | Fix data flow. Reconcile GA vs ST. |
| M8 | 🌦️ Seasonal budget | Campaign budgets | Upcoming season change | Adjust per Section 14 seasonal table. |
🏆 17. Performance Benchmarks by Service Type
Calibrated for KC metro plumbing, BSP's 80% booking rate, 4.9-star rating, and current competitive landscape.
📈 CPL Benchmarks
| Service | 🎯 Target | 🟢 Acceptable | 🔴 Red Flag | Action |
|---|---|---|---|---|
| Sewer Repair | $200-$250 | $150-$300 | >$350 | Search terms, landing page, ad relevance |
| Sewer Replacement | $225-$275 | $175-$350 | >$400 | QS review, competitor analysis |
| Water Heater | $150-$200 | $100-$250 | >$300 | More exact match, check DIY leakage |
| Drain Cleaning | $100-$150 | $75-$200 | >$225 | Lower bids, add DIY negatives |
| Gas Line | $175-$250 | $125-$300 | >$350 | Tighten geo, review match types |
| Emergency | $175-$225 | $125-$300 | >$350 | Ad scheduling, verify phone answering |
| Branded | $5-$20 | $3-$30 | >$50 | Competitor conquest check |
📈 CPA Benchmarks (Cost Per Booked Job)
| Service | CPA Target | Math |
|---|---|---|
| Sewer Repair | $312 | $250 CPL / 80% booking |
| Sewer Replacement | $344 | $275 / 80% |
| Water Heater | $250 | $200 / 80% |
| Drain Cleaning | $188 | $150 / 80% |
| Gas Line | $281 | $225 / 80% |
| Emergency | $250 | $200 / 80% |
📈 ROAS Benchmarks
| Service | Avg Ticket | CPA | Close % | Rev/CPA | ROAS |
|---|---|---|---|---|---|
| Sewer Repair | $8,000 | $312 | 35% | $2,800 | 9:1 |
| Sewer Replacement | $15,000 | $344 | 30% | $4,500 | 13:1 |
| Water Heater | $3,000 | $250 | 50% | $1,500 | 6:1 |
| Drain Cleaning | $300 | $188 | 70% | $210 | 1.1:1 (LTV 10:1+) |
| Gas Line | $4,000 | $281 | 40% | $1,600 | 5.7:1 |
| Emergency | $5,000 | $250 | 60% | $3,000 | 12:1 |
$35K/month should yield $280K-$420K in attributed ServiceTitan revenue. At $420K/month = $5M annualized from Google Ads alone.
📈 Key Ratio Targets
| Metric | Target | Where to Check |
|---|---|---|
| CTR | 5-8% | Campaigns > CTR column |
| Conversion Rate | 8-12% | Campaigns > Conv. rate |
| Impression Share (sewer) | >60% | Competitive metrics > Search impr. share |
| Quality Score | 7+ avg | Keywords > QS column |
| Avg Call Duration | >60 sec | Tools > Call details |
| Lost IS (Budget) | <10% | Search lost IS (budget) |
| Lost IS (Rank) | <30% | Search lost IS (rank) |
🔬 18. A/B Testing Protocol
Continuous testing is how good becomes great. Every account element should be tested methodically. One variable at a time. Full duration. Document everything.
📄 Ad Copy A/B Tests
Protocol: Always 2 RSAs Per Ad Group
Create RSA v1 ("champion") with best-performing headlines/descriptions.
Create RSA v2 ("challenger") with a different angle. v1 = trust (reviews, heritage), v2 = urgency (same-day, call now). Or v1 = price, v2 = quality.
Ad rotation: Campaign Settings > Ad rotation > "Optimize: Prefer best performing ads."
Run 30 days or until each has 100+ clicks.
Winner = lowest cost per conversion (not just highest CTR).
Pause loser. Create new challenger. Repeat forever.
📋 Test Queue
| # | Variable | Champion | Challenger | Campaign |
|---|---|---|---|---|
| 1 | CTA style | "Call Now" | "Get a Free Quote" | Sewer Repair |
| 2 | Trust signal | "4.9 Stars, 384+" | "5th-Gen Plumber" | All |
| 3 | Urgency | "Same-Day Service" | "We Are on Our Way" | Emergency |
| 4 | Price mention | No price | "Starting at $199" | Drain |
| 5 | DKI vs static | Static headline | DKI headline | Water Heater |
| 6 | Pinning | 3 pins | 1 pin (H1 only) | Sewer Repair |
🎯 Landing Page Tests
Protocol: Google Ads Experiments
Create variant landing page (e.g., /sewer-repair/ with video hero).
Campaign > Experiments > + Custom experiment.
Name descriptively. Base campaign selected. Traffic: 50/50.
In experiment, change ad final URLs to variant page.
Duration: 30 days. Click Schedule.
After 30 days, apply winner if >90% statistical confidence.
📋 LP Test Queue
| # | Variable | Original | Variant | Page |
|---|---|---|---|---|
| 1 | Hero | Static image | Video testimonial | /sewer-repair/ |
| 2 | CTA button | "Contact Us" | "Get My Free Estimate" | /sewer-repair/ |
| 3 | Form length | 4 fields | Phone only | /contact/ |
| 4 | Social proof | Star badge | Video carousel | /water-heaters/ |
| 5 | Pricing | Hidden | "From $2,999" | /sewer-repair/ |
| 6 | Sticky CTA | None | Sticky "Call Now" | All mobile |
💰 Bid Strategy Experiments
Campaign > Experiments > + Custom experiment.
Name: e.g., "Sewer Repair: tCPA $225 vs $275." Split: 50/50.
Change tCPA in experiment campaign to test value.
Run 30 days. Compare conversions, CPA, and value. Apply winner.
📋 Bid Test Queue
| # | Base | Experiment | Campaign | Learning |
|---|---|---|---|---|
| 1 | tCPA $250 | tCPA $200 | Sewer Repair | Same volume at lower CPA? |
| 2 | Max Conv (tCPA) | Target ROAS | Sewer Repair | Revenue vs. lead optimization |
| 3 | Manual CPC | Max Conv | Gas Line | Enough volume for automation? |
| 4 | tCPA $150 | tCPA $125 | Drain Cleaning | How low before volume drops? |
1. One variable at a time. Multiple changes = uninterpretable results.
2. Full duration. No peeking at day 3 and killing the test.
3. Document everything. Google Sheet log: hypothesis, dates, result, action.
4. Highest impact first. Landing pages and bids > callout extensions.
📋 Appendix A: Quick Reference Cheat Sheet
Tear this section out and tape it to your monitor. Everything you need at a glance.
📞 Key Account Numbers
| Item | Value |
|---|---|
| Google Ads Account ID | 7269555791 |
| MCC Account ID | 8449092450 |
| GA4 Property ID | 298578347 |
| GTM Container ID | GTM-M3L9374 |
| GA4 Measurement ID | G-R9K15PMWPR |
| Primary Phone | (913) 270-1194 |
| Business Address | 12022 Blue Valley Pkwy, Overland Park, KS 66213 |
| Website | callbrightside.com |
| Google Rating | 4.9 stars, 394+ reviews |
| Owner | Kalen Barker, 5th-generation master plumber |
💰 Budget at a Glance
| Campaign | Daily | Monthly | tCPA |
|---|---|---|---|
| Sewer Repair | $350 | $10,500 | $250 |
| Sewer Replacement | $200 | $6,000 | $275 |
| Emergency 24-7 | $165 | $4,950 | $225 |
| Water Heater | $150 | $4,500 | $200 |
| Drain Cleaning | $115 | $3,450 | $150 |
| Gas Line | $80 | $2,400 | Manual CPC |
| Branded | $25 | $750 | $1.50 max CPC |
| Reserve | $80 | $2,450 | N/A |
| Total | $1,165 | $35,000 |
🎯 Landing Page URL Reference
| Campaign | Landing Page URL |
|---|---|
| Sewer Repair | https://callbrightside.com/sewer-repair/ |
| Sewer Replacement | https://callbrightside.com/sewer-replacement/ |
| Water Heater | https://callbrightside.com/water-heaters/ |
| Drain Cleaning | https://callbrightside.com/drain-cleaning/ |
| Gas Line | https://callbrightside.com/gas-lines/ |
| Emergency | https://callbrightside.com/emergency-plumbing/ |
| Branded | https://callbrightside.com/ |
🚀 Service Area Targeting
All campaigns target these locations (Presence only, NOT "Presence or interest"):
| Priority | City | State |
|---|---|---|
| 🔴 Primary | Overland Park | KS |
| 🔴 Primary | Olathe | KS |
| 🔴 Primary | Lenexa | KS |
| 🔴 Primary | Shawnee | KS |
| 🟠 Secondary | Prairie Village | KS |
| 🟠 Secondary | Leawood | KS |
| 🟠 Secondary | Mission | KS |
| 🟠 Secondary | Merriam | KS |
| 🔵 Tertiary | Kansas City (south metro) | MO |
👥 Persona Quick Reference
| Persona | % Revenue | Avg Ticket | Key Behavior | Best Campaign |
|---|---|---|---|---|
| 🚨 Emergency Eric | 50-60% | $5K-$15K | Panic mode, same-day, mobile-first | Emergency, Sewer Repair |
| 🏠 Renovation Rachel | 25-30% | $5K-$15K | Researches 3-14 days, trust-focused | Sewer Replacement, Water Heater |
| 🔧 Maintenance Mike | Highest LTV | $150-$500 | Routine, flat-rate, becomes lifetime customer | Drain Cleaning |
| 🏢 Business Owner Bob | 8-12% | $2K-$8K | Commercial, zero disruption | Gas Line, Emergency |
⚠️ The Top 10 Budget-Killing Mistakes
- Broad match keywords. They match to everything. Use phrase or exact only.
- Broad match negatives. They block money searches. Use phrase or exact negatives only.
- "Presence or interest" location targeting. Shows ads to people outside your service area.
- Display Network enabled on Search campaigns. Uncheck both partner networks.
- No negative keyword lists. DIY searches burn $500+/month.
- No conversion tracking. Bid strategies go blind.
- Setting tCPA too low on a new campaign. Google cannot find enough volume; campaign dies.
- Not checking search terms weekly. Irrelevant queries accumulate silently.
- Duplicate keywords across campaigns. You bid against yourself. Use campaign negatives to prevent overlap.
- Ignoring Quality Score. Low QS = higher CPCs and worse ad positions. Fix landing pages and ad relevance.
📅 The Weekly Rhythm
| Day | Task | Time |
|---|---|---|
| Monday | Full weekly review: search terms, keywords, ads, budget pacing, GCLID upload | 45 min |
| Tuesday | Quick spend check, ad disapprovals, auction insights | 10 min |
| Wednesday | Quick spend check, conversion count check | 10 min |
| Thursday | Quick spend check, review any new test results | 10 min |
| Friday | Quick spend check, weekend bid adjustments (Emergency +30%) | 15 min |
| Saturday | Monitor only (check phone if emergency campaign is live) | 5 min |
| Sunday | Monitor only | 5 min |
📈 Revenue Math at a Glance
$35,000 ad spend ÷ $200 CPL = 175 leads/month175 leads x 80% booking rate = 140 booked jobs140 jobs x 35% close rate = 49 closed jobs49 jobs x $5,000 avg ticket = $245,000 monthly revenue$245,000 x 12 months = $2.94M annualized from Google AdsTo hit $6M total with Google Ads driving ~50%: target $250K+/month attributed revenue. The GCLID pipeline measures this exactly.
🛠️ Emergency Contacts
| Person | Role | Contact |
|---|---|---|
| Robert Dove | Web Dev & Digital Performance Marketing | robert.dove@callbrightside.com |
| Ashton King | Operations Success Coordinator | ashton.king@callbrightside.com, 913-963-1029 |
| Kalen Barker | Owner, President | Via Ashton or direct |
| Stephanie Barker | Co-Owner, Operations | Via Ashton or direct |
📖 Appendix B: Glossary of Google Ads Terms
Reference guide for anyone on the BSP team who encounters unfamiliar terminology in this playbook or in the Google Ads interface.
| Term | Definition |
|---|---|
| CPC (Cost Per Click) | The amount you pay each time someone clicks your ad. Controlled by bids and auction dynamics. |
| CPL (Cost Per Lead) | Total ad spend divided by total leads generated. A lead = phone call 60s+ or form submission. |
| CPA (Cost Per Acquisition) | Total ad spend divided by total booked/closed jobs. CPA = CPL / booking rate. |
| CTR (Click-Through Rate) | Percentage of people who click your ad after seeing it. Clicks / Impressions x 100. |
| ROAS (Return on Ad Spend) | Revenue generated per dollar spent on ads. $8,000 revenue / $1,000 ad spend = 8:1 ROAS. |
| Conversion Rate | Percentage of clicks that result in a conversion (call or form). Conversions / Clicks x 100. |
| Impression Share | Percentage of total available impressions your ad captured. Higher = more visibility. |
| Quality Score (QS) | Google's 1-10 rating of keyword relevance. Based on expected CTR, ad relevance, and landing page experience. Higher QS = lower CPCs. |
| RSA (Responsive Search Ad) | Ad format with up to 15 headlines and 4 descriptions. Google mixes and matches to find best combinations. |
| DKI (Dynamic Keyword Insertion) | Feature that automatically inserts the user's search query into your ad headline. Format: {KeyWord:Default}. |
| GCLID (Google Click ID) | Unique identifier appended to URLs when someone clicks a Google ad. Used for offline conversion tracking. |
| tCPA (Target CPA) | The maximum amount you want to pay per conversion on average. Set in bid strategy settings. |
| tROAS (Target ROAS) | The return on ad spend you want to achieve. Set as a percentage (1000% = 10:1). |
| Phrase Match | Keyword match type (quotes). Ad shows when search includes your phrase, in order, with possible words before/after. |
| Exact Match | Keyword match type (brackets). Ad shows only when search closely matches your keyword (some close variants allowed). |
| Broad Match | Keyword match type (no symbols). Ad shows for loosely related searches. AVOID for BSP. |
| Negative Keyword | Keywords that prevent your ad from showing. Block irrelevant traffic. |
| RLSA | Remarketing Lists for Search Ads. Bid higher on people who previously visited your website. |
| Enhanced CPC | Google adjusts your manual bids up or down based on conversion likelihood. |
| Maximize Conversions | Automated bid strategy. Google sets bids to get the most conversions within your budget. |
| Ad Strength | Google's rating of your RSA: Poor, Average, Good, Excellent. Based on headline/description diversity and relevance. |
| Sitelink | Ad extension showing extra links below your main ad (e.g., "Sewer Repair," "Free Estimate"). |
| Callout | Short text snippets below ads (e.g., "4.9 Stars," "Licensed & Insured"). Not clickable. |
| Structured Snippet | Ad extension showing a list under a header (e.g., "Services: Sewer, Drains, Water Heaters"). |
| Auction Insights | Report showing which competitors bid on the same keywords and their impression share. |
| Offline Conversion | A conversion that happens outside Google (e.g., phone booking, closed job in ServiceTitan) imported back to Google Ads. |
| Enhanced Conversions | Sends hashed first-party data (email, phone) to Google to improve conversion matching accuracy. |
| MCC (My Client Center) | Manager account that oversees multiple Google Ads accounts. BSP's MCC: 8449092450. |
📄 Version History & Document Info
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | March 12, 2026 | Robert Dove | Initial release. 18 sections + 2 appendices. Full campaign architecture, keyword lists, ad copy, extensions, audiences, budgets, conversion tracking, optimization checklists, benchmarks, and A/B testing protocols. |
📝 How to Use This Document
- New Campaign Setup: Start with Section 1 (Architecture), then jump to the specific campaign section (2-8). Follow every step in order.
- Weekly Optimization: Go directly to Section 16 (Optimization Checklist). Follow the weekly tasks every Monday.
- Performance Review: Check Section 17 (Benchmarks) to see if metrics are in range. If not, the red flag actions tell you exactly what to fix.
- Ad Copy Updates: Section 11 has templates. Each campaign section (2-8) has complete RSA copy. Section 18 has the A/B testing protocol.
- Negative Keyword Maintenance: Section 9 has all shared lists and campaign-level negatives. Update weekly from search term reports.
- Budget Changes: Section 14 has the base allocation and seasonal adjustments. Follow the seasonal table quarterly.
- Troubleshooting: Section 15 covers conversion tracking health. Section 10 covers bid strategy issues. The cheat sheet (Appendix A) has the top 10 budget-killing mistakes.
Update this playbook as campaigns launch and performance data accumulates. Add new keywords that perform well. Remove keywords that waste budget. Update benchmarks with actual BSP data after 90 days. The best playbook is one that evolves with the account.
🚀 90-Day Launch Sequence
Follow this timeline for a phased rollout of all campaigns:
| Week | Action | Campaigns |
|---|---|---|
| Week 1 | Launch P1 campaigns on Manual CPC. Set up all conversion tracking. Create shared negative lists. | Sewer Repair, Sewer Replacement, Emergency, Branded |
| Week 2 | Launch P2 campaigns. Add all ad extensions account-wide. First search term mining pass. | Water Heater, Drain Cleaning |
| Week 3 | Launch P3 campaign. Add audience layers (Observation). Set demographic adjustments. | Gas Line |
| Week 4 | First weekly optimization cycle. Add negatives. Pause zero-conversion keywords. Review QS. | All |
| Week 5-6 | Switch P1 campaigns to Maximize Conversions (no tCPA yet). Monitor closely. | Sewer Repair, Sewer Replacement, Emergency |
| Week 7-8 | Add tCPA targets to P1 campaigns. Start first A/B ad copy test. | All P1 |
| Week 9-10 | Switch P2 campaigns to Maximize Conversions. Begin first landing page test. | Water Heater, Drain Cleaning |
| Week 11-12 | Add tCPA to P2. Full month-1 performance report. Adjust budgets based on data. | All |
| Month 3 | Begin offline conversion imports (GCLID). Evaluate switching to Target ROAS on sewer campaigns. | Sewer Repair, Sewer Replacement |
Google's automated bidding needs at least 30 conversions in the last 30 days to work effectively. Do not switch to tCPA or tROAS until a campaign hits that threshold. For lower-volume campaigns (Gas Line, Branded), Manual CPC with Enhanced CPC is the right long-term strategy.
🔥 Bright Side Plumbing
Google Search Campaign Playbook v1.0
March 2026 | callbrightside.com
Google Ads Account: 7269555791 | MCC: 8449092450
Built by Robert Dove, Dove Web Consulting
Powered by Nexus AI Command Center
🔒 Confidential. Do not distribute outside Bright Side Plumbing team.