Skip to content
Open workspace
Browse help topics
Microsoft UET Consent Mode

Send Microsoft Ads the visitor’s choice.

Connect your Microsoft Advertising UET tag to Velo, so it follows each visitor’s advertising choice, then test the signal and the cookies.

4 min readReviewed 5 November 2026

How Velo controls UET

Microsoft Advertising needs a consent signal from UET for visitors in the European Economic Area, the UK and Switzerland. Without one, it stops tracking your UET conversions and filling your remarketing lists.

Velo sends that signal for you. UET reads one value, ad_storage, and Velo ties it to the Advertising category. There is nothing to switch on in Velo.

What UET receives from Velo
Visitorad_storageUET cookies
Has not chosen yet, in a region where consent comes firstdeniedNone yet
Allows advertisinggrantedSet
Rejects advertising, or withdraws it laterdeniedNone, and Velo deletes existing ones
Has not rejected, in a region where tracking is on by defaultgrantedSet

Your regional settings decide which regions ask first.

Set up UET in your website

Keep your UET tag and install Velo as usual. UET loads straight away and sends only anonymised data until the visitor allows advertising. Microsoft calls this Advanced Consent Mode and recommends it.

Velo’s snippet loads asynchronously, so UET can start first. Add the default line right after the UET tag, so its first event waits for Velo and is denied if Velo is late.

Example only · use your own site ID
<script>
  /* Microsoft’s UET tag, unchanged */
</script>
<script>
  window.uetq = window.uetq || [];
  window.uetq.push('consent', 'default', { ad_storage: 'denied', wait_for_update: 500 });
</script>
<script src="https://cdn.veloconsent.com/v1/velo.js"
  data-api="https://app.veloconsent.com"
  data-velo-site="YOUR-SITE-ID"
  async></script>

Do not add your own consent update. Velo sends one each time a choice takes effect, on every page.

Block UET until the visitor accepts

If you want nothing from UET before a choice, mark the tag so it stays inert. Velo runs it when the visitor allows advertising. Microsoft calls this Basic Consent Mode, and its conversion modelling is more generic with this setup.

Example only
<script type="text/plain" data-velo-category="ads">
  /* Microsoft’s UET tag, unchanged */
</script>

Set up UET in GTM

  1. Install Velo with the Velo CMP template on Consent Initialization - All Pages.
  2. Add UET with Microsoft’s official UET template. It reads the consent state from GTM.
  3. In the template’s consent options, keep Enable consent updates on.
  4. Turn on Inherit initial consent, so a returning visitor’s choice still counts when the UET tag fires after Velo has applied it.

Read Microsoft’s GTM template guide for the template’s full options.

Test the signal

  1. Open your site in a fresh private window, with the Network panel filtered to bat.bing. Microsoft’s UET Tag Helper extension shows the same value.
  2. Before you choose, UET requests carry asc=D and there are no _uetsid or _uetvid cookies.
  3. Choose Accept all. A new request carries asc=G, and both cookies appear.
  4. Reload the page. Events still carry asc=G.
  5. Reject from the privacy button. A new request carries asc=D, and the cookies are gone.

Then, in Microsoft Advertising, go to Conversions → UET and read the Consent signal column. Healthy means more than 75% of the last seven days’ events had a valid signal. The Test your tag tab shows it for a single session.

When a visitor withdraws

Velo sends denied, then deletes UET’s IDs from your site: the _uetsid, _uetvid and _uetmsclkid cookies and their copies in local storage. It leaves _uetmsdns, Microsoft’s opt-out flag, in place.

Cookies Microsoft sets on its own domains are out of reach from your site. With consent denied, Microsoft says it does not write its third-party cookies and reads them only for fraud and spam checks.

If you also use Microsoft Clarity

Clarity has its own consent signal, even with the UET and Clarity integration, and Velo does not send it yet. Until it does, keep Clarity from running before a choice by marking its tag with type="text/plain" and data-velo-category="analytics". Clarity expects a consent signal for visitors in the European Economic Area, the UK and Switzerland, so read Microsoft’s Clarity consent guide before relying on it there.

If something does not look right

UET still sends requests after a rejection.

That is how Advanced Consent Mode works. The requests carry asc=D and no visitor ID. If you want no requests at all, block the tag.

The first event shows asc=D for a visitor who already accepted.

The event left before Velo applied the saved choice, usually on a slow connection. A consent event with asc=G follows, and later events carry it. If it happens on most pages, check that the default line is on the page and that nothing delays velo.js.

The Consent signal column says Moderate or Missing.

Some of your pages are sending events without a signal. Check that Velo is on every page and template that has the UET tag. The status covers the last seven days, so give it time after a fix.

Another consent tool or TCF is also on the site.

Microsoft says never to use Consent Mode and TCF together. Remove the other tool, along with any consent updates you added for UET, then test again.