# Basic vs Advanced Google Consent Mode

Google Consent Mode v2 has two implementation approaches. Consent Pro supports both through the [GTM template](/web-app/google-tag-manager#_2-import-the-consent-pro-template-to-google-tag-manager) and Google Consent Mode signals.

Select **Basic** to block Google measurement until the required consent, or **Advanced** to allow supported cookieless measurements while storage is denied. For Basic GA4 initialization, recommend `analytics-activated` plus an `analytics_storage` additional check. For Advanced Google initialization, use Initialization — All Pages and built-in consent behavior. For an existing container, confirm the intended approach before changing Google tags. A template name or the presence of a tag does not establish how measurement behaves.

## At a glance

|                                       | **Basic**                                                      | **Advanced**                                                           |
| ------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------- |
| **Tag loading**                       | Google measurement blocked until required consent              | Google tags load before consent; behavior adjusts from consent signals |
| **Data before consent**               | No Google measurement sent before required consent             | Cookieless pings when storage is denied                                |
| **Google tag initialization trigger** | `analytics-activated`                                          | Initialization                                                         |
| **GA4 Additional Consent Checks**     | Require `analytics_storage` granted                            | **Not set**                                                            |
| **Third-party initialization tags**   | Matching category activation event + additional consent checks | Same as Basic (still blocked until consent)                            |
| **Best for**                          | Prevent pre-consent Google measurement                         | Behavioral / conversion modeling for users who deny analytics          |
| **Legal review**                      | Review requirements and configuration                          | Recommended before enabling                                            |

For the step-by-step GTM walkthrough, see [How to Set Up Google Tag Manager](/web-app/google-tag-manager). Steps 5–7 in that guide show consent-dependent initialization and additional checks. Conversion tags keep their business-event triggers in either mode.

## Basic Consent Mode

Google measurement tags remain blocked until the required consent is granted. This statement concerns Google measurement tags, not every request made by the website.

This matches Google's [Basic Consent Mode](https://support.google.com/tagmanager/answer/14009635) implementation — a privacy-first approach where Google tags remain inactive until consent is given.

**How Consent Pro implements Basic mode:**

- The Consent Pro Init tag fires on **Consent Initialization — All Pages** (Step 3 of the [GTM setup guide](/web-app/google-tag-manager))
- Region defaults set to **Denied** for opt-in banners (Step 4) — correct for both Basic and Advanced
- Consent-dependent initialization tags should use the matching category activation event plus matching checks; conversion tags retain their business-event triggers
- Tags require **Additional Consent Checks** matching their Consent Pro category (Step 7)
- The Google tag initialization uses **Analytics Activated** (`analytics-activated`) plus `analytics_storage` granted; GA4 event tags retain their original business-event triggers

Choose the implementation and category requirements according to your organization’s policy; verify the resulting network behavior.

## Advanced Consent Mode (optional)

When `analytics_storage` is **Denied**, native Google tags can still send [cookieless pings](https://support.google.com/analytics/answer/13802165) — requests without analytics storage used for behavioral modeling in GA4. No analytics cookies are set until the user accepts.

Use Advanced mode only if you need conversion or behavior modeling for users who deny analytics consent. Advanced mode sends data from unconsenting users for modeling purposes, **consult your DPO or legal counsel before enabling.**

### Google tags vs marketing tags

| Tag type                                                              | Mode     | GTM approach                                                   |
| --------------------------------------------------------------------- | -------- | -------------------------------------------------------------- |
| **Native Google initialization tags** (Google tag, Conversion Linker) | Advanced | Built-in consent checks; tag loads on Initialization           |
| **Third-party initialization tags** (Facebook Pixel, Hotjar, etc.)    | Basic    | Matching category activation event + Additional Consent Checks |

The trigger-replacement example in Steps 5–7 of the [GTM setup guide](/web-app/google-tag-manager) applies to **consent-dependent initialization tags**. Preserve business-event triggers for Google Ads and GA4 event tags. Configure GA4 separately for Advanced mode as described below.

### Google Tag / GA4 (Advanced setup)

In **Google Tag Manager**, use the **Google Tag** tag type (or a legacy **Google Analytics: GA4 Configuration** tag).

1. Set the trigger to **Initialization — All Pages** (rather than a category activation or Consent Updated trigger)
2. Under **Consent Settings**, leave **Built-in Consent Checks** as default (`analytics_storage` is built-in for GA4 tags)
3. Do **not** add `analytics_storage` to **Additional Consent Checks** — that would block the tag when storage is denied
4. Keep marketing initialization tags consent-gated and preserve conversion event triggers as described in the [GTM setup guide](/web-app/google-tag-manager)
5. Keep Consent Pro Init on **Consent Initialization — All Pages** and the ordinary Google tag on **Initialization — All Pages**. Defaults are established before ordinary tags; do not place measurement tags on Consent Initialization or rely on priority to establish consent ordering.

### GTM Consent Settings reference

| Setting                   | Basic mode (GA4)                    | Advanced mode (GA4)     |
| ------------------------- | ----------------------------------- | ----------------------- |
| Initialization trigger    | `analytics-activated`               | Initialization          |
| Built-in Consent Checks   | Default                             | Default (do not change) |
| Additional Consent Checks | Require `analytics_storage` granted | **Not set**             |

Category events fire once per page when active, including remembered consent. Review an existing valid setup before replacing triggers. Activation does not stop already-loaded code after withdrawal; verify subsequent behavior separately.

## Verify your setup

**Basic mode:**

- Before interacting with the banner, no requests to `google-analytics.com` or `googletagmanager.com` from Google measurement tags (the GTM container itself can still load)
- After accepting analytics, GA4 requests appear and `_ga` cookie is set
- Use [Google Tag Assistant](https://tagassistant.google.com/) to confirm consent defaults are set before tags fire

**Advanced mode:**

- Before interacting with the banner, open the browser Network tab and filter for `google-analytics.com` or `googletagmanager.com`
- You should see requests with `gcs=G100` (both ad and analytics storage denied)
- No `_ga` cookie should be set until the user accepts analytics
- After accepting analytics, a new request should show `gcs=G111` and `_ga` / `_ga_*` cookies should appear

## Troubleshooting

### GA4 is not firing until I accept analytics

This is expected in **Basic mode**. GA4 is configured to fire only after the user accepts the Analytics category. If you need cookieless pings before consent, switch GA4 to **Advanced mode** as described above.

### GA4 is not sending cookieless pings before consent

Your GA4 tag is likely still on **Basic mode** setup:

- Trigger is **Analytics Activated** (`analytics-activated`) or **Consent Updated** instead of Initialization
- **Additional Consent Checks** requires `analytics_storage` granted
- **Initialization order** — Consent Pro Init uses Consent Initialization; the ordinary Google tag uses Initialization. Priority does not replace this ordering.

Update the GA4 tag per the [Advanced setup](#google-tag-ga4-advanced-setup) section.

### Marketing tags fire before consent

Marketing and third-party tags need matching Additional Consent Checks or a verified consent integration. Preserve purchase and lead triggers. Prefer the matching category activation event for consent-dependent initialization. Reserve Consent Updated for deliberately configured update handling. See Steps 6–7 of the [GTM setup guide](/web-app/google-tag-manager).

## Further reading

- [Set up consent mode in Google Tag Manager](https://support.google.com/tagmanager/answer/14009635) — Google's official Basic vs Advanced overview
- [Consent mode for web (Google Developers)](https://developers.google.com/tag-platform/security/guides/consent)
- [How to Set Up Google Tag Manager with Consent Pro](/web-app/google-tag-manager) — full step-by-step GTM guide

## Conversion tags and withdrawal

Keep purchase, lead, form, and SPA event triggers intact. Basic mode and blocked third-party tags need matching additional consent checks; supported native Google tags in Advanced mode use their built-in consent behavior. Consent Updated is not a purchase event. Test rejection, partial grants, returning visitors, and withdrawal in Tag Assistant and the browser. Previously sent data cannot be recalled. See [Consent-aware GTM troubleshooting](/knowledge/gtm-troubleshooting).
