---
title: "Academy App"
canonical_url: "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner"
locale: en
meta:
  "og:title": "Academy App"
---

[Go to home](https://academy.laioutr.com/en)

- [Apps](https://academy.laioutr.com/en/bereiche/apps)

- [Tracking and consent](https://academy.laioutr.com/en/leitfaeden/tracking-and-consent-apps)

- [Set up Cookiebot as consent banner](https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner)

# Set up Cookiebot as consent banner

The Cookiebot app shows the Cookiebot banner in the storefront and reports the visitors' decision to the Laioutr consent store, which tracking, GTM and other apps follow. Only the Cookiebot domain group ID (CBID) is required.

## Before you start

<dl>

<dt>Plan</dt>
<dd>Any Laioutr licence; Cookiebot account</dd>

<dt>Role</dt>
<dd>Developer role on the environment to save settings in Configuration</dd>

<dt>Duration</dt>
<dd>7 min</dd></dl>

### Prerequisites

- Cookiebot account with the domain configured
- CBID of the domain group
- List of cookies set by the installed apps

Last reviewed on October 15, 2026

Adds the Cookiebot banner, maps Cookiebot categories to Laioutr consent purposes and reports every decision to the consent store that tracking and GTM follow.

[Developer documentation](https://docs.laioutr.com/apps/app-docs/cookiebot)

## How it works

1. Add the domain and copy the CBIDWhere: Cookiebot dashboard · Role: Privacy team or developer · Duration: 10 min
2. Install the appWhere: Cockpit, Apps · Role: Developer · Duration: 2 min
3. Enter cbid, check Consent Mode options, saveWhere: Cockpit, Configuration · Role: Developer · Duration: 3 min
4. Start a deploymentWhere: Cockpit, Deployments · Role: Developer · Duration: 5 min
5. Run the cookie scan and classify cookiesWhere: Cookiebot dashboard · Role: Privacy team · Duration: 20 min

## Configuration

| Field | Purpose | Where to find it | Required | Per environment |
| --- | --- | --- | --- | --- |
| `cbid` | Cookiebot domain group ID, loads the Cookiebot script for the domain. | Cookiebot dashboard, domain group | Yes | Yes |
| `consentMode` | Turns Google Consent Mode v2 in Cookiebot on (true, default) or off (false). | Project decision, aligned with the GTM app | No | Yes |
| `consentModeDefaults` | Turns Cookiebot's default Consent Mode state on (true, default) or off (false). | Project decision, aligned with the GTM app | No | Yes |

## Common errors

<dl>

<dt>The banner does not appear.</dt>
<dd>**Cause:** The CBID is wrong or the storefront domain is not registered in Cookiebot.</dd>
<dd>**Fix:** Check the CBID in Configuration, add the domain in Cookiebot and redeploy.</dd>

<dt>No analytics events arrive after consent.</dt>
<dd>**Cause:** The statistics category was not allowed, or the tracking destination requires a different purpose.</dd>
<dd>**Fix:** Test with statistics consent and check the purposes of the tracking destination.</dd>

<dt>Google receives duplicate consent updates.</dt>
<dd>**Cause:** Both Cookiebot and the GTM app send Consent Mode.</dd>
<dd>**Fix:** Set consentUpdates to external in the GTM app or set consentMode in Cookiebot to false.</dd></dl>

The **Cookiebot** app (package `@laioutr-app/cookiebot`) is a consent adapter. It loads the Cookiebot script, which shows the banner and settings dialog, reads the `CookieConsent` cookie and reports every change to the Laioutr consent store. Because the decision is already known during server rendering, nothing flickers when the page loads.

The four Cookiebot categories are mapped to Laioutr purposes: *necessary* to necessary, *preferences* to functional, *statistics* to analytics, and *marketing* to both advertising and personalization. Cookiebot has only one marketing category, so separate consent for advertising and personalisation is not possible with it.

Everything that uses the consent store follows the decision: Laioutr tracking, the consent updates of the Google Tag Manager app and custom checks in components. Banner texts, cookie scan and categories are maintained in the Cookiebot dashboard. Alternatives are the CCM19 app and the group product Consentr.

## Step by step

1. 1 ### Step 1: Set up the domain in Cookiebot

   Add the storefront domain in the Cookiebot dashboard and copy the CBID of the domain group.
2. 2 ### Step 2: Install the app

   Open **Apps** in the project, find Cookiebot in the **Tracking** tab and select **Install**.
3. 3 ### Step 3: Enter the CBID

   Enter the `cbid` in **Configuration**. Leave `consentMode` and `consentModeDefaults` at true unless Consent Mode should run only through the GTM app. Select **Save settings**.
4. 4 ### Step 4: Start a deployment

   Start a new deployment with **Deploy** under **Deployments**.
5. 5 ### Step 5: Scan and classify cookies

   Run the cookie scan in Cookiebot and assign app cookies, such as `nimstrata-visitor-id`, to the right category.

## Check the result

Open the storefront in a private window: the banner appears. After declining, tracking destinations set no cookies. After accepting statistics, the `CookieConsent` cookie is set and events reach the analytics destinations. A link to the cookie settings opens the dialog again.

## Frequently asked questions

How do Cookiebot and the GTM app work together?

Cookiebot reports the decision, and the GTM app turns it into the consent update for Google. If Cookiebot sends Consent Mode itself, set `consentUpdates` to `external` in the GTM app so only one source sends updates.

Why can advertising and personalisation not be allowed separately?

Cookiebot has only the marketing category, which stands for both purposes in Laioutr. Separate consent requires a consent solution that reports both purposes individually.

Where are banner texts and languages maintained?

In the Cookiebot dashboard. Laioutr handles the integration and evaluates the decision; design and texts stay with Cookiebot.

## Related

- [Set up a consent banner with Cookiebot or CCM19](https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19)10 min

  Laioutr connects Cookiebot or CCM19 as a consent app. Once installed and configured with its IDs, the storefront shows the banner, and all tracking destinations and Google Consent Mode v2 follow the visitor's decision automatically.
- [Tracking and consent built into the components](https://academy.laioutr.com/en/artikel/tracking-and-consent-built-into-the-components)6 min

  Laioutr components send events such as page view, product view, add to cart and purchase through one analytics layer. Each event only reaches the destinations the visitor has consented to.
- [Enter credentials and test the connection](https://academy.laioutr.com/en/artikel/enter-credentials-and-test-the-connection)5 min

  App credentials are entered per environment under Configuration, checked with Test connection and stored with Save settings. They take effect with the next deployment.
- [Add Google Tag Manager with Consent Mode v2](https://academy.laioutr.com/en/apps/google-tag-manager-with-consent-mode-v2)8 min

  The Google Tag Manager app loads the GTM container into the storefront, sets all consent signals to "denied" up front and releases them only after visitors decide. After analytics consent, storefront events reach the data layer with GA4 names.
- [Set up CCM19 as consent banner](https://academy.laioutr.com/en/apps/set-up-ccm19-consent-banner)8 min

  The CCM19 app shows the CCM19 banner in the storefront and reports every purpose visitors agree to to the Laioutr consent store. It needs the server URL, API key and domain ID from the CCM19 dashboard.

## [Tracking and consent](https://academy.laioutr.com/en/leitfaeden/tracking-and-consent-apps)

Search this guide

1. [Add Google Tag Manager with Consent Mode v2](https://academy.laioutr.com/en/apps/google-tag-manager-with-consent-mode-v2)8 min
2. [Set up Cookiebot as consent banner](https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner)7 min
3. [Set up CCM19 as consent banner](https://academy.laioutr.com/en/apps/set-up-ccm19-consent-banner)8 min

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://academy.laioutr.com/#website",
      "@type": "WebSite",
      "inLanguage": "en",
      "name": "Default",
      "url": "https://academy.laioutr.com/",
      "translationOfWork": {
        "@id": "https://academy.laioutr.com/#website"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#webpage",
      "name": "Academy App",
      "url": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner",
      "@type": [
        "WebPage",
        "FAQPage"
      ],
      "breadcrumb": {
        "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#breadcrumb"
      },
      "isPartOf": {
        "@id": "https://academy.laioutr.com/#website"
      },
      "mainEntity": [
        {
          "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/1"
        },
        {
          "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/2"
        },
        {
          "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/3"
        }
      ],
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner"
          ]
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#breadcrumb",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "name": "Home",
          "item": "https://academy.laioutr.com/en",
          "position": 1
        },
        {
          "@type": "ListItem",
          "name": "Apps",
          "item": "https://academy.laioutr.com/en/bereiche/apps",
          "position": 2
        },
        {
          "@type": "ListItem",
          "name": "Tracking and consent",
          "item": "https://academy.laioutr.com/en/leitfaeden/tracking-and-consent-apps",
          "position": 3
        },
        {
          "@type": "ListItem",
          "name": "Set up Cookiebot as consent banner",
          "item": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/1",
      "@type": "Question",
      "inLanguage": "en",
      "name": "How do Cookiebot and the GTM app work together?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Cookiebot reports the decision, and the GTM app turns it into the consent update for Google. If Cookiebot sends Consent Mode itself, set <code>consentUpdates</code> to <code>external</code> in the GTM app so only one source sends updates.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/2",
      "@type": "Question",
      "inLanguage": "en",
      "name": "Why can advertising and personalisation not be allowed separately?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Cookiebot has only the marketing category, which stands for both purposes in Laioutr. Separate consent requires a consent solution that reports both purposes individually.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner#/schema/question/3",
      "@type": "Question",
      "inLanguage": "en",
      "name": "Where are banner texts and languages maintained?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>In the Cookiebot dashboard. Laioutr handles the integration and evaluates the decision; design and texts stay with Cookiebot.</p>"
      }
    }
  ]
}
```
