Microsoft Advertising (Bing) and Conversions Tracking
SOLVE
Hi All!
I want to track conversions with a PPC Bing ad that will open a Hubspot landing page with an embedded form.
After a person submits a form he is re-directed to a HubSpot landing page (thank you page).
I know we can track it inside the Microsoft platform. But, I wanted to know if it will be a good idea to take the Bing pixel and put it on the landing page (alongside the thank you page?)
Is there any best practice on this issue? Also, should I put a HubSpot tracking URL and use it as the bing ad URL?
The purpose is to track conversions (form submissions) of people who clicked the PPC Bing ad - were redirected to the landing page, submitted a form (a HubSpot embedded form in the HubSpot Landing page), and then redirected to another HubSpot landing page (thank-you page).
If the Bing Pixel should be added to the header of every page (both the landing page and thank you page) - what will I be able to track in HubSpot? Will we be able to track different keywords that the lead used in his Edge browser to find our ad? Form submissions?
happy to clarify some things for you. Regarding your points
1. Yes, but put it into the header of every page. You can do that globally by clicking the little cog icon in the top-right corner and go to Website > Pages >Templates > Site header HTML.
2. Yes, add the Thank-you page URL to your conversion settings of your campaign. And yes, you don't really have to deal with UTM parameters if auto-tagging within Bing is enabled. To clarify, though: The form and the page don't have these parameters. The URL that leads from your Bing ads to your landing page does.
3. Excellent plan. And yes, all the things you've mentioned can be tracked then and there within HubSpot.
thank you for reaching out to the community. I'm not a PPC expert, but I will to my best to help you out a little.
First let talk about UTM parameters or tracking URLs as you put it. Usually, Bing and other networks automatically add these and HubSpot can interpret these. To check if Auto-Tagging is enabled in your Bing account, you can follow this guide.
It's also worth looking into this and this help article by HubSpot. In these tables, you can see how HubSpot checks these parameters and sets the Original Source (+ Drill Down) properties.
Regarding the tracking pixel, I understand it as such, that you would generate one UET (Universal Event Tag) and put it in the <head> of the complete site. For HubSpot hosted pages, you could just go to the Settings > Website > Pages >Templates > Site header HTML. Or, if you have Google Tag Manager going, install the UET there.
Then, within the Bing Ads interface, you can create conversion events that would target the thank-you page. This is very similar to what you would do in Google Ads, actually.
Of course, you can see which form a lead converts to within HubSpot. You can also see the whole journey down to the pages (that is if tracking and cookies are enabled). If the keyword is identified through which the lead was coming from, you can also see that within HubSpot on the contact.
Hope all this information helps you a little bit. Please let us know if you need additional information.
If you found this post helpful, consider helping others in the community to find answers faster by marking this as a solution. I'd really appreciate it.
To sum things up and to make sure I understand I'll just re-write everything down here:
1. Create a UET tracking pixel and put it in the header of the thank you page.
2. Adding the thank you page URL (HubSpot landing page) in the conversion goal settings in Bing. No real need to create a tracking URL in HubSpot - there are UTM parameters in the embedded form that will be automatically populated on every form submission. Question is - HubSpot will be able to track all UTM parameters without using any HubSpot tracking code (remember - we are using only the bing tracking code in the thank you page).
3. I took the 3 assets (landing page, form embedded in this landing page, thank you page) and created a campaign. Will HubSpot allow me to track page views, form submissions and lead source (paid search)?
happy to clarify some things for you. Regarding your points
1. Yes, but put it into the header of every page. You can do that globally by clicking the little cog icon in the top-right corner and go to Website > Pages >Templates > Site header HTML.
2. Yes, add the Thank-you page URL to your conversion settings of your campaign. And yes, you don't really have to deal with UTM parameters if auto-tagging within Bing is enabled. To clarify, though: The form and the page don't have these parameters. The URL that leads from your Bing ads to your landing page does.
3. Excellent plan. And yes, all the things you've mentioned can be tracked then and there within HubSpot.
Microsoft Advertising (Bing) and Conversions Tracking
SOLVE
I have the Bing UET event tracking installed in Google tag manager that fires on every page, but for some reason hubspot isn't capturing and storing the msclkid from the url like it does for the gclid. I have the msclkid property setup in hubspot just like the gclid as a hidden field. The code I use for the microsoft click id is also very similar to the one that works for capturing and storing the gclid. Here's the code I'm using:
function getParam(p) { var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); }
function getExpiryRecord(value) { var expiryPeriod = 90 * 24 * 60 * 60 * 1000; // 90 day expiry in milliseconds return { value: value, expiryDate: new Date().getTime() + expiryPeriod }; }
function addMsclkid() { var msclkidParam = getParam('msclkid'); var msclkidFormFields = ['msclkid_field', 'msclkid']; // all possible msclkid form field ids here var currMsclkidFormField;
for(let field of msclkidFormFields) { if (document.getElementById(field)) { currMsclkidFormField = document.getElementById(field); break; } }
if (msclkidParam) { localStorage.setItem('msclkid', JSON.stringify(getExpiryRecord(msclkidParam))); }
var msclkid = JSON.parse(localStorage.getItem('msclkid')); var isMsclkidValid = msclkid && new Date().getTime() < msclkid.expiryDate;
if (currMsclkidFormField && isMsclkidValid) { currMsclkidFormField.value = msclkid.value; } }