---
title: "Verify your installation"
description: "A step-by-step checklist to confirm the banner loads, blocks optional scripts before consent, and records and respects each choice."
url: "https://cookiebeam.com/docs/getting-started/verify-installation"
lang: "en"
---

# Verify your installation

A step-by-step checklist to confirm the banner loads, blocks optional scripts before consent, and records and respects each choice.

Run these checks after every new installation and after any change to your site's head, tag manager or caching. Use the live site, not an editor preview, and repeat the checks on a few page types, for example the home page, a content page and a checkout or form page.

You need a desktop browser with developer tools. The steps use Chrome's names; other browsers have the same panels.

## Before you start

1. Confirm the banner is **published** to production. The **Deployment → Install** page only shows the code after the first publish.
2. Confirm every hostname you are testing is listed under **Banner domains**.
3. Open a **private window**, so no earlier choice is stored, and open the developer tools.

To test again as a new visitor later, close the private window and open a new one, or run `CookieBeam.reset(true)` in the console and reload.

## 1. Check the installation in the page source

View the page source and search for `cdn.cookiebeam.com`.

- **Script tag:** the loader appears **once**, near the start of `<head>`, before Google tags and other trackers, with no `async` or `defer`.
- **Google Tag Manager:** there is no CookieBeam loader in the page source. In GTM Preview, the CookieBeam Consent Mode tag fires on **Consent Initialization – All Pages**.
- **WordPress or Shopify app:** the loader appears once in `<head>`, added by the plugin or app embed.

If you find the loader twice, or a loader plus a GTM tag, remove one. See [Common mistakes](https://cookiebeam.com/docs/getting-started/common-mistakes#two-installations-on-the-same-page).

## 2. Check the banner loads

1. Reload the page with the **Network** panel open and filter for `cookiebeam`.
2. Check that `loader.js` (or `loader-gtm.js` with GTM) and `latest.js` both load without an error.
3. Check that the URLs contain your public Banner ID, the one shown on **Deployment → Install**.
4. Check the **Console** has no `[CookieBeam] Domain not authorized` warning and no `Failed to load banner script` error.

The banner should now be visible. If it is not, follow [Troubleshoot a missing banner](https://cookiebeam.com/docs/operations/troubleshoot-banner).

## 3. Check what runs before a choice

Do not click the banner yet.

1. In **Network**, look for requests to analytics and advertising services, for example Google Analytics, Meta or TikTok.
2. In **Application → Cookies**, look for their cookies, for example `_ga` or `_fbp`.

What you should see depends on the [enforcement mode](https://cookiebeam.com/docs/configure/blocking) and on the visitor's region:

- In **Adaptive** or **Lockdown** mode, in an opt-in region, optional scripts the scanner classified should not load.
- In **Observe** mode, scripts are not blocked automatically. Use this mode only while you check a new installation.
- A script you hold back yourself with `type="text/plain"` and `data-category` should stay inert in every mode.

A script that was blocked stays in the page with its address moved to a `data-cookieblock-src` attribute, so you can find it in the **Elements** panel.

## 4. Check accept, reject and change

1. Select **Reject** (or the equivalent button in your design). Reload. Optional scripts should still not load, and the banner should not come back.
2. Open the preferences again, for example from your "Cookie settings" link or by running `CookieBeam.showPreferences()` in the console. Accept one category and save. Scripts in that category should now load without a reload.
3. Run `CookieBeam.getUserPreferences()` in the console. `acceptedCategories` should match what you chose.
4. Withdraw the category again. Scripts that already ran cannot be undone in the open page, but they should not load on the next page view.

## 5. Check Google Consent Mode

Skip this if you do not use Google tags.

1. In the console, run `window.dataLayer` before you make a choice.
2. Look for a `consent` `default` entry with `ad_storage` and `analytics_storage` set to `denied` in an opt-in region. It must come before any Google Analytics or Google Ads event.
3. Make a choice and run `window.dataLayer` again. A `consent` `update` entry should reflect it.

With GTM, use Preview mode and open the **Consent** tab for each event instead. See [Google Consent Mode](https://cookiebeam.com/docs/integrations/google-consent-mode).

## 6. Check the runtime's own report

Add `?cb_debug=1` to the page address and reload. On banners using the current runtime, the console shows how the banner decided what to do: the detected location, the matched regional rule, the consent mode, whether the banner should show, and whether a choice is stored.

You can also run this at any time:

```js
window.CookieBeamConsent.debugInfo()
```

When the banner is shown, `window.CookieBeamConsent.loadingMethod` reads `direct` for a script-tag installation and `gtm` when CookieBeam was loaded by Google Tag Manager.

## 7. Check that choices are recorded

Open **Consent logs** in the dashboard. The choices you made in the steps above should appear for your banner. See [Consent records](https://cookiebeam.com/docs/compliance/consent-records).

## When everything passes

- If you tested in **Observe** mode, switch to **Adaptive** or **Lockdown**, publish, and repeat step 3.
- Purge your site's page cache and any optimisation-plugin cache, then repeat step 1 on the cached pages.
- Run a [scan](https://cookiebeam.com/docs/configure/scanner) so new trackers are classified before they reach visitors.
