Difference in Clicks on Platform vs. UTM metrics

Hello -

I currently have ads running on google, facebook and linkedin, each that I set up with unique UTM codes to ensure we’re tracking the traffic from each site into our hubspot campaign. However, the metrics are not aligning, we’re seeing few views on our UTM links than the ad plaforms are reporting.

  • Linkedin is showing 3 clicks, the UTM code is showing 2
  • Facebook is showing 27 clicks, the UTM code is showing 2
  • GoogleAds are showing 15 clicks and 1 conversion, the UTM code is showing 7 views and no new contacts.

Much appreciate any help!

Hi @StevensM,

Thanks for reaching out.

I want to tag in some subject matter experts to see if they have some suggestions.

Hi @MatthewShepherd @Veronique @Aakar, would you be able to share your thoughts with @StevensM?

Thanks!
Jess

Thanks @JessicaH

Hi @StevensM

It’s not clear how you’ve set up the UTM parameters and how it is being tracked in your campaign. I hope you’re using the standard utm_source, utm_medium, & utm_campaign. Here’s a HubSpot knowledge base article that will help you standardize your utm_ parameters.

Anyways coming to your point, yes it’s possible that clicks and views (traffic) do not match. A user can click multiple times on your ads but it could be still counted as a single view on the website. Or a user clicks the ads but leaves the site ASAP, in this case, the click is counted on the ad platform however it will not appear as session/view in your website traffic. Here’s an article from Google that might help understand the difference between clicks & views.

Thanks.

This is a common and frustrating issue, and it stems from how the ad platforms and your analytics system like HubSpot track things differently.

The core reason you see fewer views on your UTM links than the platforms report is due to two main factors: click tracking methodology and client-side tracking interference.

First, the ad platforms (LinkedIn, Facebook, Google Ads) count a “click” the instant a user engages with the ad, often at the server level, sometimes even before the landing page starts to load.

Your UTM tracking, however, relies on a script (usually Google Analytics or the HubSpot tracking code) loading successfully on the destination page, reading the UTM parameters from the URL, and then sending that information back to HubSpot.

If a user clicks the ad but bounces back quickly before the page fully loads, has an ad blocker, has javascript disabled, or faces a network interruption, the ad platform registers the click, but the UTM tracking never fires.

This explains why Google Ads shows a conversion but the UTM shows no new contacts – the platform’s conversion tracking often relies on a different, more robust method or server-side confirmation, while your contact tracking is being blocked or missed on the page.

To solve this gap and improve your tracking accuracy, a modern, server-side tracking setup is the most reliable long-term solution.

A setup involving the HubSpot API in conjunction with Conversions APIs from the major platforms offers a robust, future-proof approach.

By using the LinkedIn Conversions API, the Facebook Conversions API, and the Google Ads API, you can send conversion data directly from your server (or an intermediary service) to the ad platforms.

This bypasses the client-side issues like ad blockers and browser restrictions that often prevent on-page tracking from working.

The server-side data flow would look something like this: a service like Stape or a more custom solution on Google Cloud Platform receives the data first, likely via Google Tag Manager (GTM) sending data to a server container.

This GTM server container can then normalize the data and use the HubSpot API to ensure your customer data platform gets the accurate view and, simultaneously, use the platform-specific APIs to report the accurate conversion back to the ad platforms.

This allows you to track key Standard Events like PageView, ViewContent, AddToCart, and Purchase much more reliably.

Finally, incorporating the Google Analytics Data API allows you to pull the cleaned, server-side data directly into your reporting tools, creating a single, trustworthy source of truth that closely aligns with the ad platform counts because it is less susceptible to client-side failures.

This holistic, server-side approach minimizes discrepancies and gives you a much clearer picture of your campaign performance.

This comment was generated with the assistance of an AI tool, incorporating my expertise in conversion tracking.