# Basic vs Advanced Google Consent Mode

> Compare Basic and Advanced Google Consent Mode, including tag loading, cookieless pings, GTM settings, verification, and when each mode makes sense.

Author: OptinStack Team  
Published: 2026-07-01  
Page: https://community.optinstack.com/articles/basic-vs-advanced-consent-mode  
Markdown: https://community.optinstack.com/llms.md/articles/basic-vs-advanced-consent-mode

Google Consent Mode v2 has two implementation patterns: Basic and Advanced\. Both use the same Google consent signals, but they differ in when Google tags load and whether anything is sent to Google before the visitor grants consent\.

Use this article with [Integrate OptinStack with Google Tag Manager](https://community.optinstack.com/articles/integrate-optinstack-with-google-tag-manager) for the container setup and [Set up Google Consent Mode v2](https://community.optinstack.com/articles/set-up-google-consent-mode-v2) for the OptinStack category mapping\.

> **Warning:** Basic Consent Mode is the recommended default for privacy-first implementations because Google tags stay blocked until consent is granted. Advanced Consent Mode can improve Google modeling, but it sends cookieless pings before consent and should be reviewed with your legal or privacy team before enabling.

*Basic vs Advanced Consent Mode at a glance*

| Feature | Basic Consent Mode | Advanced Consent Mode |
| --- | --- | --- |
| Google tag loading | Google tags stay blocked until the visitor interacts with the consent banner and grants the required consent. | Google tags load when the page opens after consent defaults are set, then adapt to denied or granted consent states. |
| Data before consent | No Google data is sent before consent. If the visitor denies consent, Google tags remain blocked. | When consent is denied, Google tags can send consent state and cookieless pings. Cookies are not written until consent is granted. |
| Modeling | Google Ads conversion modeling relies on a more general model. | Google can use advertiser-specific modeling because denied-state pings provide more signal. |
| Typical GA4 setup in GTM | Fire GA4 after analytics consent, usually with an OptinStack consent event and an analytics_storage Additional Consent Check. | Let the Google tag or GA4 tag load after Consent Initialization with built-in consent checks and no analytics_storage Additional Consent Check. |
| Third-party tags | Keep blocked until the matching OptinStack category is granted. | Keep blocked until the matching OptinStack category is granted. Advanced mode is for consent-aware Google tags, not general third-party pixels. |
| Best fit | Sites that need strict pre-consent blocking and do not want pre-consent Google pings. | Sites that have legal approval and need better Google Ads or GA4 modeling when analytics or marketing consent is denied. |

## Basic Consent Mode

In Basic Consent Mode, your measurement and advertising Google tags do not load until the visitor grants the relevant consent\. If you use GTM, the GTM container itself can still load and the OptinStack consent tag still runs on Consent Initialization, but GA4, Google Ads, Floodlight, and similar measurement tags stay blocked until consent\. If the visitor rejects analytics or marketing, the related Google tags remain blocked\.

With OptinStack and GTM, Basic mode means the OptinStack consent tag still runs on Consent Initialization to set defaults, but GA4, Google Ads, and other measurement tags wait for the consent category they need before firing\.

- Install the OptinStack runtime as early as possible in the page head so direct trackers can be blocked before they run\.
- Fire the OptinStack GTM template on Consent Initialization \- All Pages so consent defaults are available before other GTM tags\.
- For GA4 in Basic mode, use an OptinStack analytics consent trigger such as optinstack\_analytics\_accepted and require analytics\_storage in Additional Consent Checks\.
- For marketing tags, use optinstack\_marketing\_accepted and require ad\_storage, ad\_user\_data, and ad\_personalization as appropriate\.

## Advanced Consent Mode

In Advanced Consent Mode, consent\-aware Google tags can load when the page opens, after the OptinStack consent tag has set denied defaults\. While consent is denied, Google tags adjust their behavior and send cookieless pings instead of full measurement data\. When consent is granted, Google tags can write storage and send full measurement data\.

Advanced mode is mainly useful for native Google tags such as the Google tag, GA4, Google Ads, Floodlight, and Conversion Linker\. It should not be used as a reason to let non\-Google analytics, advertising, heatmap, or personalization tags run before consent\.

*Recommended GTM settings by mode*

| Tag type | Basic mode | Advanced mode |
| --- | --- | --- |
| OptinStack consent tag | Consent Initialization - All Pages. Set conservative denied defaults for optional categories where consent is required. | Consent Initialization - All Pages. Set conservative denied defaults before Google tags can evaluate consent. |
| Google tag or GA4 | Trigger only after analytics consent and require analytics_storage in Additional Consent Checks. | Trigger on Initialization or All Pages after Consent Initialization. Keep built-in consent checks and do not add analytics_storage as an Additional Consent Check. |
| Google Ads or Floodlight | Trigger only after the conversion event and marketing consent, then require the relevant advertising consent types. | Use built-in consent checks for supported Google tags. Add extra checks only if your policy requires Basic behavior. |
| Non-Google analytics or advertising tags | Use OptinStack custom event triggers and matching Additional Consent Checks. | Use the same Basic-mode gating. These tags do not get a free pre-consent load path just because Google tags use Advanced mode. |

## Which Mode Should You Choose?

- Choose Basic mode if your policy is no Google requests before consent, if you are unsure, or if your legal review has not approved cookieless pings\.
- Choose Advanced mode only when your team understands the data flow, needs advertiser\-specific modeling, and has reviewed the approach for the regions where your banner appears\.
- Mix modes carefully: Google tags can use Advanced mode while third\-party tags remain blocked until the visitor grants the relevant OptinStack category\.

## How To Verify The Setup

### Basic mode checks

Before interacting with the banner, you may still see the GTM container request to googletagmanager\.com if GTM is installed\. What should stay absent in Basic mode are the gated measurement and ads requests such as google\-analytics\.com, googleadservices\.com, and doubleclick\.net until consent is granted\.

- After accepting analytics or marketing, the expected Google requests should appear and Tag Assistant should show a later Consent update with granted values\.
- If a tag does not fire after consent, check whether it only had an All Pages trigger\. Add an OptinStack custom event trigger so it can fire after consent changes\.

### Advanced mode checks

- In Tag Assistant, check the earliest Consent event and confirm that ad\_storage, ad\_user\_data, ad\_personalization, and analytics\_storage have the expected default values\.
- Before consent, open DevTools and check Application or Storage \> Cookies for your domain\. A GA4 tag configured for Advanced mode may send a request, but it should not write \_ga or \_ga\_\* cookies while analytics\_storage is denied\.
- In the Network panel, filter for google\-analytics\.com, googletagmanager\.com, googleadservices\.com, doubleclick\.net, or gcs\. A denied\-state Advanced\-mode request often includes a gcs value such as G100 when both ad\_storage and analytics\_storage are denied\.
- Treat gcs and gcd URL parameters as diagnostic hints, not your primary source of truth\. Google can change their internal encoding, so use Tag Assistant to confirm the actual Consent default and update states\.
- After accepting consent, Tag Assistant should show updated granted values, subsequent Google requests should use the new state, and GA storage such as \_ga or \_ga\_\* may appear if analytics consent is granted\.

> **Tip:** If Tag Assistant reports that defaults are set too late, move the OptinStack consent tag to Consent Initialization - All Pages and remove any older Custom HTML consent commands that compete with OptinStack.

## Official Google References

- [Set up consent mode in Google Tag Manager](https://support.google.com/tagmanager/answer/14009635?hl=en)
- [Tag Manager consent mode support](https://support.google.com/tagmanager/answer/10718549?hl=en)
- [Consent mode overview](https://developers.google.com/tag-platform/security/concepts/consent-mode)
- [Set up consent mode on websites](https://developers.google.com/tag-platform/security/guides/consent)
- [Create a consent mode template with Tag Manager consent APIs](https://developers.google.com/tag-platform/tag-manager/templates/consent-apis)
- [Troubleshoot Consent Mode with Tag Assistant](https://developers.google.com/tag-platform/security/guides/consent-debugging)

## Further Reading

- [Consent Mode V2 For Google Tags by Simo Ahava](https://www.simoahava.com/analytics/consent-mode-v2-google-tags/)

### Is Advanced Consent Mode more compliant than Basic Consent Mode?

No. Basic and Advanced are implementation patterns, not legal determinations. Basic sends no Google data before consent. Advanced can send cookieless pings before consent, so it needs a separate privacy and legal review.

### Should non-Google marketing tags use Advanced mode?

No. Keep non-Google advertising, analytics, heatmap, and personalization tags blocked until the visitor grants the matching OptinStack category. Advanced mode applies to consent-aware Google tags.

### Why is GA4 not firing until I accept analytics?

That is expected in Basic mode. GA4 is configured to wait for analytics_storage. If your team intentionally chooses Advanced mode, remove analytics_storage from Additional Consent Checks and let the Google tag use its built-in consent checks after OptinStack has set defaults.

### Can I use Basic mode for analytics and Advanced mode for ads?

You can configure tags differently, but keep the setup easy to audit. Document which Google tags are allowed to load with denied defaults and which tags must wait for explicit consent. Third-party tags should remain consent-gated.
