This page is the Okito support resource for Microsoft Advertising Consent Mode only. It does not describe the Okito marketing website, the general dashboard, or unrelated CMP features. It explains how the Okito CMP tag integrates with Microsoft Advertising UET and how consent is configured on every page that uses Okito together with a Microsoft UET tag.
Help Guides
Dedicated Okito help article for Microsoft Advertising Universal Event Tracking (UET) Consent Mode — how Okito integrates with Consent Mode and how Okito configures the ad_storage signal.
1. Who this article is for?
Use this article if you need to:
Understand how Okito passes consent to Microsoft Advertising UET
Configure a site so Microsoft Advertising Consent Mode receives a valid ad_storage signal
Review Okito as a CMP that supports Microsoft Advertising Consent Mode (for example Microsoft Advertising help-centre evaluation)
Microsoft Advertising requires advertisers using UET in the European Economic Area (EEA), the United Kingdom, and Switzerland to send a consent signal — either UET Consent Mode or IAB TCF — from 5 May 2025. If no valid signal is sent, Microsoft may stop UET conversion tracking and remarketing lists.
2. What Microsoft Advertising Consent Mode is?
Consent Mode tells the Microsoft Advertising UET tag whether it may store and read advertising cookies for the current visitor. Microsoft enforces this using a single parameter named ad_storage on the window.uetq command queue.
Item | Microsoft Advertising value |
API | window.uetq.push('consent', …) |
Parameter Microsoft enforces | ad_storage |
Allowed values | granted or denied |
Commands | default (initial state) and update (after the visitor chooses) |
Where to place the default | As high as possible in <head>, before the page is fully loaded |
UET tag timing | UET must load before the visitor interacts with the banner, with default set to denied |
Microsoft currently enforces consent on ad_storage only. Optional extra keys such as ad_user_data or ad_personalization may be sent, but they are not required for enforcement. Okito configures the required parameter: ad_storage.
Basic vs Advanced Consent Mode
Microsoft recommends Advanced Consent Mode. That is what Okito configures.
Basic | Advanced (Okito) | |
UET tag loading | Blocked until the visitor grants consent | Loads immediately; consent state starts as denied |
Data before a grant | No data sent | Only anonymised / cookieless pings for modelling; no advertising identifiers |
Consent status | Set only after a grant | Defaults to denied, then updates to granted or denied |
3. How Okito integrates with Microsoft Advertising Consent Mode?
The integration does three things:
Shares the UET command queue. Okito sets window.uetq = window.uetq || [] so it uses the publisher’s existing queue, or creates one if the UET snippet has not run yet.
Speaks Microsoft’s Consent Mode API. Okito uses only the official commands consent / default and consent / update with ad_storage .
Connects Okito banner decisions to UET. Accept All, Reject All, Save preferences, later withdrawal, and (on TCF banners) advertising-purpose choices all call the same Okito helper, which pushes an update to uetq .
Okito does not replace the Microsoft UET tag and does not insert your UET tag ID. You still deploy UET from Microsoft Advertising (or the official UET tag in Google Tag Manager). Okito supplies the consent configuration that UET is required to honour.
Because uetq is a queue, the Okito CMP tag may load before or after UET. Queued commands are applied when UET starts. Microsoft still requires the default to be set before the page is fully loaded, and UET to load before the visitor clicks the banner. Place Okito and UET in <head>.
4. How Okito configures Consent Mode?
4.1 Default configuration (every page load)
Before the visitor uses the banner, Okito configures Advanced Consent Mode by setting advertising storage to denied. This matches Microsoft’s requirement: UET may load, but must not process personal data until consent is granted.
window.uetq = window.uetq || [];
window.uetq.push('consent', 'default', {
'ad_storage': 'denied'
});
4.2 Update configuration (after the visitor chooses)
When advertising consent is given:
window.uetq = window.uetq || [];
window.uetq.push('consent', 'update', {
'ad_storage': 'granted'
});
When advertising consent is refused or later withdrawn:
window.uetq = window.uetq || [];
window.uetq.push('consent', 'update', {
'ad_storage': 'denied'
});
If the visitor never interacts with the banner, the default denied value remains. Okito does not send a duplicate update when the new value is the same as the last value it already pushed.
4.3 What Okito does not configure
Okito does not set ad_storage to granted as the default.
Okito does not wait for a click before creating the queue and the default (that would be Basic mode).
Okito does not require you to paste extra Microsoft consent JavaScript if the Okito CMP tag is already on the page.
Do not add a second uetq.push('consent', 'default', …) in your own snippet after Okito. A second default can fight Okito’s configuration. Let Okito own the Consent Mode default and updates.
5. Consent mapping
5.1 Category / GDPR banner
Microsoft ad_storage is configured from Okito’s advertisement / marketing category. Necessary cookies and analytics-only consent do not grant Microsoft advertising storage.
Visitor action in Okito | Advertisement category | Configured ad_storage |
Page load, no choice yet | not granted | denied (default) |
Accept All | granted | granted |
Reject All | refused | denied |
Save preferences — advertising on | granted | granted |
Save preferences — advertising off | refused | denied |
Withdraw advertising consent later | refused | denied |
5.2 IAB TCF banner
This help article is about Microsoft Advertising Consent Mode (the uetq ad_storage API). If the Okito banner is in IAB TCF mode, Okito still configures UET Consent Mode so Microsoft receives ad_storage . The value is granted when TCF Purpose 2 (select basic ads) or Purpose 3 is consented; otherwise it stays denied .
Microsoft’s own FAQ states that Consent Mode and TCF should not be relied on as two competing UET setups at once. Okito’s Microsoft Advertising-specific integration documented here is Consent Mode via uetq . If you also enable TCF, add Microsoft (vendor ID 1126) and Xandr (vendor ID 32) in the TCF vendor list as Microsoft documents separately. Do not implement a second, manual UET Consent Mode snippet.
6. Publisher implementation
Two pieces must be on the page. Okito configures Consent Mode; you still add the UET tag.
6.1 Prerequisites
An Okito website with a published cookie banner.
The Okito CMP install snippet on every page that runs Microsoft UET.
A Microsoft Advertising UET tag ID, installed with the Microsoft UET snippet or the official UET tag in GTM
6.2 Recommended order in <head>
Okito CMP script — creates uetq and configures consent default to denied .
Microsoft UET tag — loads before banner interaction and reads the queued Consent Mode commands.
Conversion / event calls that depend on UET — after both of the above.
6.3 Direct UET snippet (not GTM)
Keep your existing Microsoft UET base tag. Do not paste an extra consent default. Example structure:
<!-- 1. Okito CMP (configures Microsoft Advertising Consent Mode) -->
<script src="https://cdn.okitoapp.com/YOUR-OKITO-SCRIPT.js"></script>
<!-- 2. Microsoft Advertising UET tag (your tag ID) -->
<script>(function(w,d,t,r,u){ ... Microsoft UET loader ... })
(window,document,'script','//bat.bing.com/bat.js','uetq');</script>
Replace the Okito script URL and the Microsoft UET loader with the snippets from each product. The important configuration is: Okito first, UET second, both in <head> , no second consent default.
6.4 Do not
Hard-code ad_storage: 'granted' as the default.
Block the UET tag entirely until Accept All if you want Advanced Consent Mode (Okito already defaults to denied).
Expect Okito to fire conversions or to know your UET tag ID.
Map analytics consent to Microsoft ad_storage .
7. Google Tag Manager
If UET is loaded in GTM, Okito still integrates by writing window.uetq . Fire the Okito CMP tag as early as possible (Consent Initialization / All Pages, high priority). Fire the official Microsoft Advertising UET tag afterwards on All Pages.
Do not add a custom HTML tag that also pushes consent default if Okito is already on the page. If you use Microsoft’s official UET GTM template, do not enable a second “inherit Google Consent Mode” path that conflicts with Okito’s uetq updates. One owner of the Microsoft consent default is enough: Okito.
8. What happens when consent is denied or granted?
State Okito configures | UET behaviour (Microsoft) |
ad_storage: | Advertising cookies must not be used for tracking. UET may still send anonymised pings for modelling. Network requests typically show asc=D. Placeholder cookie values (for example a null| prefix on _uetsid / _uetvid ) can appear; they must not contain a real advertising identifier until consent is granted. |
ad_storage: | UET may read and write advertising cookies and send user-level tracking. Network requests typically show asc=G . |
Microsoft treats the following as advertising / device identifiers that must not be set for tracking without consent:
MUID , _uetvid , _uetsid , _uetsid_exp , _uetvid_exp , MSPTC .
Microsoft may treat a site as non-compliant if those cookies are set for tracking before any banner interaction, or after the visitor clicks Reject. Okito’s default-denied configuration is intended to prevent that on the Consent Mode signal. You must still load UET with that signal in place, not with a hardcoded grant.
9. How to verify the integration?
Use Microsoft’s own checks on a page that has both the Okito CMP tag and the UET tag.
9.1 UET Tag Helper (Edge or Chrome extension)
Install Microsoft’s UET Tag Helper.
Load the page and wait for the UET Page Load event.
Inspect the asc parameter: D when consent is denied, G when granted.
9.2 Browser console — commands Okito queued
window.uetq
Before a choice you should see a consent / default entry with ad_storage: 'denied'. After Accept All you should see consent / update with granted.
9.3 Browser console — Microsoft UET runtime (after UET has loaded)
window.uetq.uetConfig.consent.enabled // true if Consent Mode is on window.uetq.uetConfig.consent.adStorageAllowed // false before grant / after deny; true after grant window.uetq.uetConfig.consent.enforced // false after the visitor has accepted or denied
These properties exist only after the Microsoft UET library has initialised. If they are undefined, UET has not loaded yet.
9.4 Network
In Developer Tools → Network, filter bat.bing.com. Confirm asc=D before a grant and asc=G after Accept All / advertising consent.
10. Troubleshooting
Symptom | What to check |
window.uetq is undefined | The Okito CMP script is not on this page, or failed to run. |
Default is missing | Another script replaced uetq after Okito. Keep one shared array. |
asc=G before any click | A second snippet is granting consent. Remove extra consent default / granted code. |
UET Tag Helper does not see Consent Mode | UET tag ID is missing, blocked, or loading only after the banner is closed (too late). |
uetConfig.consent is undefined | UET library has not loaded. Confirm bat.bing.com/bat.js. |
Accept All does not change ad_storage | The choice did not include the advertisement category (or TCF purposes 2/3). |
Questions
Yes. This page covers only how Okito integrates with and configures Microsoft Advertising Consent Mode.
No extra Microsoft toggle is required. Publishing the Okito CMP tag configures Consent Mode automatically.
Yes, provided Okito runs first and you do not add a second consent-default tag. UET still reads window.uetq .
Yes. Microsoft requires UET to load before banner interaction, with Consent Mode default set to denied. Okito sets that default as soon as its script runs.
Okito still configures default denied and updates after a choice. That is safe globally and matches Advanced Consent Mode.
Saving a new preference or using Reject All sends a new consent update with the latest ad_storage value.
Türkçe
English