// CONVERSION TRACKING SPECIALIST
Your conversions stopped counting. I find out why.
10 years running campaigns taught me what broken tracking costs. Now I fix it: GTM, Tealium, GA4 and ad-platform pixels, traced from config to the live beacon and proven live.
lead clicks · home services
- 01 tag manager loaded ✓
- 02 typeof jQuery → undefined ✗
- 03 click listeners bound: 0 ✗
- ── patch: vanilla click bridge ──
- 04 bridge bound 6/6 tel · 3/3 CTA ✓
- 05 conversion beacon · value ok ✓ 200
- tracking cases resolved
- 200+
- industries
- 15+
- in digital media
- 10+ yrs
- on Upwork
- 5.0★
problems I fix
If it's not counting, it's probably one of these.
Dead click and form conversions
A redesign changed the selectors, or the site doesn't load jQuery, and nothing threw an error.
Chat and scheduling widgets
Leads happen inside iframes and Shadow DOM that your tags can't see.
Purchase and revenue
Wrong values, duplicate fires, missing order IDs.
Enhanced Conversions and match quality
EC that only looks enabled, low Meta EMQ, CAPI events that never dedupe.
Tags not loading or not publishing
Caching and delay-JS plugins, consent set to deny, label typos, changes saved but never published.
Call tracking
Number pools that don't swap, or swap the wrong number.
from 200+ cases
What the cases taught me.
Patterns from 200+ real tracking investigations.
- Nearly 1 in 4 "broken" conversions weren't broken. The job was proving what actually fired.
- 1 in 4 cases trace back to a site redesign or migration.
- 1 in 3 dead click conversions came from a site that doesn't load jQuery, so the listeners never bound.
- 1 character was the whole bug in about 15 cases: a stray space or quote in a conversion label.
- 30–50% Enhanced Conversions coverage can show up when EC was never set up. Google is guessing from page content.
case studies
Problems like yours, solved.
Home services
Four click conversions that could never fire
A home-services site's call and booking conversions were built on jQuery. The site never loaded jQuery. I rebuilt them in vanilla JS and proved them on the live beacon.
Read the case
Online certification courses
Low match quality and a purchase that fired on every reload
An online course seller's Meta purchases had weak match quality and re-fired on page reloads. I fixed both in GTM and verified one purchase per order.
Read the case
Shopify retail
47% of revenue with no source
A Shopify store's GA4 showed nearly half its revenue as Unassigned. I traced it to three causes and applied fixes for each.
Read the case
how I work
Evidence first. Then the fix.
-
01
Scope
What we know, what I'll check, and what I'm skipping. Before I dig in.
-
02
Evidence chain
Configured → published → live beacon. The UI isn't the truth. What fires is.
-
03
Fix
The smallest change that fixes the root cause, not the symptom.
-
04
Prove it
Verified on the live beacon, without firing fake conversions into your ad accounts.
If it can't be fixed from the tag manager, I'll tell you exactly who can fix it.
platforms
- GTM
- Tealium iQ
- server-side GTM
- GA4
- Google Ads
- Enhanced Conversions
- Meta Pixel + CAPI
- The Trade Desk
- Microsoft UET
- TikTok
- Shopify
- BigCommerce
- WooCommerce
- CallRail
toolkit
Tools I built so diagnoses take hours, not days.
- beacon-verify
- Proves a conversion beacon fires with the right label while blocking the vendor, so no fake conversions get recorded.
- Tealium API tooling
- Reads what's actually published instead of trusting the UI.
- Iframe scanner
- A Chrome extension that scores widget iframes and generates tracking code for them.
- GTM JSON editor
- Bulk container edits with Google Sheets sync.
"He went above and beyond the original request, delivered clear documentation of his work product..."
- Clear Communicator ×2
- Committed to Quality ×2
- Accountable for Outcomes
- Detail Oriented
Got a conversion that stopped counting?
Get a tracking audit