Guides

Microsoft UET Consent Mode: set ad_storage for Microsoft Advertising

Microsoft enforces UET Consent Mode in the EEA, UK and Switzerland. Set ad_storage to denied by default, update it on every choice, and check the asc value.
Published 21 October 2026 · By the Cookiequiet team · Markdown

Microsoft UET Consent Mode is Microsoft Advertising's equivalent of Google Consent Mode, with a single setting: ad_storage. You push a default of denied on every page, then push an update of granted or denied when the visitor chooses, through the window.uetq queue. Microsoft says it enforces Consent Mode for visitors in the EEA, the UK and Switzerland, where the default is denied and conversions are lost if the granted signal is not passed after the visitor accepts. Google Consent Mode does not cover it: a site that runs both Google Ads and Microsoft Advertising needs both signals.

What does ad_storage control?

Microsoft's documentation defines two values:

ValueWhat UET does
grantedFirst-party and third-party UET cookies may be read and written
deniedFirst-party cookies are neither read nor written; third-party cookies are not written, and are read only for fraud and spam purposes, not for advertising

For the purposes of UET, first-party cookies are those created on your domain (such as _uetsid and _uetvid), and third-party cookies are those created by Microsoft Advertising on bing.com. Outside the enforced regions, if no consent setting is passed, UET uses granted by default, which is why setting the default explicitly matters.

Basic or advanced?

Microsoft describes two setups, like Google:

  • Basic. The UET tag does not fire at all until the visitor grants consent. Nothing is sent before.
  • Advanced. The tag loads at once with consent defaulted to denied; while denied, only anonymized data is collected and later aggregated for modeling. Microsoft recommends advanced mode for campaign performance.

As with Google, whether a request to Microsoft before consent is acceptable is a legal question for your supervisory authority, not a technical one. Basic mode is the conservative option: mark the UET tag so it only loads after marketing consent, as described in block scripts until consent.

How do you set the default?

Microsoft's example places the default right after the UET tag, on every page:

html
<script>
window.uetq = window.uetq || [];
window.uetq.push('consent', 'default', {
'ad_storage': 'denied'
});
</script>

What matters is that the default exists on every page before the visitor's choice is known, and that the update follows it.

How do you send the visitor's choice?

When the visitor accepts the marketing or advertising category:

html
<script>
window.uetq = window.uetq || [];
window.uetq.push('consent', 'update', {
'ad_storage': 'granted'
});
</script>

Send denied in the same way when they refuse or withdraw. Microsoft asks you to keep passing the value on subsequent pages for as long as the consent applies, so the stored choice must be pushed again on every page load.

What about Google Tag Manager?

Microsoft publishes an official UET template for Tag Manager with consent settings. Google Tag Manager is not a consent tool, so the template needs a consent signal from your banner, usually a dataLayer event. When an update pushed from a custom HTML tag seems to have no effect, check the tag sequencing: the update must run after the UET queue exists and before the events you want to count.

Does Microsoft read other signals?

Microsoft says that if you do not implement Consent Mode directly, it tries to read consent signals from available sources such as the IAB TCF, provided the site has a cookie banner and a standard consent solution. You can turn that off with enableAutoConsent: false in the UET tag. Microsoft recommends implementing Consent Mode or the TCF explicitly for full control.

Is Microsoft Clarity covered?

No. Microsoft notes that if you use the UET and Clarity integration, Clarity's consent setting must be set separately. Clarity is a session recording and heatmap tool, which belongs in the analytics category of your banner.

How do you check that it works?

Microsoft lists three ways:

  1. UET Tag Helper, a browser extension for Edge and Chrome. Each UET event carries an asc parameter with the consent state. Before consent, either no UET event fires or asc is denied; after acceptance, every event shows granted.
  2. The UET dashboard in Microsoft Advertising has a Consent signal column per event type: Healthy when more than 75% of events in the last seven days carry a valid signal, Moderate between 0% and 75%, Missing at 0%.
  3. Test your tag, in the Conversions section, shows whether a consent signal was present for events on a given URL during your session.

Add the browser test from checking cookies before consent: no _uetsid or _uetvid cookie with a real identifier before the choice, nothing new after Reject all.

Common mistakes

  • Setting the default only on the home page; it must run on every page.
  • Updating to granted on acceptance but never pushing denied after a later withdrawal.
  • Relying on Google Consent Mode alone and assuming it reaches Microsoft.
  • Forgetting the stored choice on the next page, so returning visitors who accepted are counted as denied.

Cookiequiet sends the UET signal when the Microsoft UET option is enabled in the dashboard: on every choice, and on each page load once a choice is stored, it pushes a consent update with ad_storage driven by the marketing category, next to the Google Consent Mode update from the Consent Mode guide. It does not push the default command itself, so keep Microsoft's default line in your UET snippet. Setup is one script tag before your other scripts, with Reject all on by default; the option is available on every plan, including the free one.

Questions

No. Microsoft UET reads its own consent command through the uetq queue. A site with both Google Ads and Microsoft Advertising tags must send both signals, ideally from the same banner choice.
For visitors in the EEA, the UK and Switzerland, Microsoft says it enforces Consent Mode with a default of denied, so conversions are lost when the granted signal is not passed after acceptance. Elsewhere, UET defaults to granted when no value is set.
None for Consent Mode. Microsoft's documentation describes a single property, ad_storage, with the values granted and denied. Google's ad_user_data and ad_personalization parameters have no UET equivalent.
Install the UET Tag Helper extension and look at the asc parameter on each UET event. It should be denied before consent, or no event should fire, and granted after the visitor accepts.

Put a quiet banner on your website today

Free for one website with every core feature, no card and no trial clock. Upgrade a website to Starter for $3 a month to match your brand with AI and drop the branding, or to Pro for $9 to design it with the AI agent.