GA4

Microsoft Ads (Bing Ads) in Google Analytics 4: tracking and cost data

GA4Alyona Samovar7 min read

Microsoft Ads (Bing Ads) in Google Analytics 4: tracking and cost data

To see Microsoft Ads (formerly Bing Ads) in Google Analytics 4 you need two things: UTM tags on the ad URLs, so GA4 can name the traffic, and a cost import, so GA4 knows what the clicks cost. There is no account link between the two products like the one between GA4 and Google Ads. Microsoft Advertising adds the tags for you if you turn on auto-tagging, and GA4 takes the spend through campaign data import.

This guide covers both steps with the exact values each side expects, the reason Bing clicks show up as organic or referral, and what to do when campaign-level cost inside GA4 is not enough.

Why Microsoft Ads traffic is missing or mislabelled in GA4

Why Microsoft Ads traffic is missing or mislabelled in GA4

GA4 classifies a session from its URL parameters and its referrer. A click on a Microsoft ad without UTM tags arrives with bing.com as the referrer and nothing else, so GA4 reports it as bing / organic or as a referral. The paid clicks are there. They are counted in the wrong row.

If bing / cpc is not showing in Analytics, check these in order:

  1. Auto-tagging of UTM is off in the Microsoft Advertising account.
  2. The site or a redirect removes URL parameters. Microsoft’s help page notes that auto-tagging “will only work if your website allows arbitrary URL parameters”.
  3. Manual tags in the final URL use other values, for example utm_medium=ppc in one campaign and paid in another.

Step 1. Turn on UTM auto-tagging in Microsoft Advertising

Step 1. Turn on UTM auto-tagging in Microsoft Advertising

The steps from Microsoft’s documentation (How do I add UTM tags to my landing page URL?, checked October 2026):

  1. In the left navigation, hover over Campaigns and select Settings, then Account level options.
  2. Under Auto-tagging of UTM, select Add UTM tags to my destination URLs.
  3. Choose whether to replace all existing tags or to keep your tags and add the missing ones.
  4. Select Save.

Microsoft Advertising Account level options with two boxed settings: Auto-tagging of Click ID, and Auto-tagging of UTM with the option Keep my existing tags and add any that are missing selected.

Microsoft then appends these tags when an ad is shown:

Tag Value Microsoft sets
utm_source bing for search ads
utm_medium The channel, cpc for search ads
utm_campaign The campaign name
utm_content The ad group name
utm_term The keyword, or the product group for product ads

A tagged URL looks like this:

https://www.example.com/?utm_source=bing
  &utm_medium=cpc&utm_campaign=Sales
  &utm_content=Clearance&utm_term=Shoes

The source and medium depend on the ad format. Microsoft’s page lists them, and this matters in step 3:

Microsoft Advertising format utm_source utm_medium
Search bing cpc
Audience Ads msads cpm
Shopping Ads msads cpc
Video bing_video cpc
Performance Max msads campaign suffix cross-network

Microsoft marks this per-format table as a feature that not every account has yet. Check your own landing page URLs after a test click to see which values your account sends.

Two cautions from the same page. If you also keep manual UTM tags in the final URL or final URL suffix, auto-tagging can duplicate parameters, so test the result. And the tags are added when the ad is displayed, so you will not see them in the URL field of the ad editor.

The Click ID is a different setting. Auto-tagging of Click ID adds msclkid to the URL. Microsoft Advertising uses it for its own conversion tracking through the UET tag. GA4 does not read msclkid and does not need the UET tag. Keep both on if you track conversions in Microsoft Advertising; they do not affect what GA4 reports.

The Turning Point

OWOX Data Marts

See your first report built in real time. 15 minutes.

  1. Connect your data warehouse
  2. Pick your metrics
  3. Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

Book a Demo

We'll use your actual use case

Step 2. Check the traffic in GA4

Step 2. Check the traffic in GA4

After a day of traffic, open Reports, Acquisition, Traffic acquisition and switch the first column to Session source / medium. You should see bing / cpc, and with campaign as a second dimension, your Microsoft Advertising campaign names.

In GA4’s default channel group, bing / cpc is Paid Search: Bing is on Google’s list of search sites and cpc matches the paid medium pattern. msads / cpm from Audience Ads is a different case: cpm is one of the mediums GA4 assigns to Display. The rules are in the guide to the GA4 default channel group.

At this point GA4 shows sessions, key events and revenue for Microsoft Ads. It shows no cost, so there is no ROAS yet.

Step 3. Import Microsoft Ads cost data into GA4

Step 3. Import Microsoft Ads cost data into GA4

GA4 has direct import connections for Meta, Pinterest, Reddit, Snap and TikTok. Microsoft Advertising is not on that list, so its spend goes through a file, a Google Sheet or a warehouse table (Import campaign data, checked October 2026).

Export the spend from Microsoft Advertising

  1. Open Reports and choose the Campaign report under default reports.

Microsoft Advertising Default reports list with the Campaign report marked. This report holds spend, clicks and impressions per campaign.

  1. In Modify columns, add Date so that the report has one row per campaign per day.

Microsoft Advertising Modify columns dialog: Date is found by search, added, and appears first in Selected columns, above Account, Campaign, Impressions, Clicks and Spend.

  1. Set the date range, and schedule the report to arrive daily as a CSV attachment if you plan to repeat this.

Microsoft Advertising report scheduling form with frequency, recipient, format and the option to include the report as an email attachment.

Shape the file for GA4

GA4 expects these columns:

Column Value for Microsoft Ads
Campaign source bing (or msads, bing_video, as tagged)
Campaign medium cpc (or cpm, as tagged)
Date YYYY-MM-DD
Campaign name Exactly as in utm_campaign
Campaign ID Optional, matches utm_id if you add it
Cost, clicks, impressions Daily values
Currency ISO code, for example USD

GA4 joins on source, medium and date, and the match is exact. If your account runs Search and Audience campaigns, their spend belongs in separate rows with bing / cpc and msads / cpm. One file that labels all Microsoft spend as bing / cpc gives search campaigns the cost of the audience campaigns.

Upload it

In GA4 open Admin, Data collection and modification, Data import, create a data source for campaign data, upload the file and map the columns. The full walkthrough, including how to read the match rate, is in the guide to GA4 cost data import.

Once the import has processed, which can take up to 24 hours, the Non Google campaign report shows Microsoft Ads clicks, cost and impressions next to sessions.

GA4 Non-Google cost report by session source / medium with columns for Non-Google clicks, cost, impressions and return on non-Google ad spend. The last row is bing / cpc.

What you still cannot see in GA4

What you still cannot see in GA4

  • Nothing below the campaign. The import schema has no ad group, ad or keyword. GA4 receives the keyword in utm_term for sessions, but the cost stays at campaign level, so there is no cost per keyword.
  • The file has to be refreshed. Microsoft adjusts costs after the day closes. Google recommends re-uploading the same campaigns daily.
  • Imported cost is not in the GA4 BigQuery export, and it cannot be used in audiences or exploration segments.
  • Every other platform is a separate file with its own export format and its own naming.

For an account that spends on Microsoft Ads only occasionally, the manual file is enough. For a team that reports on five platforms every week, it is a recurring job with a known failure mode: one renamed campaign and the match rate drops.

Microsoft Ads spend next to GA4 data in your warehouse

Microsoft Ads spend next to GA4 data in your warehouse

The alternative is to stop moving spend into GA4 and bring both into one place where they can be joined at any level.

OWOX Data Marts has Microsoft Ads as a data source. It loads the ad performance report into your warehouse: Google BigQuery, Snowflake, AWS Redshift, AWS Athena or Databricks. GA4 reaches BigQuery through its own native export. With both in the warehouse, an analyst writes the SQL that joins spend to sessions and revenue by campaign and date, saves it as a Data Mart, and reports on it go to Google Sheets or Data Studio (the former Looker Studio) on a schedule.

What that changes for the marketer: spend at ad group and keyword level is available, the join does not depend on a file someone remembers to upload, and Microsoft Ads sits in the same table as Google Ads and Meta.

What it does not do: OWOX Data Marts does not push cost data into GA4, and it does not write the join for you. The join logic is the analyst’s SQL. GA4’s own reports stay as they are unless you also point GA4’s campaign data import at a table in the warehouse, which Google supports for BigQuery, Snowflake and Amazon Redshift.

The steps are in two guides: loading Microsoft Ads into BigQuery, and blending GA4 conversions with ad spend.

Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

  • No AI hallucinations
  • Analyst-governed definitions
  • Every number traces to SQL
Get started free

FAQ

Frequently Asked Questions

Why is Microsoft Ads (Bing) traffic not showing as bing / cpc in GA4?

Usually because UTM auto-tagging is off in Microsoft Advertising, a redirect or the site strips URL parameters, or manual tags use other values. Without tags, clicks arrive as bing / organic or as a referral.

How do I turn on UTM auto-tagging in Microsoft Advertising?

In Microsoft Advertising go to Campaigns, Settings, Account level options, and under Auto-tagging of UTM select Add UTM tags to my destination URLs. Choose whether to replace existing tags or keep them and add the missing ones, then save.

Can I import Microsoft Ads costs into GA4 automatically?

GA4 has no direct connection for Microsoft Advertising. Its spend is imported through campaign data import from a CSV file, Google Sheets or a warehouse table, with source and medium matching your UTM tags.

Who wrote this

Alyona Samovar

Alyona Samovar · Senior Digital Analyst

Alyona Samovar is a Senior Digital Analyst who spent years at OWOX helping enterprise clients design analytics systems, build BigQuery reporting pipelines, and optimize marketing measurement. She specializes in SQL-based analytics, data modeling, and turning raw marketing data into actionable insights. Alyona writes about practical analytics workflows, BigQuery best practices, and data-driven decision-making.