Google Ads Conversion Infrastructure

Remaining Build Items

4 projects to complete the Google Ads conversion tracking infrastructure for Bright Side Plumbing

Completed (55%) Done Today (15%) Remaining (30%)
Tag Coverage
166/166 Pages
COMPLETE
EC4L DataLayer
Raw PII Live
FIXED TODAY
GTM Tags
Published
DONE TODAY
Geo Targeting
22 Locations
FIXED MAR 15
🟢
GA4 MCC Import
6 Events
READY TO DO
Value Rules
1.95x Multiplier
NEXT
Remarketing
Audience Build
WAITING
🚧
Iframe Tracking
ST Widget
COMPLEX

1 ServiceTitan Booking Widget Tracking

Capture conversion data from the cross-origin iframe on 21 service pages

Customer clicks Google Ad | v callbrightside.com (GCLID captured in cookie ✔) | v [ServiceTitan iframe] <-- CROSS-ORIGIN WALL --> User enters: name, email, phone Books appointment inside iframe | v Parent page CANNOT read iframe data (same-origin policy blocks access) | v Two possible bridges: OPTION A: postMessage Bridge iframe ---postMessage---> parent page ---> dataLayer ---> GTM ---> Google Ads (requires ST to support postMessage or custom JS injection) OPTION B: API-Only Path ST CRM ---> Nexus API script ---> Google Ads Offline Upload (hashed phone+email uploaded daily, matched to GCLID) (Sumana said: check with dev about GCLID capture in iframe)

Current State

GCLID capture on parent page -- Snippet #39 captures GCLID from URL params, stores in cookie (30-day expiry)
Offline conversion upload pipeline -- nexus_offline_conversions.py uploads hashed PII + revenue via Google Ads API daily
On-site PII capture from iframe -- Cannot read form fields due to cross-origin policy. This blocks EC4L "Step 3" for this path.

Next Steps

1
Check if ServiceTitan supports postMessage events on form submission
2
If yes: build a GTM Custom HTML tag that listens for postMessage and pushes PII to dataLayer
3
If no: confirm with Google that API-only upload is sufficient for EC4L matching on this path
4
Ask Evelyn/Dhina: Does Google match EC4L per-conversion-event or per-user-session?
21
Service Pages with Widget
~60%
of Bookings via Widget
0%
Widget PII Captured On-Site
100%
API Upload Working

2 GA4 MCC Import (6 Events)

Import GA4 key events at MCC level so Smart Bidding can see all conversion signals

The Problem

GA4 key events are linked to the MCC but NOT imported as conversion actions. Smart Bidding only sees 3 signals instead of 9+. Every dollar of ad spend is optimizing with incomplete data.

6 Events to Import

GA4 EventGoal CategorySet AsValue
button_click_callPhone Call LeadPRIMARY$150
form_submit_bookingBook AppointmentPRIMARY$150
generate_leadSubmit Lead FormPRIMARY$150
form_submissionSubmit Lead FormSECONDARY$50
first_time_phone_callContactPRIMARY$200
repeat_phone_callContactSECONDARY$50

Steps (Must Be Done in UI)

1
Google Ads MCC (844-909-2450) > Goals > Conversions > Summary
2
Click "+ New conversion action" > "Import"
3
Select "Google Analytics 4 properties" > "Web" > Continue
4
Select all 6 key events > "Import and continue"
5
Set each as PRIMARY or SECONDARY per table above
6
Set Goal Category for each (Phone Call Lead, Book Appointment, etc.)
7
CRITICAL: Check for duplicate PRIMARY actions in same category. One PRIMARY per category max.
9+
Signals After Import
3
Signals Currently
3x
More Bidding Data
7 days
Stabilization Period

3 Conversion Value Rules

Tell Smart Bidding that KC Metro phone calls are worth 2x more than random web clicks

The Math

1.5x
KC Metro Location
(15mi radius OP)
x
1.3x
Phone Call
Conversion
=
1.95x
KC Metro Phone Call
Value Multiplier

A $150 conversion from a KC phone call becomes $293 in Smart Bidding's eyes. It will aggressively pursue these leads.

Implementation

1
Google Ads > Goals > Conversions > Value rules
2
Create Rule 1: Location = Kansas City Metro (15mi radius Overland Park) = 1.5x
3
Create Rule 2: Conversion Source = Phone Call = 1.3x
4
Rules compound automatically. KC Metro + Phone = 1.95x
5
Also available via API: ConversionValueRuleService

Why This Matters

Right now Smart Bidding treats a phone call from a Leawood homeowner the same as a web form from a bot in India. Value rules fix that. BSP's average sewer job from a KC phone call is $8,679. A random web form converts at less than 2%.

4 Remarketing Tag Setup

Build audience lists so we can re-target visitors who didn't convert on first visit

Current State

Remarketing tag exists in GTM -- "Google Ads | Remarketing Tag" is configured but needs verification
Conversion Linker updated today -- "Enable linking on all page URLs" checked (3P to 1P cookie conversion)
Audience lists not configured -- no segments built for sewer visitors, form abandoners, repeat visitors
Google team needs to help -- Sumana said different team handles remarketing, rep will reach out

Target Audience Segments

AudienceDefinitionValue
Sewer Page VisitorsVisited /sewer-repair/ or /trenchless-sewer-repair/Highest ($8,679 avg ticket)
Form AbandonersStarted form on /contact-us/ but didn't submitHigh (showed intent)
Multi-Page VisitorsViewed 3+ service pages in one sessionHigh (researching)
Return VisitorsVisited 2+ times in 30 daysMedium (considering)
Emergency VisitorsVisited during off-hours (6PM-8AM, weekends)Very High (urgent need)

Implementation Timeline

1
Wait for Google's remarketing team to reach out (Sumana escalated)
2
Verify remarketing tag fires on all pages via Tag Assistant
3
Build audience segments in Google Ads Audience Manager
4
Create RLSA campaigns (remarketing lists for search ads) for sewer keywords
5
Set up Display remarketing for brand awareness (lower priority)

🚀 Master Timeline

Tag Coverage 166/166 DONE Mar 18

All pages tagged with AW-17179856077. Tag Gateway live at /onox.

Geo Targeting Fixed DONE Mar 15

22 KC Metro locations on all 7 campaigns. Stopped $17K+ global waste.

EC4L DataLayer + GTM Tags DONE Apr 7

Contact form sends raw PII to Google Ads. Tag fires, data flows. Sumana call complete.

GA4 MCC Import NEXT

6 GA4 events into MCC. 15 min in UI. Smart Bidding gets 3x more signal.

Conversion Value Rules NEXT

KC Metro 1.5x + Phone 1.3x = 1.95x. 10 min in UI or via API.

4

Remarketing Audiences WAITING

Google remarketing team reaching out. 5 audience segments defined.

5

Iframe Widget Tracking COMPLEX

postMessage bridge or API-only path. Requires ST investigation.

Bright Side Plumbing

Google Ads Account: 726-955-5791 | MCC: 844-909-2450 | GTM: GTM-M3L9374