Articles on: Integrations
This article is also available in:

Google Consent Mode debug console

Overview


Debug mode / console diagnostics is a diagnostic option inside the Pandectes GDPR Compliance Google Consent Mode integration. When enabled, Pandectes injects a lightweight script into your Shopify storefront that monitors the dataLayer in real time and reports consent mode problems directly to the browser developer console.


It detects the following classes of issues:


  • A tag reading consent state before any default was set (late consent signal), commonly caused by Google Tag Gateway (GTG).
  • A consent update command arriving before a default command (wrong execution order).
  • A default command arriving after an update command has already been sent (wrong execution order).
  • Consent types in the default command set to granted when they should be denied (incorrect default permissions).


Use it when:


  • You are setting up Google Consent Mode for the first time and want to verify everything is working.
  • Google Tag Assistant, Google Ads, or Google Analytics is reporting a consent mode warning (for example, "default consent not set" or "consent set too late").
  • You suspect a theme change or a third-party app has broken the consent signal.


Important: Debug mode outputs to the browser developer console on your live storefront, not inside the Pandectes app. Disable it once you have finished debugging. Leave it enabled in production only if you are actively investigating an issue.



2. How to enable debug mode


  1. In Shopify Admin, go to Apps > Pandectes GDPR > Integrations.
  2. On the Google Consent Mode card, click Configure.


Screenshot


  1. Scroll down and click Advanced settings to expand the section.
  2. Check Debug mode / console diagnostics.
  3. Click Save.


Screenshot


The option is described in the app as: "Helps to detect late consent, missing commands, invalid execution order and incorrect permissions. Late consent may be observed in cases where Google Tag Gateway (GTG) has been adopted."


3. How to read the debug output


With debug mode enabled, open your live Shopify storefront in a browser (not the Shopify admin preview), then open Developer Tools → Console tab.


All messages from the debug script are prefixed with:


[Pandectes :: Google Consent Mode debug]:


Messages appear as warnings (yellow triangle icon). If the console is clean (no messages with this prefix), your consent mode setup is working correctly.


To filter to only Pandectes debug messages, type Pandectes in the Console filter box.


Command tables


Screenshot


Alongside any warnings, the debug script logs a console table for every consent command it detects in the dataLayer, one row per consent type, showing its value. This lets you inspect exactly what was sent to Google for each default and update command. If no warning messages appear, the commands are well-formed and in the correct order.


4. Console messages


Message:

a tag read consent state before a default was set (late consent signal).
This often happens if Google Tag Gateway has been adopted.
To verify visit https://help.pandectes.io/en/article/gtg.


Screenshot


What it means:
A Google tag read the consent state before Pandectes had a chance to set the consent defaults. The tag fired without knowing what the user's (or the store's configured default) consent state was. This is the most common consequence of Google Tag Gateway (GTG) with one-click CDN injection, which loads the Google tag before any other scripts on the page.


What to do:
Follow the remediation guide in the Google tag gateway (GTG) and consent article. In summary:


  • Recommended: Enable advanced consent mode (U+C) in Pandectes. This removes the dependency on load order entirely.
  • Alternative: Consolidate all Google tags into a GTM container and use the Pandectes CMP tag template.
  • Alternative: Switch from one-click CDN injection to manual GTG setup, placing the GTG snippet after pandectes-rules.js in theme.liquid.


4.2 Update command without a prior default


Message:

"update" command was sent but there was no "default" command before it.


Screenshot


What it means:
A consent update command (which reflects the user's actual banner choice) was sent to Google before any default command had been sent. This means Google tags had no initial consent baseline to work from. Without a default, Google cannot correctly model consent for users who leave the page before interacting with the banner.


What to do:
Ensure that pandectes-rules.js is loading correctly and is positioned before all Google tags in your theme.liquid. This script is responsible for sending the default command on page load. If it is missing or loading too late, the update arrives first. See the Integrations setup guide for instructions on verifying and fixing the manual setup.


4.3 Default command after an update


Message:

"default" command was sent but there was already an "update" command before it.


What it means:
The default command (sent by Pandectes on page load to establish the baseline consent state) arrived after an update command had already been sent. This is the reverse of the expected order and typically means the Pandectes script is loading later than a Google tag that is also trying to initialise consent mode.


What to do:
This is a load-order problem. Check that pandectes-rules.js appears as early as possible in <head>, specifically before any Google tags or GTM snippet. If you are using Google Tag Gateway, this warning may appear alongside the late consent signal warning; in that case, the GTG remediation steps above apply.


4.4 Incorrect default permissions


Message:

all types in a "default" command should be set to "denied" except for
security_storage that should be set to "granted"



Screenshot


What it means:
The default consent command that Pandectes sent to Google has one or more consent types set to granted instead of denied. In opt-in regions (EEA, UK, Switzerland), consent types such as ad_storage, ad_user_data, ad_personalization, and analytics_storage must default to denied before the user makes a choice. Only security_storage is expected to default to granted. Having any of the others default to granted means Google tags may run with full measurement before the user has consented.


What to do:
Pandectes derives each default from the cookie category the consent type is mapped to and from the consent model of the visitor's region.


  1. Check that the region uses an opt-in model (for example Strict opt-in). See Consent Model & Regions (New Version).
  2. In Integrations > Google Consent Mode > Advanced settings, check the consent type mappings. ad_storage, ad_user_data & ad_personalization should map to a marketing or targeting category, analytics_storage to performance, and security_storage to strictly necessary. A consent type mapped to Strictly necessary is always granted.
  3. Save and re-check the console.


5. Relevant documentation


Pandectes



Google


Updated on: 27/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!