> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.pandectes.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# So setzen Sie den UET Microsoft Consent Mode im Checkout um

Diese Anleitung hilft Ihnen dabei, den Microsoft Consent Mode im Checkout zu aktivieren, damit Sie Ihre Checkout-Ereignisse mit Einwilligung erfassen können.

### Zweck
Sie müssen den Microsoft Consent Mode in Ihrem Shop umsetzen, wenn Sie in die EU verkaufen und Nutzer aus dem EWR erfassen. Microsoft deaktiviert sogar Kampagnen, die diesen neuen Standard nicht einhalten.

### Wie es mit unserer Integration zusammenarbeitet
Pandectes GDPR bietet eine direkte Integration für den Microsoft Consent Mode. Wie Sie wissen, erlaubt die Checkout Extensibility jedoch keine App-Skripte im Checkout.
Das folgende Custom Pixel ermöglicht es Ihnen daher, die Einwilligung an Microsoft zu senden und das Kaufereignis im Checkout mit Einwilligung zu erfassen.

Im Kern arbeiten die Pandectes-Integration und das Pixel zusammen: Die Integration deckt den gesamten Shop ab, das Pixel übernimmt den Checkout.

### Die Einrichtung
Gehen Sie zu **Shopify Settings > Customer Events** und klicken Sie auf **"Add Custom pixel"**.

![](https://storage.crisp.chat/users/helpdesk/website/-/1/a/5/a/1a5af239e847cf00/cleanshot-2025-04-24-at-201545_fu6g1j.png)

Vergeben Sie einen passenden Namen und klicken Sie auf **"Add pixel"**.

![](https://storage.crisp.chat/users/helpdesk/website/-/1/a/5/a/1a5af239e847cf00/cleanshot-2025-04-24-at-201839_1yazufo.png)

Setzen Sie die Berechtigung auf **"Not required"**.

![](https://storage.crisp.chat/users/helpdesk/website/-/1/a/5/a/1a5af239e847cf00/cleanshot-2025-04-24-at-202045_qeke8u.png)

Fügen Sie anschließend den folgenden Code in den Code-Bereich ein:

```
// Pandectes Pixel for Microsoft UET consent mode and events tracking

const uetTagId = '' // Input your UET tag Id
const DENIED =  "denied"
const GRANTED = "granted"
const STORE_POLICY = DENIED; // You can change to GRANTED if you would like  to have a loose policy

const getCookie = (cookieName) => {
    const cookieString = document.cookie;
    const cookieStart = cookieString.indexOf(cookieName + "=");
    if (cookieStart === -1) {
        return null;
    }
    let cookieEnd = cookieString.indexOf(";", cookieStart);
    if (cookieEnd === -1) {
        cookieEnd = cookieString.length;
    }
    const cookieValue = cookieString.substring(cookieStart + cookieName.length + 1, cookieEnd);
    try {
        const  decodedValue = atob(cookieValue);
        const parsedValue = JSON.parse(decodedValue);
        return parsedValue;
    } catch (error) {
        console.error("Error parsing cookie value:", error);
        return null;
    }
};

function setCookie(name, value, days) {
    const date = new Date();
    date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
    const expires = 'expires=' + date.toUTCString();
    document.cookie = `${name}=${value}; ${expires}; path=/; secure; samesite=strict`;
}

const getStorage = (preferences) => {
    const p4 = (preferences &4) === 0;
    output = {
        ad_storage: p4 ? GRANTED : DENIED
    }
    return output;
}

if (window.location.href.includes("/checkout/") ||window.location.href.includes("/checkouts/")){
    window.uetq = window.uetq || [];

    const cookie = getCookie("_pandectes_gdpr");
    const defaultStorage = getStorage(STORE_POLICY === DENIED ? 7:0);
    STORE_POLICY===DENIED ?  setCookie('_uetmsdns', '1', 365) : setCookie('_uetmsdns', '0', 365);
    window.uetq.push('consent', 'default', defaultStorage);
    
    if (cookie && cookie.preferences !== null && cookie.preferences !== undefined) {
        const updateStorage = getStorage(cookie.preferences);
        window.uetq.push('consent', 'update', updateStorage);
        if (updateStorage.ad_storage==GRANTED) {
            setCookie('_uetmsdns', '0', 365);
        }
    }
    
    /*
    
* UET tag Initialization
    */
    (function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:uetTagId, disableAutoPageView: true, enableAutoSpaTracking: false};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");     

    /*
    
* Events Tracking
    */

    analytics.subscribe("page_viewed", (event) => { 
        window.uetq.push('event', 'page_view', { 'page_location': event.context.window.location.href }); 
    }); 

    analytics.subscribe("checkout_completed", event => { 

        let productIds = ''; 
        let revenueValue = 0; 
        let currency = ''; 

        if (event.data?.checkout) {
            revenueValue = event.data.checkout.totalPrice?.amount; 
            currency = event.data.checkout.totalPrice?.currencyCode;

            if (Array.isArray(event.data?.checkout?.lineItems)) { 
            const lineItemIds = event.data.checkout.lineItems.map(item => String(item.variant.product.id)); 
            productIds = lineItemIds.join(',').slice(0, 50); 
            } 

            window.uetq.push('event', 'purchase', { 
            'ecomm_prodid': productIds, 
            'ecomm_pagetype': 'purchase', 
            'revenue_value': revenueValue, 
            'currency': currency 
            }); 
        } 
    }); 

}
```

Tragen Sie Ihre UET-Tag-ID oben ein, damit die Ereignisse an Ihr Tag gesendet werden, und klicken Sie auf Connect.

![](https://storage.crisp.chat/users/helpdesk/website/-/1/a/5/a/1a5af239e847cf00/cleanshot-2025-04-24-at-202834_1dyelym.png)

Fertig. Das Pixel liest nun das Pandectes-Cookie aus, um den Einwilligungsstatus zu ermitteln, meldet ihn an Microsoft und erfasst das Ereignis.