Skip to content
HubSpot Solution Blueprint

Multi-Channel Attribution for Medical Device Sales: Bridging Clicks, Calls, and Subdomains

Hero featured image

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-header-icon

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-header-icon

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-header-icon

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-header-icon

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-header-icon

Our Approach

A global Identifier strategy using Google Tag Manager solved this. We deployed a custom JavaScript snippet across the HubSpot and BigCommerce environments that captured the user’s unique HubSpot utk and passed it into the Formstack iframe as a hidden field. To solve the phone call gap, we integrated Call Tracking Metrics (CTM) with HubSpot. We used 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.

impact-header-icon

Impact

check-icon

Offline Calls Linked to Ads at $55.65 CPA

Successfully linked offline phone calls to specific digital ad campaigns, allowing the team to identify that their Facebook REVAMP structure was driving leads at a $55.65 CPA.
check-icon

7 Conversion Goals Re-Tracked Across Platforms

Restored tracking for 7 core conversion goals that previously suffered from attribution loss across the HubSpot, Formstack, and BigCommerce platform jumps.
check-icon

Verified CPL Accuracy

Provided the client with a true Cost-Per-Lead (CPL) metric that included both digital form fills and trackable call-ins, leading to more efficient ad spend allocation.
check-icon

Operational Transparency

Identified internal sales response failures by tracking call data against the 10-minute response requirement, triggering a dev remediation plan for sales alerts.
Technical Blueprint
1
Standard GTM tracking often fails inside iframes like Formstack. We implemented a script on the parent HubSpot page that listens for the iframe load and pushes the session CID and email address into the iframe’s hidden fields, ensuring the lead record in the CRM contains the full marketing history.
2
Configured CTM to dynamically replace the phone number on the website based on the visitor’s source like Organic or Facebook. This allows the system to attribute a phone call to a specific keyword or ad set.
3
Set up Linker tags in Google Tag Manager to ensure that when a user moves from the primary domain to the shop subdomain, the Google Analytics Client ID is appended to the URL, preventing the session from being split into two.
4
Imported 7 core events from GA into Google Ads, including patient-quiz starts and rental-specialist call events, enabling the ad platforms algorithms to optimize for actual lead quality rather than just page views.
Reconciliation of multi-channel marketing attribution across digital and offline channels.

An attribution architecture resolving digital session fragmentation across subdomains and iframe embeds. Utilizing a custom JavaScript bridge, it maps the HubSpot tracking cookie into hidden fields while using Dynamic Number Insertion (DNI) to link offline phone calls to digital session IDs. This restores core conversion tracking and validates multi-channel return on ad spend.

FAQ

Why use Call Tracking Metrics (CTM) instead of HubSpot’s native call tracking?
HubSpot’s native tracking is excellent for outbound sales calls, but it lacks the Dynamic Number Insertion (DNI) capabilities required to attribute inbound calls to specific digital ad campaigns. CTM allows us to bridge that gap, treating a phone call with the same level of attribution data as a form fill.
Does cross-domain tracking slow down the site?
If implemented poorly, yes. We mitigate this by using a single Google Tag Manager container with conditional triggers. This ensures that only the necessary tracking scripts fire on specific pages, maintaining high Core Web Vitals while capturing deep attribution data.
footerCTA footerCTA-mobile
Spice up your inbox
Sign up for our newsletter
Don't worry - we only average, like, two emojis per subject line.