SteerAds
Microsoft AdsTutorielOptimisation

Importer Google Ads vers Microsoft Ads en 2026

Importing Google Ads into Microsoft Ads has become a standard operation in 2026, but 40% of observed imports break on conversions or audiences. This tutorial walks the full procedure: what imports, what doesn't, UET mapping, copying negatives, and the 6 mistakes that derail a migration.

Matt
MattTracking & Data Lead
···9 min read

The Microsoft Advertising native import tool migrates a Google Ads campaign in 10 to 30 minutes — but on accounts observed in public Google Ads benchmarks, 35 to 45% of imports show at least one major post-migration anomaly (mismapped conversions, empty audiences, lost negatives). Microsoft Advertising holds 9% of desktop search in the U.S. and 4% in France in Q4 2025 (StatCounter); the market is worth the detour, but a botched import kills the experience starting day 1

This guide isn't a marketing overview: it's the ops procedure applied in production. Campaign-by-campaign mapping table, what imports vs what doesn't, UET copy, audiences to rebuild, and the 6 mistakes that derail one migration in two. If you're starting on Microsoft Ads, first read our Microsoft Ads beginner guide and our Microsoft Ads vs Google Ads comparison.

How does the Microsoft Ads native import tool work?

The Google Ads to Microsoft Ads import tool is a service managed directly inside the Microsoft Advertising interface, accessed through Tools > Import from Google Ads. The principle: authenticate your Google Ads account via OAuth, select sub-accounts or campaigns to import, choose a mode (One-time or Schedule), and launch processing. Microsoft reads the Google Ads API in read-only, transforms entities to its own schema, then injects into your Microsoft account. Official documentation on Microsoft Advertising help.

Two import modes exist. One-time: a single import at a given moment, ideal for the initial migration or for testing. Schedule: recurring import (daily or weekly) that continuously syncs changes. Schedule is useful for 30 days after cutover to absorb adjustments made on the Google side without manually redoing everything, but becomes counterproductive beyond that: your Microsoft account has its own optimization logic and a permanent sync erases those specifics.

The import report is exhaustive. It lists for each entity: number of objects imported, number failed (with reason), warnings on degraded mappings. It's the document to keep — it lets you understand where the import cheated or simplified, and where manual intervention remains mandatory. Across observed imports, the share of imported objects with no warning ranges between 78 and 88% depending on source account complexity.

The import engine queues each sub-account separately. For an account with 5 sub-accounts, plan 30 to 60 minutes total. Microsoft also applies progressive quotas on the first imports of a fresh account: if you import 50,000 keywords at once on a freshly created account, the API may throttle and queue some of it. Practical workaround: import in chunks (1 sub-account or 5-10 campaigns at a time) rather than total bulk.

What imports automatically (and what to verify)

Import covers most structural entities of a Google Ads account, but with important nuances by object type. Here's the consolidated mapping table we use as a post-import checklist.

To compare your CPC to 2026 medians by vertical, our CPC calculator returns the result instantly.

Reading the table: structural entities (campaigns, ad groups, keywords, creatives) import cleanly at 95%+. Tracking- or first-party-data-tied entities (conversions, audiences, Customer Match) never truly import — Microsoft recreates the shell but content starts empty. That's import trap number one: you see 1,200 active conversions in the report, but none records until the UET tag is placed on the site.

Bid strategies are mapped with a few limits. Target CPA and Target ROAS carry over identically (with their target values). Maximize Conversions and Maximize Conversion Value are also supported. By contrast, manual bidding with eCPC sometimes converts back to plain Manual CPC — verify systematically after import. For details on equivalent bid strategies on the Microsoft side, see our detailed Microsoft Ads vs Google Ads comparison.

Ad extensions generally import well (sitelinks, callouts, structured snippets), but call extensions require verification of the phone number format (mandatory E.164 international format on Microsoft, vs local format tolerated on Google). Location extensions linked to Google My Business don't transpose automatically — you must link your Microsoft account to Bing Places (Microsoft equivalent) to activate native location extensions.

Key insight :

Across observed imports, roughly 78 to 88% of structural entities pass without warning, but 100% of conversions and audiences require post-import recreation. Never judge an import "successful" on the sole criterion of campaigns imported — always verify tracking and audience lists before activating budget.

What does NOT import (and must be recreated manually)

This is the most poorly documented zone of the migration. Six entity families don't import (or import as empty shells), and forgetting one of them breaks performance starting day 1.

  • Remarketing audiences. The import recreates the audience name and filter rules (e.g. "visitors who added to cart without purchasing, last 30 days"), but the audience starts strictly empty. Technical reason: an audience is tied to a cookie domain. The Google Ads/GA4 cookie on your domain isn't accessible to Microsoft. Solution: let the UET tag run for 7 to 30 days for audiences to fill on the Microsoft side. No path to transfer Google audience members into Microsoft.
  • Customer Match (hashed CRM lists). No direct import. You must export your CRM list (emails, phone numbers, addresses), hash it in SHA-256, and re-upload it on the Microsoft Advertising side. The procedure is identical to Google on the hash side, the upload simply happens via Tools > Audiences > Customer list. Microsoft accepts the same formats (CSV with Email, Phone, FirstName, LastName, ZipCode, CountryCode columns).
  • Account-level negatives. The import imports campaign- and ad-group-level negatives, but not account-level negatives (Account-level negative keywords). It's the most frequent mistake: the list of 200-300 global negatives you patiently built on Google Ads disappears. Solution: export via Google Ads Editor, copy-paste into Microsoft Editor, re-inject at account level. See our 30-day launch checklist for the full procedure.
  • Google Ads Scripts. The Google Ads Scripts JavaScript API isn't ported to Microsoft Ads Scripts (which has its own API). If you have 5 automation scripts on the Google side (budget alerts, auto-negatives, CPC anomalies), they must be rewritten on the Microsoft side. Business logic stays portable, implementation differs. See our Microsoft Ads Scripts guide for 8 ready-to-paste scripts.
  • IP exclusions. Account-level IP exclusions don't import. If you exclude your office IPs, known competitors, or identified bots, copy them manually. Microsoft accepts the same formats (IPv4 and IPv6, with wildcard for ranges).
  • UET conversions. Conversion goals import as a shell (name + counting parameters), but the UET tag is never placed automatically. Until you install UET on your site, conversions record zero. The most critical point — detailed in the next section.

To these 6 families add a few minor details: automated rules don't carry over, custom Display ads (image ads) aren't always accepted by Microsoft based on dimensions, and certain Google Ads labels are ignored. Document these gaps in advance to avoid surprises.

UET vs gtag: mapping conversions correctly

The UET (Universal Event Tracking) tag is the tag specific to Microsoft Advertising — it sets its own first-party cookie, measures its own conversions, and feeds Smart Bidding on the Microsoft side. It doesn't replace the Google Ads conversion tag: the two must coexist. A firing conversion sends both a Google Ads hit and a UET hit, each counted independently in its platform.

Here's the base UET snippet to place in the site <head> (or via GTM):

<script>
(function(w,d,t,r,u){
  var f,n,i;
  w[u]=w[u]||[],f=function(){
    var o={ti:"YOUR_UET_TAG_ID", enableAutoSpaTracking: true};
    o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
  },
  n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){
    var s=this.readyState;
    s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
  },
  i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
})(window,document,"script","//bat.bing.com/bat.js","uetq");
</script>

Replace YOUR_UET_TAG_ID with the ID provided in Microsoft Advertising > Tools > UET Tag. The recommended method in 2026 stays GTM: a single trigger (e.g. "Purchase event") fires in parallel the Google Ads conversion tag and the UET tag, with the same transaction_id on the event_id side to allow deduplication if you move to server-side.

To compare functional mapping of the two tags:

Events are the cornerstone of UET tracking. Where Google Ads conversion uses a Conversion ID + Conversion Label per goal, UET uses customizable event names (purchase, lead, signup) with optional parameters (revenue, currency). Practical rule: create in Microsoft Advertising as many Conversion Goals as you have on the Google Ads side, with exactly the same name to ease parallel tracking and comparative cross-platform analysis.

To activate Microsoft Enhanced Conversions, the principle is the same as Google: send SHA-256 hashed email, phone, address in the event payload. This improves conversion matching against ITP signal loss. See Microsoft Enhanced Conversions documentation and our complete UET conversion tracking guide.

For tracking basics on the Google side and parallel setups, read our Google Ads conversion tracking guide.

Negatives and audiences: the copy procedure

Negatives and audiences are the two entity families that require the most manual work post-import. Here's the procedure we apply for each migration on accounts observed in public Google Ads benchmarks.

Account-level negatives

The import only takes campaign- and ad-group-level negatives. If you've built a list of 200-300 global negatives on the Google Ads side (off-topic words, competitor brands, sensitive terms), it's lost in the migration. Copy procedure:

  1. On the Google Ads side: open Google Ads Editor, select the account, go to Negative keywords > Account-level negatives, export as CSV.
  2. Clean the CSV: remove unnecessary columns, keep only Keyword + Match Type.
  3. On the Microsoft side: open Microsoft Advertising Editor, select the account, go to Account negative keyword lists, create or edit a list, import the CSV.
  4. Post the changes to the account. Microsoft applies account-level negatives across all existing and future campaigns.

The same process applies to shared negative keyword lists (used by multiple campaigns): Microsoft also supports them, you simply have to recreate them manually and attach them to the relevant campaigns via Microsoft Editor.

Customer Match audiences

Google Ads Customer Match lists don't export with emails (privacy obligation). The procedure is to retrieve the source list from your CRM, hash it in SHA-256, and upload it on the Microsoft side.

// SHA-256 hashing in Node.js (server-side)
const crypto = require('crypto');

function hashEmail(email) {
  return crypto
    .createHash('sha256')
    .update(email.trim().toLowerCase())
    .digest('hex');
}

// Example: hash a batch of 1000 CRM emails
const hashedList = customerEmails.map(e => ({
  email: hashEmail(e.email),
  phone: hashEmail(e.phone),
}));

Once the list is hashed, in Microsoft Advertising > Audiences > Customer list, create a new list, upload the CSV, wait 24-48 hours for Microsoft-side matching. Observed match rate runs between 35 and 55% based on CRM data quality (vs 40-60% on the Google Ads side for the same lists).

Site-based remarketing audiences

For visitor-based remarketing audiences (e.g. "cart abandoners 30d," "product page X visitors"), the import recreates the shell but the audience starts empty. No shortcut possible: the UET tag must run for 7 to 30 days based on traffic volume to reach the 1,000 user minimum required by Microsoft for an actionable remarketing audience. During this priming period, no remarketing campaign can be activated — favor Customer Match or native Microsoft in-market audiences to avoid blocking the launch.

Privacy warning :

Customer Match lists must be hashed server-side (never browser-side) and the user must have given explicit consent for marketing use. Uploading a list without clear legal basis = direct privacy infringement + risk of feature deactivation by Microsoft. Keep consent proofs (timestamped CRM logs) before any upload.

Common import mistakes and solutions

The 6 mistakes below represent the majority of import incidents observed on audit (~70 to 85% based on source account complexity). None is complex to avoid — they just need to be known before clicking "Start import."

  1. Launching the import without placing the UET tag first. Most frequent case. The import creates conversion goals (shell), but without UET on the site, zero conversions register. Smart Bidding learns blank for 14 days, you waste budget on exploration. Solution: place UET, validate it tracks at least 5-10 test conversions, then activate budgets on imported campaigns.
  2. Permanent Schedule import instead of One-time after cutover. Schedule mode syncs Google to Microsoft daily. Handy at start, but if it stays active beyond 30 days, it overwrites your Microsoft-side specific optimizations (bid adjustments, local audiences, Bing-specific negatives). Solution: Schedule for 4 weeks max, then disable and switch to independent steering.
  3. Ignoring the import report and going straight to scaling. The import report lists every warning and failure. Skipping it means ignoring 5 to 15% of degraded or non-transferred objects. Solution: export the report as PDF, read it through, address every warning before raising budgets. 30 minutes of reading that prevents 30 days of degraded performance.
  4. Not verifying Microsoft account currency and time zone. If the source Google account is in EUR/Europe/Paris and the Microsoft account is in USD/UTC by default, imports succeed but budgets and CPCs are misinterpreted. Result: a 100 EUR budget becomes 100 USD on the Microsoft side. Solution: verify account settings before import, never launch an import on a misconfigured account.
  5. Counting on import to replicate Performance Max identically. Microsoft has its Performance Max equivalent (sometimes called Performance Max or Smart Shopping based on vintage), but mapping isn't 1:1. Google asset groups don't always carry over fully, audience signals can be lost. Solution: manually re-audit each imported PMax and rebuild asset groups if needed. See our Microsoft vs Google comparison for detailed equivalences.
  6. Forgetting to validate cross-platform conversion deduplication. If you then compare Google vs Microsoft ROAS on the same users, without clean dedup, you double-count cross-platform conversions and your budget arbitrages are biased. Solution: use the same transaction_id (or order_id) in both events, use it as event_id on the UET and gtag side, validate in data layer then in reports.

To detect these mistakes on your account before they cost you signal loss, run a free SteerAds audit: it scans Google Ads and Microsoft Ads setup, verifies tracking consistency, identifies mismapped conversions, and proposes a prioritized correction plan. For accounts wanting to industrialize post-migration steering, see also our 10 Google Ads scripts guide and our Microsoft Ads Scripts guide to port your automations.

For complementary official resources, see the Microsoft Advertising import portal and the Microsoft Ads help center.

Sources

Official sources consulted for this guide:

FAQ

How long does a real Google Ads to Microsoft Ads import take?

The technical import itself takes 10 to 30 minutes through the Microsoft Advertising native tool. What takes time is the post-import remediation phase: verifying UET conversion mapping, recreating lost audiences, copying account-level negatives, adjusting bids. On accounts observed in public Google Ads benchmarks, a clean migration takes 4 to 8 hours of effective work spread over 1 to 2 business days. Plan a full day for a standard account with under 50 campaigns, 2 to 3 days for a multi-market or large catalog setup. Tracking test/validation typically adds 7 to 14 days of monitoring before raising budgets.

Does the UET tag fully replace the Google Ads conversion tag?

No, they are two independent tags that must coexist. UET (Universal Event Tracking) is Microsoft Advertising's own tag — it sets its own first-party cookie, measures its own conversions, and feeds Smart Bidding on the Microsoft side. Keeping Google Ads conversion + UET in parallel is the normal configuration. The only mutualization possible goes through GTM: a single container, two distinct tags firing on the same triggers. See the detailed mapping in the UET section of this article. For accounts moving to server-side, sGTM can relay to both APIs (Google Ads + UET) with deduplication via event_id.

Why aren't my Google Ads audiences imported?

Because audiences are tied to a cookie domain and a platform. A Google Ads remarketing audience is built from the Google Ads/GA4 tag that set its own cookie on your domain — Microsoft has no technical access to that cookie. Result: the import recreates the shell (audience name, filter rules), but the audience starts empty. You have to let UET run for 7 to 30 days to fill it on the Microsoft side, or activate Customer Match with your CRM list to seed immediately. There is no path to transfer members of a Google audience into Microsoft directly.

Should you import in Schedule or One-time mode?

One-time for the initial migration, Schedule only if you want to maintain Microsoft Ads as a long-term mirror of Google Ads. Schedule mode syncs daily (or weekly) the changes from Google: new keywords, modified creatives, added negatives, updated budgets. Useful during the first 30 days to absorb adjustments made on Google without reconfiguring everything. Beyond that, disable Schedule: your Microsoft account has its own optimization logic (lower average CPC, different Bing audiences, LinkedIn segments) and a permanent sync erases those specifics. Practical rule: Schedule for 4 weeks, then cut over to One-time for independent steering.

What to do if the import blocks on Microsoft Ads quota limits?

Microsoft Advertising applies per-account limits: 10,000 active keywords per campaign, 20,000 ad groups per account, 30M total keywords per account (official Microsoft numbers). In practice, the most frequent block comes from duplicated broad match keywords or ad extensions exceeding per-campaign quotas. Solution: before import, export your Google Ads via Editor, identify campaigns exceeding thresholds, merge or clean on the Google side, then relaunch the import. Microsoft Editor (equivalent to Google Ads Editor) also lets you bulk-post after manual remediation. See the official Microsoft documentation for current quotas.

Ready to optimize your campaigns?

Start a free audit in 2 minutes and discover the ROI potential of your accounts.

Start my free audit

Free audit — no credit card required

Keep reading