📊 BP X Evelyn

Google Ads Strategy Session
April 1, 2026 | 1:30 PM | Evelyn Sweeney, Google Account Strategist
$220/day spend 5 campaigns enabled Fake conversions to fix

🚨 #1 PRIORITY: "Book Appointment" Conversion is Broken

⚠️ The "Book appointment" conversion fires when someone CLICKS the scheduling widget button.
It does NOT mean they completed a booking or called. This inflates our numbers by 7x.
15
Fake "conversions" March 31
0
Actual phone calls March 31
52
Widget clicks last 7 days
5
Real phone calls last 7 days
💡 What this means: Google says we got 67 conversions last week. In reality we got 9 phone calls. Smart Bidding is optimizing for button clicks, not real customers. Kalen (the owner) flagged this today asking "is this phone calls?"

❓ Options for Evelyn:

📊 Campaign Dashboard (All 8 Campaigns)

CampaignBudgetActualUtilizationStatus
🔧 Sewer (Mar 2026)$150/day$84/day
56%
Underspending
📍 LSA$100/day$73/day
73%
Healthy
🚨 Emergency 24-7$50/day$50/day
99%
Maxed out
💧 Sump Pump$66/day$6/day
9%
Just bumped + LP fixed today
🏷️ Brand$15/day$7/day
46%
OK
🔥 Water Heater$10/day$0
0%
PAUSED -- LP needs work
🚿 Drain Cleaning$10/day$0
0%
PAUSED -- LP needs work
🔥 Gas Line$50/day$0
0%
PAUSED
Question: Why is Sewer only spending $84 of its $150/day budget (56%)? Is it search volume, bid strategy, quality score, or keyword coverage?

What's Been Fixed Since Last Call (Mar 19)

📋 Outstanding Items (Need Evelyn's Help)

💰 Budget Changes

🚫 Service Local Pro (SLP) canceled -- $2,000/mo freed up

Sump Pump bumped: $5/day ➡️ $66/day (absorbing SLP money until other pages are ready)

Next: Water Heater ($30/day) and Drain Cleaning once landing pages are improved

🔧 Sewer stays at $150/day -- underspending anyway, budget isn't the constraint

🔍 The Real Numbers vs What Google Shows

❌ WHAT GOOGLE SAYS
67
conversions last 7 days
Includes widget clicks, Local Actions, YouTube views
✅ REALITY
9
real phone calls last 7 days
Verified via metrics.phone_calls from API
💡 The gap is 7x. Smart Bidding thinks we're getting 67 leads when we're getting 9. Fixing "Book appointment" and demoting Local Actions closes this gap and lets Smart Bidding optimize for REAL customers.
7.3x
Real Sewer ROAS (verified)
$5,476
Sewer avg ticket
$220
Daily ad spend
394+ reviews (4.9 stars)

🎯 Priority Ask List for Evelyn

1
Fix "Book appointment" conversion
Demote to Secondary, change trigger, or delete. This is the #1 issue corrupting all data.
2
Verify offline conversions reaching Smart Bidding
Script uploads daily via EC4L. Are they being processed? Can we see them in reports?
3
GA4 import ticket status
Key events need importing at MCC level (844-909-2450). Was the ticket opened?
4
Demote Google hosted Local Actions
Directions, Menu views, Website visits. These inflate conversion counts. Make them Secondary.
5
Why is Sewer underspending?
$150/day budget, $84/day actual (56%). Is it search volume? Bid caps? Quality score?
6
Enhanced Conversions follow-up
Divyashree booking link? Dhina case: 2-6744000040441
7
Automatic conversion creation OFF?
From Mar 16: Evelyn said turn this off in Settings. Was it done?
8
📞 3CX Call Tracking -> Google Ads Conversion Tag
We have a 3CX phone system with 352+ call records (caller phone, duration, timestamp, recording URL). Can we tag these as Google Ads conversions? Three options we want Evelyn's input on:

Option A: Google forwarding number on call extensions
Google provides a tracking number that forwards to (913) 963-1029. Calls auto-tracked. Does BSP qualify? Is this the "Calls from ads" conversion?

Option B: Upload 3CX calls as offline call conversions
Match caller phone from 3CX to GCLID from our bridge database. Upload via ConversionUploadService.UploadCallConversions. We already have the GCLID capture pipeline (bridge on port 8509). Need: conversion action type = UPLOAD_CALLS.

Option C: Website call click tracking (already partially working)
Click-to-Call is PRIMARY. Tracks when someone taps the phone number on the website. But doesn't track people who dial (913) 963-1029 directly from the ad or memorize the number.

What we have: 3CX API access, 364 ST call records with from_number + recording_url, GCLID bridge capturing click IDs, 99.2% customer phone coverage. What we need from Evelyn: Which method works best? Can she set up the Google forwarding number? Or should we use the API upload path?

🛣️ Landing Pages -- What Exists vs What's Missing

PageStatusCampaign Using It
/sewer-repair/✅ LIVESewer
/sump-pumps/✅ LIVE (ad fixed today)Sump Pump
/water-heater-repair/✅ LIVE but campaign pausedWater Heater (paused)
/plumbing-services/✅ LIVE but genericEmergency points here
/trenchless-sewer-repair/✅ LIVENone currently
/drain-cleaning/✅ LIVEDrain (paused)
/emergency-plumber/❌ 301 redirectAd removed already
/sewer-camera-inspection/❌ Needs buildingNone
/gas-line/❌ Needs buildingGas (paused)
/hydro-jetting/❌ Needs buildingNone
❓ Does Google penalize Quality Score when an ad's landing page 301 redirects? The old Sump Pump ad was doing this until today.

📅 BP X Evelyn — Apr 14 Follow-up

2:00–2:30 PM CT · 13 days since Apr 1 session
Agenda + asks + new data Evelyn may want
Book-appt conversion still broken Smart Bidding still starved 13 HCP reports deployed

🔄 What Changed Apr 1 → Apr 14

TopicApr 1 statusApr 14 status
Book appointment conversion7x inflatedPending Evelyn decision A/B/C still open
Offline conversions → Smart BiddingDaily 8 AM EC4LPipeline broken 25 invoice_events, ZERO uploaded. 17 silent no-uploads. Smart Bidding still starved.
GA4 MCC importPendingStill pending no ticket # from Evelyn side
Google Local Actions demotePrimaryStill Primary 30-sec UI click
Sewer underspending56% of $150/dayStill investigating need auction insights
/sewer-camera-inspection/ LPNeeds buildAudrey designed + built staging live, Bricks pipeline proven, pending QA
Attribution gap (Google vs real)67 vs 9 (7.4x)Cross-system data unified 4,271 HCP + 5,465 ST = 5,712 combined. Customer 360 live for Ashton.

🗓️ Apr 14 Agenda (30 min)

  1. 0:00-0:05 Book appointment conversion decision. Evelyn picks A/B/C. Recommending C, delete entirely, rely on offline ServiceTitan uploads. Widget clicks misrepresent intent.
  2. 0:05-0:12 Webhook pipeline diagnosis. Walk through the 25-event sample. Why 17 silent-no-uploads. Decide re-architect vs patch Sunday Ads fix logic.
  3. 0:12-0:16 GA4 MCC import. Evelyn status on key events (button_click_call, form_submit_booking, generate_lead, form_submission). Ticket # or escalation.
  4. 0:16-0:20 Demote Local Actions. Directions / Menu views / Website visits Primary → Secondary. Live on shared screen.
  5. 0:20-0:25 Sewer underspend root cause. $150 budget, $84 actual. Evelyn pulls auction insights live.
  6. 0:25-0:30 Landing page pipeline. /sewer-camera-inspection/ production push timing. Any paused campaign (Water Heater, Drain, Gas) Evelyn flags for reactivation post-LP.

Hard Asks for Evelyn

1
Decide the book-appointment conversion fix today. 13 days of 7x inflation is noise we cannot tune against.
2
Owner + ETA for GA4 MCC import. Same answer as Mar 16, Apr 1, and Apr 7. Ticket number or escalation.
3
Demote Local Actions on the call. 30 seconds in Google Ads UI. Unblocks clean conversion hierarchy.
4
Auction insights pull for Sewer campaign. Why $150/day budget spends only $84.

🧠 New Context Evelyn May Want

Attribution trust ladder is now live on the Nexus side. 13 HCP playbook reports shipped today. Hub: BSP_HCP_Reports_Hub.html.
5,712
Combined HCP + ST customers
$4.88M
Open estimates pipeline
38.0%
Close rate vs ST 39.2%
304
Customers $5K+ LTV
5,459
Blank lead_source (of 5,470)
89.2%
Under "Imported Default Campaign" legacy
Lead Source capture gap. 89.2% of customers sit under "Imported Default Campaign" legacy placeholder. When we try to match Google Ads clicks to HCP customers, attribution is near-zero. This is not a Nexus bug, it is a data-capture gap at the point of lead entry.
BU cleanup with Stephanie greenlit Apr 14. 2 real ST PATCH calls fired clean (Williams Sales→Install $621, Figorski Sales→Service $2,080). 21 rows queued for Ashton/Jordan review. Separate $1.46M stuck-Scheduled-jobs dry-run completed — awaiting Stephanie call.

Exit Criteria for Robert