Multi-Channel Attribution for Medical Device Sales: Bridging Clicks, Calls, and Subdomains
A medical device provider lacked visibility into which Facebook ads drove high-value phone consultations.
We engineered a unified attribution bridge using Google Tag Manager and Call Tracking Metrics (CTM). This maintained the HubSpot tracking cookie across embedded Formstack iframes and BigCommerce subdomains to deliver full-funnel ROAS tracking.
Executive Summary
Context
A hardware provider in the oxygen concentrator space was running high-spend Facebook and Google Ads campaigns but lacked a unified way to track which ad sets were driving the most valuable Rent-To-Own phone calls and medical quiz fills.
What We Built
A unified tracking architecture using Google Tag Manager and custom JavaScript to maintain session continuity across three domains, integrated with Call Tracking Metrics (CTM) for full-funnel attribution.
Tech Stack
- HubSpot CMS: Top-of-funnel tracking
- Call Tracking Metrics (CTM): Dynamic number insertion (DNI) and call-to-lead mapping
- Google Tag Manager (GTM): The central orchestration layer
- Facebook Pixel & GA: Conversion goal alignment
- BigCommerce: Subdomain transaction tracking
Not a fit for low-touch eCommerce where phone calls are not a primary conversion vector or for organizations using a single-platform, monolithic tech stack.
The Challenge
Standard tracking scripts lose session IDs when users transition from HubSpot CMS to embedded Formstack iframes or BigCommerce subdomains. Because oxygen concentrators are high-consideration purchases, a significant percentage of users converted via phone. Without a technical bridge, the marketing team was unable to credit Facebook ad spend to the high-value phone consultations that closed the majority of their business.
Our Approach
A global identifier strategy built in Google Tag Manager solved this. We deployed a custom JavaScript snippet across the HubSpot and BigCommerce environments that captured each user's unique HubSpot utk and passed it into the Formstack iframe as a hidden field. To close the phone-call gap, we integrated Call Tracking Metrics (CTM) with HubSpot, using Dynamic Number Insertion (DNI) to show each visitor a unique phone number. When that number was dialed, CTM recognized the digital session ID, pushed the call data into HubSpot, and mapped it back to the original Facebook ad click.
This engagement is part of our reporting + analytics work for healthcare & wellness organisations.
Impact
Offline Calls Linked to Ads at $55.65 CPA
Offline phone calls now link to the ad campaign behind them, which showed the restructured Facebook campaigns producing leads at a $55.65 CPA.
7 Conversion Goals Re-Tracked Across Platforms
Verified CPL Accuracy
Operational Transparency
Identified gaps in sales response times, tracked against the 10-minute response requirement, and triggered a dev remediation plan for sales alerts.
We configured CTM to dynamically replace the phone number on the website based on the visitor's source, such as organic search or Facebook, so the system can attribute a call to a specific keyword or ad set.
We set up Linker tags in Google Tag Manager. When a user moves from the primary domain to the shop subdomain, the Google Analytics Client ID appends to the URL, keeping the session from splitting in two.
We imported 7 core events from GA into Google Ads, including patient-quiz starts and rental-specialist call events, so the ad platform's algorithms could optimize for actual lead quality rather than page views alone.
Standard tracking used to lose the session ID when a visitor moved from HubSpot CMS into a Formstack iframe or a BigCommerce subdomain. Phone calls, which closed most of the business, had no digital trail at all. Now each visitor's HubSpot "utk" is passed into the Formstack iframe as a hidden field. Call Tracking Metrics shows each visitor a unique number, and when it's dialed, CTM maps the call back to the original Facebook ad click.
FAQ
HubSpot's native tracking works well for outbound sales calls, but it lacks the Dynamic Number Insertion (DNI) capability needed to attribute inbound calls to specific digital ad campaigns. CTM closes that gap, giving a phone call the same attribution data as a form fill.
If implemented poorly, yes. We avoid that by running a single Google Tag Manager container with conditional triggers, so only the necessary tracking scripts fire on a given page. Core Web Vitals stay high even while the site captures deep attribution data.
Continue reading