Skip to content

Debug Google Consent Mode

Last updated: October 3, 20265 min readIntermediateBrandDeveloper

If Google Ads, GA4, or other Google services show consent signal issues, use these debugging steps to verify Arqam360's GCM v2 implementation.

Consent Mode or TCF signals missing or wrong on your Google tags? Contact Arqam360 support first, not Google. Email admin@arqam360.com or use our contact page. We troubleshoot your Arqam360 setup, your banner and your Consent Mode signals, on every plan. Google support may ask for proof that you contacted your consent management platform first.

Debug mode: check your consent load order

Consent Mode only works as designed when the consent default is set before any Google tag runs. The Arqam360 script checks this on every page load, just before it sets its own default. Debug mode prints the full result in your browser's console (DevTools, then Console). Visitors see nothing either way. Turn it on in any of these ways:

  • Add data-debug="true" to the Arqam360 script tag, as below. It stays on for every page load until you remove it.
  • Add ?debug=1 to the page URL, for example https://yourstore.com/?debug=1. Only that page load is affected.
  • Add ?arqam_debug=1 instead, if your site already uses a debug parameter for something else.
javascript
<script src="https://cdn.arqam360.com/widget-v2.js"
        data-key="YOUR_SITE_KEY"
        data-debug="true"></script>
On Shopify, Salla, Zid, WordPress and Google Tag Manager installs you don't edit the script tag yourself, so add ?debug=1 to the page URL instead. The check is the same.

What you see without debug mode

The check also runs when debug mode is off. When it finds a real problem, it writes one warning per problem to the console, so you can spot it while testing:

  • Late consent default: "[Arqam360] Consent Mode: Google tags ran before the Arqam360 consent default was set, so they may have sent data before consent applied. Load the Arqam360 script before every Google tag (gtag.js / Google Tag Manager). Detected: …". The Detected part says what the check saw: a Google tag had already executed (window.google_tag_manager is set), dataLayer already held a command such as "config" before any consent default, or Google requests had already started, with their URLs.
  • Late TCF stub, only when TCF is enabled: "[Arqam360] TCF: Google tags ran before the Arqam360 TCF stub (window.__tcfapi) was registered, so they could not read the visitor's TC string. Load the Arqam360 script before every Google tag."
  • Both warnings end with the same pointer: "First check whether the late tag is served from your own domain through Google tag gateway (GTG); if it is, follow the GTG instructions in this guide: https://arqam360.com/help/installation/google-tag-gateway".

What debug mode adds

With debug mode on, the console also shows:

  • Check passed: "[Arqam360 debug] Consent Mode check passed: the consent default was set before any Google tag ran." With TCF enabled it reads "the consent default and the TCF stub were set". Nothing to fix.
  • Near miss: "[Arqam360 debug] Consent Mode: a Google tag script appears before the Arqam360 script (…). It has not run yet, so the default is on time on this load, but on a faster connection it can run first. Move the Arqam360 script above it.", followed by the same Google tag gateway pointer. The order works by luck on that load, so fix it.
  • Google tag gateway: "[Arqam360 debug] A Google tag on this page is served from a first-party URL, which usually means Google tag gateway. See https://arqam360.com/help/installation/google-tag-gateway".
  • The full result: "[Arqam360 debug] Load-order findings:" followed by an object you can expand. late, tcfLate and risk say which problem was found; ran, queued, firstCommand, requests and scriptsBefore say what the check saw; gtgSuspected says whether a Google tag looked like it was served through Google tag gateway.

If the check finds a late default

1

Check for Google tag gateway first

Find the late tag in the message. If it loads from your own domain rather than googletagmanager.com, it is probably served through Google tag gateway, and the fix depends on how the gateway was set up. Follow the Google tag gateway guide linked below.

2

Otherwise, load Arqam360 first

Make the Arqam360 script the first script in <head>, above gtag.js and the Google Tag Manager snippet. In Google Tag Manager, use the Arqam360 template on the Consent Initialization - All Pages trigger.

3

Reload with ?debug=1

Check that the console now shows "Consent Mode check passed".

Late tag served from your own domain? Google tag gateway (GTG) and consent timing explains how to verify it and what to change.

When the check finds a problem, the Arqam360 script also reports it to Arqam360: your site's hostname, the script version and which checks failed. No visitor data is included.

Debugging Tools

  • Google Tag Assistant (tagassistant.google.com) — Real-time consent state monitoring
  • Browser DevTools Console — View gtag() calls and consent events
  • Google Ads Diagnostics — Check consent coverage in your Google Ads account
  • GA4 DebugView — See real-time events and consent parameters
1

Open Tag Assistant

Go to tagassistant.google.com and connect to your website.

2

Check consent state

In the Consent tab, verify you see 'denied' for all parameters on page load.

3

Accept consent

Click accept on your consent banner.

4

Verify update

Check Tag Assistant shows consent parameters changing to 'granted'.

5

Check data layer

In browser console, type dataLayer and verify consent events are logged.

Google Tag Assistant consent view
Tag Assistant showing consent state transitions.

Common Issues

  • No consent signal — Arqam360 script loads after Google tag. Fix: ensure Arqam360 loads first.
  • Consent stuck on denied — Check if there's a JavaScript error preventing the consent update from firing.
  • Only some parameters update — Verify your consent categories map correctly to GCM parameters.
  • Tag Assistant shows 'Unknown' — Clear Tag Assistant cache and reconnect.

If a Google tag runs before your consent default, or your tags use Google tag gateway: Google tag gateway (GTG) and consent timing.

Tag Assistant is the definitive tool for debugging GCM v2. If consent signals look correct in Tag Assistant, the issue is likely in your Google Ads or GA4 configuration, not in Arqam360.

The two ways to run Consent Mode, and how to switch: Consent Mode: basic vs advanced.

Next Steps

  1. 2Learn about GCM v2

Was this article helpful?