Triggering a dataLayer event when the user accepts cookies with Cookiebot
It's undocumented, that's why I had to write this article. Here's how to trigger a dataLayer event when the user accepts cookies with Cookiebot.
Justus
owntag Founder
published February 9, 2023
Cookiebot is one of the most popular cookie consent managers.
It does its job generally fine, but it severely lacks integration when used together with Google Tag Manager which I find a pretty significant oversight considering that GTM is by far the most popular tag management system.
While Cookiebot has a nice JavaScript API, it doesn’t offer a built-in event that really only fires when the user has actively clicked the “Allow all cookie” or “Allow selection” button.
The CookiebotOnAccept
event and the CookiebotCallback_OnAccept
callback function may sound like they do that, but they are also triggered when an already-consented user loads the page which didn’t fit my particular use case.
So here’s how to trigger a dataLayer event when the user accepts cookies with Cookiebot:
<script>
;(function(){
window.addEventListener("CookiebotOnAccept", function (e) {
if (window.Cookiebot.changed) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: "cookiebot_accept"
});
}
});
})();
</script>
This will fire a cookiebot_accept
event in the dataLayer when the user
- newly consents to all cookies
- newly consents to the “current selection” with at least one available consent level active
It will not fire when the user
- already consented to some or all cookies and simply loads the page
- newly consents to the “current selection” with all consent levels inactive
- declines or has declined all cookies
Use this at your own risk, considering that the window.Cookiebot.changed
property is undocumented and may change at any time.
Become a Server Side Tagging Pro with owntag
Take control of your digital data collection with Server Side Tagging and Server Side GTM – easily hosted with owntag.