---
title: "Google Consent Mode v2 Implementation Guide | CookieBeam"
description: "Implement Google Consent Mode v2 with CookieBeam: consent types, Basic vs Advanced, loader order, and how to verify signals in Tag Assistant, Google Ads and GA4."
url: "https://cookiebeam.com/guides/google-consent-mode-v2"
lang: "en"
last_updated: "2026-10-20T10:42:57.720Z"
---

# Google Consent Mode v2: Complete Implementation Guide

Learn how Google Consent Mode v2 works with CookieBeam: the seven consent types, Basic versus Advanced mode, loader order, and how to check Google Ads modeling eligibility and GA4 consent status.

## What Is Google Consent Mode v2?

Google Consent Mode v2 is a framework that lets your website communicate user consent choices directly to Google's advertising and analytics tags. Basic mode blocks Google tags until consent; Advanced mode lets them send cookieless measurements when storage consent is denied.

Version 2 added two consent types: **ad_user_data** and **ad_personalization**. Since March 2024, Google has used them to enforce its [EU user consent policy](https://www.google.com/about/company/user-consent-policy/). Without them, Google features that depend on EEA user consent, such as ad personalization and remarketing audiences, can be limited.

> **Warning: Required Signals for EEA Ad Features**
>
> Google's [EU user consent policy](https://www.google.com/about/company/user-consent-policy/) requires advertisers who use Google's ad measurement, personalization, or remarketing features with users in its scope to obtain consent and pass it to Google. Consent Mode v2 is how Google tags receive that consent. Check the policy for its current regions and the features it covers. CookieBeam sends the signals; it does not decide whether your setup meets the policy.

## The Seven Consent Types

The full [Google consent-type inventory](https://developers.google.com/tag-platform/security/concepts/consent-mode?hl=en#consent-types) includes seven types. Values are `granted` or `denied`; v2 added `ad_user_data` and `ad_personalization`. Configure the types used by your integration.

**Google Consent Mode v2 Signals**

| Signal | Controls | New in v2 |
| --- | --- | --- |
| analytics_storage | GA4 measurement cookies and session data | No |
| ad_storage | Google Ads conversion and remarketing cookies | No |
| ad_personalization | Remarketing and personalized advertising | Yes |
| ad_user_data | Sending user data to Google for ad targeting | Yes |
| functionality_storage | Cookies needed for site functionality | No |
| personalization_storage | Storage for personalized site experiences | No |
| security_storage | Security-related cookies (e.g. bot detection) | No |

## Basic vs Advanced Consent Mode

Google offers two implementation modes with very different implications for your data quality:

### Basic vs Advanced Consent Mode

|  | Feature | Basic Mode | Advanced Mode |
| --- | --- | --- | --- |
| **Tags fire before consent** | No, tags blocked until consent | Yes, tags fire immediately in restricted mode |  |
| **Conversion modeling** | General model, subject to eligibility | Advertiser-specific model, subject to eligibility |  |
| **Bounce rate data** | Lost for non-consenting users | Subject to GA4’s separate modeling prerequisites |  |
| **Setup with CookieBeam** | Block Google tags with script blocking until consent | Load CookieBeam before the Google tag; the tag loads immediately |  |
| **When to choose it** | No Google requests may be sent before consent | Your legal review accepts cookieless pings before consent |  |

> **Tip: Check Modeling Eligibility**
>
> Review the Google Ads requirements below before setting expectations for modeled results. No recovery percentage is guaranteed.

## Implementation: Step-by-Step

These steps follow the CookieBeam [Google Consent Mode integration reference](https://cookiebeam.com/docs/integrations/google-consent-mode). Direct installation and the GTM template have different startup sequences. Configure the one you deploy.

## Google Consent Mode v2 Setup

### Step 1: Enable Google Consent Mode and publish

Open your banner's **App Integrations** page. In **Google Consent Mode**, enable the integration and set **Wait for Update**, **Ads Data Redaction**, and **URL Passthrough** as needed. Click **Save Consent Mode Settings**, then publish the banner. The `ad_user_data` and `ad_personalization` keys follow the marketing category.

### Step 2: Install the CookieBeam loader before Google tags

For direct installation, place the loader near the start of `<head>`, before the Google tag and its `config` or `event` commands. Do not add `async` or `defer`. The published loader issues the consent `default` command, so do not add a second hand-written default. See the [script-tag instructions](https://cookiebeam.com/docs/install/script-tag).

For GTM, use the CookieBeam template on **Consent Initialization – All Pages**. The template sets its own defaults. Use one installation method per page.

### Step 3: Choose Basic or Advanced behavior for Google tags

For Advanced mode, load the Google tag normally after CookieBeam. For Basic mode, keep the Google tag inert until consent with [script blocking](https://cookiebeam.com/docs/configure/blocking).

### Step 4: Verify defaults and updates in Tag Assistant

Use [Google Tag Assistant](https://developers.google.com/tag-platform/security/guides/consent-debugging) to inspect consent defaults and updates. Test acceptance, rejection, and withdrawal against the consent types your integration configures. In GTM Preview, check the Consent tab.

### Step 5: Check Google Ads and GA4 status

In Google Ads, open a website conversion action's [Diagnostics](https://support.google.com/google-ads/answer/11954524) tab. In GA4, open [Consent settings](https://support.google.com/analytics/answer/14275483?hl=en) for the data stream. The steps are below.

## Code Implementation

With direct installation, the page order is: CookieBeam loader first, then the Google tag. CookieBeam issues the `default` command from your published settings and regional rules, before the Google tag loads.

`index.html`

```html
<!-- 1. CookieBeam loader: synchronous, near the start of <head>. -->
<!-- It issues gtag('consent', 'default', ...) from your published banner settings. -->
<script id="CookieBeam" src="https://cdn.cookiebeam.com/banner/PUBLIC_BANNER_ID/default/loader.js" type="text/javascript"></script>

<!-- 2. Google tag AFTER the loader (Advanced mode). -->
<!-- For Basic mode, keep it inert until consent with type="text/plain" and data-category. -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>
```

`consent-update.js`

```javascript
// CookieBeam sends an update like this after each visitor choice.
// You do not need to write it. Keys follow the category mapping:
// analytics -> analytics_storage; marketing -> ad_storage, ad_user_data, ad_personalization

// Example: User accepts analytics + marketing
gtag('consent', 'update', {
 'analytics_storage': 'granted',
 'ad_storage': 'granted',
 'ad_personalization': 'granted',
 'ad_user_data': 'granted',
});

// Example: User accepts analytics only
gtag('consent', 'update', {
 'analytics_storage': 'granted',
 'ad_storage': 'denied',
 'ad_personalization': 'denied',
 'ad_user_data': 'denied',
});
```

### Consent Mode v2 Verification Checklist

- CookieBeam runs before the Google tag — Direct installation: the loader is near the start of the head, without async or defer. GTM: the template uses Consent Initialization – All Pages.
- One consent default per page load — Tag Assistant shows the CookieBeam default before Google tag commands. Remove other hand-written default commands.
- Both v2 keys are present — ad_user_data and ad_personalization appear in the default and in each update, alongside ad_storage and analytics_storage.
- An update follows every choice — Test acceptance, rejection, and withdrawal in fresh sessions and confirm the update carries the expected states.
- Google Ads diagnostics checked — Open a website conversion action and review its Diagnostics tab for the consent mode status.
- GA4 consent settings checked — In GA4 Admin, open Data collection and modification, then Consent settings, and review each web data stream.

> **Tip: What CookieBeam Does and What Google Decides**
>
> CookieBeam sends the consent commands. Google decides whether your account is eligible for modeling and how features behave with denied consent. Use the Google Ads Diagnostics tab and GA4 Consent settings to confirm what Google receives.

## Troubleshooting Common Issues

Even with careful implementation, Google Consent Mode v2 can produce unexpected behaviour. Below are frequent problems and how to check them.

### Signals Not Updating After User Consent

If Google tags stay in restricted mode after a visitor accepts, check in Tag Assistant that a consent `update` follows the choice. Then check the page source: the loader must not be delayed by `async`, `defer`, or a script optimizer, and the page must not load CookieBeam twice. Also check that the banner was republished after you enabled the integration.

### GA4 Showing Zero Engaged Sessions

If you suddenly see zero engaged sessions or a dramatic drop in GA4 data, check that `analytics_storage` is being set to `granted` on consent acceptance, not just `ad_storage`. In CookieBeam, `analytics_storage` follows the analytics category, so check that the services are assigned to it.

### Conversion Modeling Not Appearing in Google Ads

Review the existing Conversions column and the Google Ads eligibility section below. A missing separate modeled-conversions column is not a setup failure.

### Tag Assistant Shows No Consent Default

For direct installation, confirm the published banner has Google Consent Mode enabled and the loader runs before the Google tag. For GTM, confirm the CookieBeam template fires on **Consent Initialization – All Pages**. Direct-load settings do not configure the GTM template.

> **Warning: Avoid Competing Default Commands**
>
> Other code on the page can issue its own `gtag('consent', 'default', ...)`, for example a region-based default that grants storage for some countries. Such a command can conflict with CookieBeam's. Configure regional defaults in CookieBeam's regional rules (direct installation) or the template's regional settings (GTM), and remove the extra command. Then check the default in Tag Assistant for each region you serve.

## Consent Mode vs Cookie Blocking

Here, full blocking means withholding Google tags until consent while retaining a supported measurement setup for consenting users: the Basic path. Basic can use general modeling; Advanced supplies advertiser-specific calibration. Blocking all measurement permanently is not a modeling setup.

See [Google’s Basic and Advanced comparison](https://developers.google.com/tag-platform/security/concepts/consent-mode?hl=en#basic-consent-mode). Neither approach guarantees modeled results.

### Consent Mode vs Full Tag Blocking

|  | Aspect | Blocking Until Consent (Basic) | Consent Mode (Advanced) |
| --- | --- | --- | --- |
| **Data sent on refusal** | None | Anonymous cookieless pings only |  |
| **Conversion modeling** | General model may be available | Advertiser-specific model may be available |  |
| **Legal review** | No Google requests before consent | Cookieless pings are sent before consent; review them |  |
| **Impact on Google Ads optimisation** | Significant loss of signal | Smart Bidding can use modeled conversions when eligible |  |
| **Audience list building** | No data for non-consenting users | Audience eligibility depends on advertising consent |  |
| **When to choose it** | Pings before consent are not acceptable for your site | Your legal review accepts cookieless pings |  |

In Advanced mode, Google tags still send requests while storage is denied. Google's [consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode?hl=en#tag-behavior) lists what these cookieless pings can contain, such as a timestamp, user agent, referrer, and the consent state. Every request also reaches Google from the visitor's IP address. Treat the choice between Basic and Advanced as a legal decision for your site. Neither mode is automatically compliant.

## Google Ads Modeling: Eligibility and Reporting (Google Ads)

[Google Ads’ current quality checks](https://support.google.com/google-ads/answer/10548233?hl=en) require correct implementation and 700 daily ad clicks over seven days for each country/domain grouping, followed by model training. Eligibility and results vary; there is no fixed 30-day or 50-monthly-conversion rule.

Modeled results are included in the existing **Conversions** column. Blocking cookieless pings can reduce calibration without universally ruling out modeling.

Google Ads conversion modeling and GA4 behavioral or key-event modeling are separate. Do not apply the Ads eligibility threshold or reporting instructions to GA4; check the relevant product’s requirements.

## Checking Consent Signals in Google Ads and GA4

### Step 1: Open GA4 Consent settings

In GA4 **Admin**, under **Data collection and modification**, open [Consent settings](https://support.google.com/analytics/answer/14275483?hl=en) and select your web data stream. Check whether analytics and ads consent signals (`ad_user_data` and `ad_personalization`) are detected. Labels can change, and new signals may take time to appear.

### Step 2: Open the Google Ads conversion Diagnostics tab

In Google Ads, go to **Goals → Conversions → Summary**, select a website conversion action, and open [Diagnostics](https://support.google.com/google-ads/answer/11954524). Google reports whether consent mode is implemented and whether modeling is active.

### Step 3: Review consent decisions in CookieBeam

Use CookieBeam **Analytics** to review recorded accept, reject, and preference decisions. Compare equivalent periods after a banner change. These figures describe recorded interactions, not Google's modeling.

### Step 4: Re-check after banner or tag changes

After republishing the banner, changing regional rules, or editing tags, repeat the Tag Assistant checks for acceptance, rejection, and withdrawal.

### Step 5: Review Google Ads conversions separately

Use the existing **Conversions** column in Google Ads. Follow the eligibility guidance above; do not add a separate modeled-conversions column.

## Vendor Consent Bridges

Google Consent Mode v2 covers Google's own tags, but most sites also run vendor tools that need their own consent signals. CookieBeam includes bridges that read the same Consent Mode v2 state your banner computes for Google and translate it into each vendor's native consent API. One banner decision, all vendors signaled.

### Vendor Consent Bridge Guides

- [All Bridges Overview](https://cookiebeam.com/guides/consent-mode-integrations-cookiebeam-2026): Architecture and comparison of all eight vendor bridges
- [GTM Bridge](https://cookiebeam.com/guides/gtm-bridge-consent-mode-cookiebeam-2026): DataLayer consent events and the CookieBeamGTM API
- [Meta Pixel](https://cookiebeam.com/guides/meta-pixel-consent-mode-cookiebeam-2026): fbq consent grant/revoke and Limited Data Use
- [Microsoft Ads (UET)](https://cookiebeam.com/guides/microsoft-advertising-uet-consent-mode-cookiebeam-2026): ad_storage signal for conversion tracking
- [Microsoft Clarity](https://cookiebeam.com/guides/microsoft-clarity-consent-mode-cookiebeam-2026): consentv2 with ad_Storage and analytics_Storage
- [HubSpot](https://cookiebeam.com/guides/hubspot-consent-mode-cookiebeam-2026): doNotTrack and revokeCookieConsent from analytics
- [Matomo](https://cookiebeam.com/guides/matomo-consent-mode-cookiebeam-2026): Cookie consent vs tracking consent, cookieless mode
- [Shopify](https://cookiebeam.com/guides/shopify-consent-mode-cookiebeam-2026): Customer Privacy API setTrackingConsent
- [Adobe (Alloy)](https://cookiebeam.com/guides/adobe-consent-mode-cookiebeam-2026): Experience Platform setConsent for collect and marketing
- [Webflow](https://cookiebeam.com/guides/webflow-consent-mode-cookiebeam-2026): Optimize personalization via localStorage and wf API

## Frequently Asked Questions

### Is Google Consent Mode v2 mandatory for all websites?

No. Google's [EU user consent policy](https://www.google.com/about/company/user-consent-policy/) applies to advertisers who use its ad measurement, personalization, or remarketing features with users in the policy's scope. For those sites, Consent Mode v2 is how Google tags receive consent. GA4 features that depend on consent signals also need it. Check the policy for its current regions. A site without Google tags does not need Consent Mode.

### What is the difference between Basic and Advanced Consent Mode?

Basic withholds tags until consent and can use a general model. Advanced sends cookieless measurements with denied storage and supports advertiser-specific modeling. See [Google’s comparison](https://developers.google.com/tag-platform/security/concepts/consent-mode?hl=en#basic-consent-mode) and the eligibility section above.

### Does Consent Mode v2 mean Google can track users who declined?

It depends on the mode. In Basic mode, Google tags stay blocked until consent, so nothing is sent before a choice. In Advanced mode, Google tags send cookieless pings while storage is denied. They do not use Google cookies for the denied storage types, but they do reach Google. Google's [consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode?hl=en#tag-behavior) lists what the pings can contain. Have your legal adviser review whether Advanced mode suits your site.

### How do I verify Consent Mode is working correctly after implementing CookieBeam?

Follow [Google’s Tag Assistant checks](https://developers.google.com/tag-platform/security/guides/consent-debugging) and the [CookieBeam integration reference](https://cookiebeam.com/docs/integrations/google-consent-mode). Inspect initial consent defaults and subsequent updates for the types your integration uses. Test acceptance, rejection, and withdrawal.

### Can I implement Consent Mode without Google Tag Manager?

Yes. Google Tag Manager is not required. With direct installation, the CookieBeam loader issues the consent default and later updates through `gtag`. Place it before the `<script async src="https://www.googletagmanager.com/gtag/js">` tag and its `config` commands. If you use GTM, use the CookieBeam template on **Consent Initialization – All Pages** instead. See the [integration reference](https://cookiebeam.com/docs/integrations/google-consent-mode).

### What happens to my Google Ads campaigns if I don't implement Consent Mode v2?

Without consent signals for traffic in the policy's scope, Google can limit features that depend on consent, such as ad personalization and remarketing audiences. Conversions from visitors who decline are not measured with cookies, and modeling needs a supported consent mode setup. Check the [EU user consent policy](https://www.google.com/about/company/user-consent-policy/) and your account's Diagnostics tab for the current effect on your account.

### How does CookieBeam automate Consent Mode v2 implementation?

With direct installation, the published loader sets the consent default on page load. It runs before Google tags when you place it first in the head. It then sends a `gtag('consent', 'update', ...)` command after each visitor choice, mapped from the accepted categories. Returning visitors with stored consent start from their stored categories. Withdrawal sends an update with denied states, and partial consent is mapped per category. With the GTM template, the template sets the defaults and CookieBeam sends the updates. You configure this on the App Integrations page and in regional rules. See the [integration reference](https://cookiebeam.com/docs/integrations/google-consent-mode).

For CookieBeam settings and category mappings, use the [canonical integration reference](https://cookiebeam.com/docs/integrations/google-consent-mode). For the full technical reference, see Google's [consent mode implementation guide](https://developers.google.com/tag-platform/security/guides/consent). The [Google Ads EU user consent policy](https://www.google.com/about/company/user-consent-policy/) covers the EEA enforcement requirements, and the [GTM consent configuration documentation](https://developers.google.com/tag-platform/tag-manager/templates/consent-apis) covers the Tag Manager template side. For vendor-specific bridges beyond Google, see the [consent mode integrations overview](https://cookiebeam.com/guides/consent-mode-integrations-cookiebeam-2026).
