How to Track Microsoft Ads Traffic & Contacts in HubSpot CRM

Question from Reddit user:

How do I view traffic/contacts generated by Microsoft Ads in Hubspot?

We are currently running a test campaign to see if Microsoft Ads could be valuable to our business.

I have already read other posts explaining that there is no current integration with Bing Ads in Hubspot.

However, in order to evaluate the effectiveness at all, is there any way to recognize which contacts were generated by Microsoft Ads?

Or recognize traffc from this source?

I have conversion tracking set up in Google Tag Manager but this is not fool proof.

Answer from Nabil:

The short answer is:

How to track Microsoft Ads traffic & contacts in HubSpot CRM?

You are correct that relying solely on browser-side tracking with UTMs and pixels is often not fool-proof due to ad blockers and privacy restrictions.

Since HubSpot lacks a native Microsoft Ads (Bing Ads) integration for robust attribution, the most effective and reliable solution is to create a custom, server-side data pipeline using the HubSpot API and the Bing Ads API.

This architecture allows you to capture the unique Microsoft Click ID (msclkid) on your website and use a server to directly retrieve rich campaign data from Microsoft Ads, pushing it immediately and accurately into a custom property on the HubSpot contact record, ensuring perfect lead attribution.

The long answer is:

The limitations you’re experiencing are common because HubSpot’s default attribution, particularly for ad platforms without a deep native integration like Microsoft Ads, relies on URL parameters (UTMs) which are easily stripped or blocked, or it may incorrectly classify the source as generic “Organic Search” due to how Bing works.

The recommended solution is a server-side tagging and API-to-API communication system.

First, you must ensure auto-tagging is enabled in Microsoft Ads, which automatically appends the msclkid to your landing page URLs.

Next, you use Google Tag Manager to reliably capture this msclkid and fire an event to a server-side environment like Stape or Google Cloud Platform.

This server acts as the central hub and executes a custom script that works as follows: upon a contact’s conversion (like a form submission), the script uses the captured msclkid to query the Bing Ads API.

The API then returns granular data about that exact click, including the campaign name, ad group, and search term.

Finally, the script uses the HubSpot API to directly update the newly created contact record, stamping it with this precise campaign information in a set of custom properties you create, such as “Bing Campaign Name” or “Paid Search Click ID.” This method is an excellent solution because it bypasses the unreliable browser-side tracking, ensuring high data quality and a complete, granular view of which Microsoft Ads efforts lead to contacts in HubSpot.

While it requires a bit of initial setup (which can be done cheaply using services like Stape’s free tier and minimal custom code), it delivers conversion data reliability that far surpasses standard UTM tracking.

About The Author