Bright Side Plumbing & Heating
Translating Google's AI-powered advertising framework into revenue for a $6M plumbing company
Companion document to the Nexus AI Command Center
Bright Side's customers take an average of 8 searches to complete complex tasks like finding a plumber for a sewer repair. Manually optimized campaigns cannot respond to that many signals in real time. Google's AI can.
| What Google AI Does | How It Helps Bright Side |
|---|---|
| Processes billions of auction signals per second | Finds the homeowner in Overland Park searching "sewer smell basement" at 10 PM on a Tuesday and bids appropriately |
| Learns from conversion patterns | With offline conversions, learns that "sewer repair Kansas City" at 8 AM from 66213 leads to $8,200 jobs |
| Responds to new scenarios in real time | When a winter freeze hits KC, AI automatically increases bids for "burst pipe" and "emergency plumber" queries |
| Combines signals across channels | Shows sewer repair YouTube content to someone who searched for it on Google but didn't convert yet |
AI solutions are more powerful when used together. Google's internal data shows:
AW-404985988 (primary) + AW-242993149 (secondary). Verify which account runs which campaigns on Day 1.
Google's AI works best with strategic human input, including setting the right goal and fueling it with data. Bright Side's data advantage is ServiceTitan + Housecall Pro: every lead, every job, every invoice, every revenue dollar tracked by service type, technician, and zip code.
Bright Side's CRM data (ServiceTitan + Housecall Pro) is:
Most competitors only feed Google "someone called" or "someone submitted a form." You can feed Google "this click led to an $8,200 sewer repair job that was invoiced and paid." That is a massive competitive advantage.
| Data Type | Definition | Bright Side Application |
|---|---|---|
| Actual Value | Value realized at time of conversion (transaction revenue) | ServiceTitan invoice amount sent back via offline conversion import. A $12K sewer replacement gets a $12K value. A $149 drain clean gets $149. |
| Proxy Value | General value understood at conversion time (lead scoring) | Assign static values by service type: Sewer call = $500 proxy, Water heater call = $200, Drain clean call = $75. Use until offline conversion pipeline matures. |
| Predictive Value | Predicted value calculated at conversion based on signals | Future state: predict LTV based on service type + zip code + home age. Maintenance Mike from Leawood with a 1980s home = high LTV. |
Every data input must connect back to one of these goals:
| Business Objective | Data Source | What to Feed Google |
|---|---|---|
| Maximize sewer revenue | ServiceTitan: completed sewer jobs with invoice amounts | Offline conversions with actual revenue values via GCLID |
| Reduce CPL from $200 to $120 | GA4 + Google Ads: cost and conversion data | Accurate conversion tracking (Enhanced Conversions) so Smart Bidding optimizes correctly |
| Increase lead volume (80% booking rate means volume is the constraint) | ServiceTitan: booking data by channel | Feed booking confirmation as a conversion event (not just calls) |
| Grow organic to 45 leads/month by Day 90 | Search Console + GA4: organic conversion data | Organic conversion data informs which keywords to target in paid for immediate results |
Value-based bidding (VBB) is the single most impactful upgrade for Bright Side's Google Ads. Instead of telling Google "get me leads," you tell Google "get me the leads that generate the most revenue."
Without VBB, Google treats all conversions equally. A $149 drain clean call and a $12,000 sewer replacement call both count as "1 conversion." Google has no way to know which is worth more.
With VBB, Google sees:
Keyword: "sewer repair overland park" โ Revenue: $8,200 โ Bid MORE Keyword: "drain cleaning near me" โ Revenue: $149 โ Bid appropriately Keyword: "emergency plumber 66213" โ Revenue: $4,500 โ Bid MORE Keyword: "faucet dripping" โ Revenue: $175 โ Bid less
Industry proof: Plumbing + electrical case study ($56K PMax spend): offline conversion import + Smart Bidding produced 56% higher booking rate and 69% higher ROAS. (Camp Digital, 2025)
Before offline conversion data flows, assign static values to different conversion types so Google starts learning what matters:
| Conversion Action | Assigned Value | Rationale |
|---|---|---|
| Phone call > 60 seconds (sewer keyword) | $500 | High-ticket service, avg job $7,500 |
| Phone call > 60 seconds (water heater keyword) | $200 | Medium-ticket, avg job $2,500 |
| Phone call > 60 seconds (drain/general) | $75 | Lower-ticket, avg job $300-500 |
| Form submission (any service) | $100 | Lower intent than phone call but still valuable |
| Reserve with Google booking | $150 | Direct booking = high intent |
Bidding strategy: Maximize Conversion Value. If you have specific ROI goals, add a Target ROAS.
Once the GCLID pipeline from ServiceTitan is active (see Part 13 of the Command Center guide), switch from static proxy values to actual invoice amounts:
Expected impact at $35K/month spend:
| Metric | Without VBB | With VBB | Improvement |
|---|---|---|---|
| Revenue per lead | $1,786 | $2,200-2,500 | +23-40% |
| Sewer/water heater lead share | 30% | 45-55% | +50-83% |
| ROAS | 8x | 11-14x | +38-75% |
| Wasted spend on low-value leads | 25% of budget | 10-15% | -40-60% |
At $35K/month: 30% ROAS improvement = $10,500/month additional revenue from the same spend = $126,000/year.
Conversion value rules let you adjust values based on location, device, and audience without changing your base conversion tracking:
If a conversion value changes after the fact (e.g., a job scope increases or a booking cancels), use Conversion Adjustments to retract or restate values. This keeps the algorithm learning from accurate data.
As cookies become less reliable, Enhanced Conversions ensures accurate conversion measurement by sending hashed first-party data (email, phone number) alongside conversion tags.
The Growth Strategy document does not mention Enhanced Conversions. This is a gap. Without it:
Enhanced Conversions for Leads is the easiest path: set it up entirely in Google Ads. When a lead submits a form or calls, the hashed email/phone is matched to the original ad click, even if cookies were blocked.
| Step | Action | Time |
|---|---|---|
| 1 | Google Ads > Goals > Conversions > Settings > Enhanced Conversions > Turn ON | 5 min |
| 2 | Choose method: Google Tag (recommended for simplicity with Oxygen Builder + GTM) | 5 min |
| 3 | Configure which first-party data to send: email address from form submissions | 10 min |
| 4 | For Enhanced Conversions for Leads: provide user-provided data (email/phone) at time of lead submission | 15 min |
| 5 | Verify: Google Ads > Diagnostics > check for enhanced conversion data appearing | Next day |
Performance Max campaigns reach customers across all Google channels (Search, YouTube, Display, Discover, Maps, Gmail) from a single campaign. The Growth Strategy allocates $2,000-4,000/month to PMax.
Objective: Leads. Conversion goals should be consistent across all performance campaigns:
| Conversion Goal | Value | Priority |
|---|---|---|
| Phone call > 60 seconds | Dynamic (from offline conversion import) | Primary |
| Form submission | $100 (static until OCI active) | Primary |
| Reserve with Google booking | $150 | Primary |
| Schedule page visit | $10 | Secondary |
Bidding strategy: Maximize Conversion Value. Add Target ROAS once 30+ days of offline conversion data are flowing.
Each asset group should be themed around a single service. Use Bright Side's existing ad copy templates:
| Asset Type | Content |
|---|---|
| Headlines (5+) | "Same-Day Sewer Repair" / "Sewer Backup? Call Now" / "5th-Gen Master Plumber" / "$50 On-Time Guarantee" / "Lifetime Warranty Included" |
| Long Headlines (5+) | "5th-Generation Master Plumber Serving Overland Park and KC Metro" / "Sewer Line Repair and Installation Experts with Lifetime Warranty" |
| Descriptions (5+) | "Sewer line repair and installation experts. Repairs warranted as long as you own your home." / "Flat-rate pricing by the task. Know the cost before we start or the task is free." |
| Images (5+) | Before/after sewer repair photos, technician on-site, camera inspection, equipment shots |
| Videos | Sewer camera footage, ride-along repair video, customer testimonial (if no video, PMax auto-generates from images/text) |
| Final URL | /sewer-line-repair-kansas-city/ (dedicated landing page) |
| Call to action | "Get quote" or "Call now" |
Headlines: "24/7 Emergency Plumber KC" / "Burst Pipe? We're On The Way" / etc. Final URL: /emergency-plumber-overland-park/
Headlines: "Water Heater Install Today" / "No Hot Water? We Fix It" / etc. Final URL: /water-heater-installation-overland-park/
Headlines: "Drain Cleaning from $149" / "Clogged Drain? Same Day Fix" / etc. Final URL: /drain-cleaning-overland-park/
Audience signals are optional but accelerate PMax's learning period. They tell Google where to start looking for high-value customers:
| Signal Type | Bright Side Application |
|---|---|
| Customer Match | Upload ServiceTitan + Housecall Pro customer lists (email/phone). Past customers who see maintenance/upgrade ads convert at 3-5x higher rates. Refresh monthly. |
| Custom Segments (by search terms) | "sewer repair near me," "water heater replacement cost," "emergency plumber overland park" |
| In-Market Audiences | Home Services > Plumbing, Home Improvement > Home Repair |
| Demographics | Homeowners, ages 35-65, Johnson County / KC metro |
Note: Google may reach users beyond selected signals if predicting them helps meet campaign goals. Audience signals guide, they don't restrict.
Extensions make ads more prominent and increase engagement:
Wait at least 6 weeks after launch before evaluating. Use pre-post testing:
| Phase | Duration | What to Measure |
|---|---|---|
| Pre-period | 4 weeks before PMax launch | Baseline: total conversions, revenue, CPL across all campaigns |
| Learning period | Weeks 1-2 after launch | Let algorithm learn. Do not make changes. |
| Post-period | Weeks 3-6+ after launch | Compare total account conversions/revenue at similar CPA/ROAS. Account for conversion lag (plumbing: 1-7 days). |
Each auction represents more than a search query. Behind it are signals like device, location, time of day, previous searches, and audience membership. Broad match lets Google's AI match all traffic that delivers value while meeting business goals.
Instead of managing hundreds of exact and phrase match keywords, you oversee machine learning as it matches relevant traffic:
| Your Keyword | Broad Match Can Also Show For | Why It Matters |
|---|---|---|
| "sewer repair" | "main line backup fix," "sewage pipe replacement cost," "tree root in sewer" | Captures long-tail intent you'd never manually add |
| "emergency plumber" | "pipe burst who to call," "flooding basement plumber now," "water leak middle of night" | Catches urgent high-value queries at any hour |
| "water heater installation" | "tankless water heater upgrade," "hot water heater replacement cost KC," "no hot water fix" | Covers all variations of the same intent |
Responsive Search Ads let you provide up to 15 headlines and 4 descriptions. Google's AI mixes and matches them into the strongest ad for each user.
| Service | Headlines |
|---|---|
| Emergency/Sewer | "24/7 Emergency Plumber KC" / "Sewer Backup? Call Now" / "Same-Day Sewer Repair" / "$50 On-Time Guarantee" / "5th-Gen Master Plumber" |
| Water Heater | "Water Heater Install Today" / "No Hot Water? We Fix It" / "Flat-Rate Water Heater Svc" / "Lifetime Warranty Included" |
| Drain Cleaning | "Drain Cleaning from $149" / "Clogged Drain? Same Day Fix" / "4.9 Stars - 384+ Reviews" |
| General | "Free Plumbing Estimates" / "Licensed Master Plumber" / "Overland Park's Best Plumber" / "Warranty For Life of Home" |
Google rates RSA quality as Poor / Average / Good / Excellent. Improving from Poor to Excellent = 9% more clicks and conversions on average (Google Internal Data).
How to improve Ad Strength:
AI has evolved to let you consolidate campaign structure around business objectives. You don't need to segment by match type, device, location, or audience because machine learning considers these signals at each auction.
| Campaign | Type | Budget/Month | Target | Bidding |
|---|---|---|---|---|
| Brand - Bright Side Plumbing | Search | $1,500 | CPA $15 | Target CPA |
| Emergency Plumbing | Search | $4,000 | CPA $100 | Maximize Conv. Value |
| Sewer Repair/Installation | Search | $3,000 | tROAS 12x | Target ROAS |
| Water Heater Install/Repair | Search | $2,500 | CPA $100 | Maximize Conv. Value |
| Drain Cleaning | Search | $1,500 | CPA $60 | Target CPA |
| General Plumbing | Search | $1,500 | CPA $70 | Target CPA |
| Performance Max | PMax | $2,000-4,000 | tROAS 10x | Maximize Conv. Value + tROAS |
| Remarketing | Display | $500-2,000 | CPA $40 | Target CPA |
Optimization Score (0-100%) estimates how well Bright Side's Google Ads account is set to perform. Higher = better optimized with fewer actionable opportunities remaining.
Opt in to automatically apply specific recommendation categories to save time on manual tasks:
| Category | Recommended Auto-Apply? | Rationale |
|---|---|---|
| Ads & Extensions | Yes (with review) | Optimized ad rotation, sitelink descriptions, auto-generated assets |
| Keywords & Targeting | Selectively | Add negative keywords: yes. Remove poorly performing keywords: review first. |
| Bids & Budgets | No (manual review) | Budget changes need Kalen/Stephanie approval per Red Line Rules. Never auto-increase budget. |
| Setup & Repair | Yes | Fix tracking issues, conversion tag diagnostics |
Kalen wants A/B testing. Campaign experiments let you test changes in existing campaigns while holding all other variables constant. No additional budget needed.
| Test Type | What to Test | Bright Side Application |
|---|---|---|
| Bidding | Manual vs Smart Bidding, tCPA vs tROAS | Test Target ROAS on the Sewer campaign (highest revenue per lead) vs current bidding. Run 4-6 weeks. |
| Targeting | Broad match vs phrase match | On the Emergency Plumbing campaign, test broad match + Smart Bidding vs current match types. Use one-click experiment from Recommendations. |
| Other | New ad types, landing pages | Test new service-specific landing page vs current homepage destination. Measure conversion rate difference. |
| Month | Experiment | Expected Impact |
|---|---|---|
| Month 2 | Sewer campaign: Manual CPC โ Target ROAS | 30-50% ROAS improvement once offline data flows |
| Month 2 | Emergency campaign: Phrase match โ Broad match + Smart Bidding | 20%+ more conversions at similar CPA |
| Month 3 | Water Heater campaign: Homepage landing โ dedicated landing page | 25-40% conversion rate lift from message match |
| Month 3 | Drain Cleaning campaign: Target CPA โ Maximize Conversion Value | Better lead quality mix |
| Month 4 | PMax: Sewer asset group with video vs without | Higher engagement on YouTube/Display |
Performance Planner forecasts how budget and target adjustments affect key metrics. Updated daily using billions of search queries. Use it monthly to ensure Bright Side's seasonal budget model is optimized.
| Period | Season | Monthly Budget | Rationale |
|---|---|---|---|
| Jan-Mar | Peak (freeze/thaw, burst pipes) | $40,000-42,000 | Emergency demand spikes. Sewer problems from frozen ground. Scale LSA + Emergency campaigns. |
| Apr | Shoulder | $35,000 | Spring thaw reveals winter damage. Steady demand. |
| May-Jun | Slow | $28,000-30,000 | Slow months. Reduce PPC, maintain LSA. Focus on content/SEO building. |
| Jul-Aug | Slow | $28,000-30,000 | Summer slow. Maintenance campaigns, AC-adjacent plumbing (water heaters under stress). |
| Sep-Oct | Shoulder | $35,000 | Pre-winter prep. Furnace checks, water heater inspections. Maintenance Mike campaigns. |
| Nov-Dec | Peak (holiday plumbing emergencies) | $40,000-42,000 | Holiday cooking clogs, guest bathroom overflows, frozen pipes start. Scale Emergency + Drain campaigns. |
Annual total: ~$420,000 ($35,000/month average). Same budget as current, just distributed by demand.
The Insights page curates account data and broader Google trends to help streamline daily performance monitoring.
| Insight Type | What It Shows | How Bright Side Uses It |
|---|---|---|
| Diagnostic Insights | Why ads aren't serving (paused groups, low ad strength, suspensions) | Fix campaign issues immediately. If sewer ads stop serving, revenue drops within days. |
| Consumer Interest | Search term categories your ads appear against, volume, and growth | Discover new blog topics. If "trenchless sewer repair" is trending 40% in KC, write a blog post and create an ad group for it. |
| Audience Persona | Who is converting, their interests and behaviors | Validate customer personas. Is Emergency Emma really 35-60 in Johnson County suburbs? Adjust audience signals if actual data differs. |
| Search Trends & Demand Forecasts | Current and upcoming search trends | Predict seasonal spikes. If Google forecasts "burst pipe" demand rising 200% next week due to a cold front, pre-increase Emergency campaign budget. |
| Performance Shifts | Significant changes in performance and why | Diagnose sudden CPL increases. Did a competitor enter the market? Did a landing page break? |
| Auction Insights | Competitor visibility shifts | Track if Mr. Rooter or Roto-Rooter is outbidding you. Feed into the spy_engine.py competitive intelligence script. |
| Change History | Recent account changes that may impact performance | Catch unintended changes. If Russ or another team member made an edit, see it immediately. |
When you see blue values with dotted underlines in the campaigns table, hover over them to get instant explanations for performance changes. This automates the process of scanning reports to find root causes.
Use for: Diagnosing why Sewer campaign CPL jumped 30% this week. Was it competition? Budget? A paused ad? Explanations tell you in seconds what would take 30 minutes of manual analysis.
| Report | What It Shows | Stakeholder |
|---|---|---|
| Combinations & Assets Report | Which RSA headline/description combos perform best | Russ (to align ad copy with brand voice) |
| Bid Strategy Report | How Smart Bidding is performing, top signals, average target, conversion delay | Robert (internal optimization) |
| Top Signals Report | Factors Smart Bidding uses: audience lists, day of week, location, time | Robert (inform strategy adjustments) |
| Audience Insights | Which audience segments over-index in conversions | Kalen/Stephanie (understand their customer base) |
Google identifies three budget maturity levels. Bright Side fits the "Growth with Approval" model based on Stephanie's Red Line Rules.
| Model | Description | Best Practice | Bright Side Fit |
|---|---|---|---|
| 1. Clearly Defined | Fixed annual/quarterly budgets. No flex. | Set aside a % for testing and market changes. | Partial: Stephanie has Red Line Rules and 5% variance threshold. |
| 2. Growth with Approval | Defined budget but can increase with approval system. | Weekly/monthly cadence of reviewing budget tools and identifying opportunities. | This is Bright Side. Budget framework allows increases with data justification. Robert uses Performance Planner + simulators to build the case. |
| 3. Full Flexibility | No fixed budget. As long as campaigns hit performance goals, keep investing. | Use shared budgets and portfolio bid strategies. Set daily budget to 2-3x daily cost. | Future state: once offline conversion data proves consistent ROAS above 10x, propose uncapping high-ROAS campaigns. |
Per Bright Side's Budget Decision Framework:
Google's research (BCG) found that digital leaders achieve 3x higher revenue than those who don't adopt digital innovations. Three traits of digital leaders:
For Bright Side: Start small. Test broad match on one campaign. Test Target ROAS on one campaign. Prove results with data. Then scale. This builds Kalen and Stephanie's confidence in the approach without requiring them to "bet the farm" on day one.
This is the execution order, mapped to the 30-60-90 day framework from the Onboarding Response.
| # | Action | Section | Time |
|---|---|---|---|
| 1 | Verify auto-tagging is ON in Google Ads | Value-Based Bidding | 5 min |
| 2 | Enable Enhanced Conversions in Google Ads | Enhanced Conversions | 30 min |
| 3 | Assign static proxy values to conversion actions | Value-Based Bidding | 30 min |
| 4 | Begin 14-Day Google Ads Audit | Command Center Part 13 | 8 hrs |
| 5 | Review Optimization Score and note current level | Optimization Score | 30 min |
| 6 | Review Insights page for current search trends in KC plumbing | Insights | 30 min |
| 7 | Set up Performance Planner with current campaigns | Performance Planner | 30 min |
| # | Action | Section | Time |
|---|---|---|---|
| 8 | Restructure campaigns: separate brand vs non-brand | Account Structure | 4 hrs |
| 9 | Begin ServiceTitan offline conversion import setup | Value-Based Bidding | 2 hrs |
| 10 | Create RSAs with full asset sets for each campaign | RSA | 3 hrs |
| 11 | Deploy negative keyword list from audit findings | Account Structure | 1 hr |
| 12 | Apply high-impact Optimization Score recommendations | Optimization Score | 1 hr |
| 13 | Present audit findings + restructure plan to Kalen/Stephanie | All | 1 hr |
| # | Action | Section | Time |
|---|---|---|---|
| 14 | Verify offline conversions flowing (7-day data check) | Value-Based Bidding | 30 min |
| 15 | Launch Experiment 1: Sewer campaign Manual CPC โ Target ROAS | Campaign Experiments | 1 hr |
| 16 | Launch Experiment 2: Emergency campaign phrase โ broad match | Campaign Experiments | 1 hr |
| 17 | Build PMax campaign with 4 service-specific asset groups | Performance Max | 4 hrs |
| 18 | Configure audience signals for PMax (Customer Match + custom segments) | Performance Max | 1 hr |
| 19 | Build 5 dedicated landing pages (1 per top service) | Account Structure | 15 hrs |
| 20 | Set up remarketing audiences (4 segments) | Performance Max | 2 hrs |
| 21 | Opt in to auto-applied recommendations (Ads/Extensions + Setup/Repair only) | Optimization Score | 15 min |
| # | Action | Section | Time |
|---|---|---|---|
| 22 | Evaluate experiment results (4-6 weeks of data) | Campaign Experiments | 2 hrs |
| 23 | Switch winning experiments to full campaigns | Campaign Experiments | 30 min |
| 24 | Switch from static proxy values to dynamic OCI values (if pipeline verified) | Value-Based Bidding | 1 hr |
| 25 | Implement Conversion Value Rules (location, audience, device multipliers) | Value-Based Bidding | 1 hr |
| 26 | Evaluate PMax results (6-week pre-post comparison) | Performance Max | 2 hrs |
| 27 | Run Performance Planner for months 4-6 budget forecast | Performance Planner | 1 hr |
| 28 | Present 90-Day report with Google AI implementation results | All | 3 hrs |
| 29 | Propose budget increases for high-ROAS campaigns with Performance Planner data | Flexible Budgets | 1 hr |
| Task | Frequency | Tool |
|---|---|---|
| Review Optimization Score + apply/dismiss recommendations | Weekly | Recommendations page |
| Check Insights page for trends and diagnostic issues | Weekly | Insights page |
| Review search terms, add negatives for queries > $50 zero conversions | Weekly | Search Terms report |
| Review Asset/Combinations report, replace low-performing assets | Bi-weekly | Ads > Assets |
| Run Performance Planner for next month | Monthly | Performance Planner |
| Refresh Customer Match list (keep < 90 days old) | Monthly | Audience Manager |
| Run 1 new campaign experiment | Monthly | Experiments page |
| Review Bid Strategy Report + Top Signals | Monthly | Bid Strategy Report |
| Seasonal budget adjustment (Performance Planner data) | Quarterly | Performance Planner |
AI alone: +20% performance. AI + human input: +35% performance.
The algorithm finds the $12K sewer jobs. Robert provides the strategy, data, and creative.
Google cannot automate strategy. That's where the value is.