Section 04 · Where the phone calls actually come from
Calls & conversion economics
The call data looked flat, then spiked, then collapsed — until it was split by engine and landing page. Underneath: a Yahoo-labeled paid artifact, a genuinely flat Google core, and a real, masked commercial decline.
~20× the sessions, the same calls
The PAA bubble produced ~zero incremental phone calls; losing it should cost ~zero calls.
Corroborated by conversion rates: PAA traffic converts at ~0.1% (Dallas at peak: 21k sessions/mo → 15–40 form submits), and by the page-class decomposition below.
Summer call events: 44 → 123 → 35. Calling sessions: flat.
Windows: Jun 1–Aug 13 each year. Split by engine, the divergence disappears — 82 of 2025's 123 events came from a burst that wasn't Google, wasn't organic, and mostly wasn't even in-market. (Event counts also overstate callers: one 2024 session on /woodpeckers produced 12 events. Calling sessions are used throughout.)
R5 confirmed the owner's hypothesis: the burst was untagged Microsoft Ads (Yahoo syndicates Microsoft Ads). It landed on the homepage, converted at 14.9% (vs Google's 5.1% on the same page and window), was geographically out-of-market (Miami 82, Fort Myers 21, Orlando 8 sessions), with degraded engagement. Corrections that followed: TC Bing ads ran from ~May 2025, not "since Jan 2026"; paid masking of TC organic began May 2025; and the burst's 14.9% call rate matches the tagged bing/cpc signature of 10–14% — one consistent, still-unexplained high-rate paid pattern, not two anomalies.
A real commercial decline, confirmed against 2024
Google-organic only, by landing-page class. Calling sessions / sessions / conversion rate:
| Page class | Summer 2024 | Summer 2025 | Summer 2026 | Change driver |
|---|---|---|---|---|
| Service-area | 20 / 187 / 10.7% | 15 / 176 / 8.5% | 12 / 108 / 11.1% | 100% traffic (rate stable) |
| Service/content | 4 / 185 / 2.2% | 4 / 191 / 2.1% | 2 / 78 / 2.6% | Traffic |
| Homepage | 6 / 459 / 1.3% | 10 / 197 / 5.1% | 6 / 107 / 5.6% | Traffic loss offset by a real rate step-up (dates to May 2025 — unexplained site/instrumentation change) |
| Blog | 0 / 37 | 0 / 579 | 8 / 13,259 / 0.06% | Bubble donates 8 calls |
| Commercial rollup | 31 / 841 / 3.7% | 29 / 572 / 5.1% | 20 / 295 / 6.8% | Sessions −65% vs 2024 |
Conversion is not the problem anywhere. Every commercial class converts at or above its 2024 rate (service-area ~10–11% all three years). What's missing is commercial organic traffic: sessions −65% vs 2024, service-area calls 20→12 — purely traffic-driven. The aggregate only looks flat because the homepage rate step-up (+4.6 points) and 13k blog sessions (+8 calls) mask a −11 commercial call loss. GSC corroborates, S25→S26: commercial impressions 160k→34k (−79%), clicks 489→253 (−48%).
Why the dashboards said everything was fine
The open contradiction. If TC total call events are at an all-time high, why did the franchisee report a bad two weeks YoY? Candidate reconciliations: (a) the paid call events are partly phantom (the 10–14% rate); (b) real calls come via Google Business Profile / local pack — invisible to both GA and GSC — and fell there; (c) paid clicks are lower-quality (wrong intent or area). Discriminator: real call logs + GBP insights + a Bing UET/GTM double-fire audit. This is now the top data gap.
The tel-link hijack
A "Bing Ads Body" snippet (installed via the HFCM plugin in wp-admin — not in git) rewrites the phone link so Bing UET can fire before opening the dialer:
// Effect of the snippet, as observed in the live DOM: document.querySelectorAll('a[href="tel:469-423-9299"]').forEach(a => { a.href = "#"; // ← kills the GTM call_to_click trigger a.addEventListener("click", () => { uet_report_conversion(); // fire Bing conversion… window.open("tel:469-423-9299"); // …then open the dialer }); }); // Side effects: breaks long-press / copy / dialer in some browsers; // "#" scrolls to top on slow JS. Fix: keep the listener, don't rewrite // the href — UET can fire on click without preventing default.
Related June-2026 Dallas datapoint: quote conversions floored at 4 form_submit + 4 quote clicks — but the quote form was also broken that month (fixed July), so it isn't clean evidence of demand loss.
Where the network can't see at all
| Site | Condition | Detail |
|---|---|---|
| dallas | Call tracking dead | tel-hijack (above); GTM noscript fallback also missing (TC has it; same container both sites) |
| austin | GA4 property empty | GTM present but hostname missing from the container lookup; also loads a dead UA snippet pointing at a staging URL in production |
| pittsburgh, sc-ohio | No usable analytics | No GTM; dead UA only; empty GA4 properties |
| fort-pierce | Zero analytics of any kind | — |
| salt-lake-city | Works, awkwardly | Only via the legacy rollup, under the old "Click to Call" event name |
| florence | NXDOMAIN | The franchise actually operates at centralky.aaacwildliferemoval.com (works, GA 390759779); the dead florence GSC property is an orphan |
| san-antonio | Possible double-count | Loads two GTM containers — its 353 call events/90d may be inflated |
| phoenix, palm-beaches | Double-collect | Property + legacy rollup both collecting |
| Not in repo inventory | Rollup reveals extra production sites: columbia, kansas, clarksville, rockwall | |
No GSC property exists for Dallas — its search data comes from the root domain property, page-filtered. Also outside GA entirely: the separate July form-mail outage, in which ~358 leads were lost because the quote form had no persistence before wp_mail().