Overview
If Termly's GCM Checker has flagged a late consent signal on your site, your Google tags may be collecting data before your visitors have had a chance to consent, which can affect your compliance standing and your Google ad measurement.
This article explains what a late consent signal is, what Google Tag Gateway (GTG) is, how to find out whether it affects your site, and exactly what steps to take to fix it.
1. What is a late consent signal?
Google Consent Mode works by reading your visitors' consent choices before Google tags (like Google Analytics or Google Ads) are allowed to run. A "late" consent signal means that one or more of your Google tags fired, or read the consent state, before Termly had a chance to set it.
In practice this usually happens because:
- A Google tag loads before the Termly script on the page, or
- The Termly script loads asynchronously and a Google tag gets a head start.
Why this matters: Google requires that consent defaults are set before any Google tag reads the consent state. If they are not, Google may treat those signals as non-compliant, which can affect your ability to use conversion measurement and remarketing features.
2. What is Google Tag Gateway (GTG)?
Google Tag Gateway (GTG) is a feature that lets your website serve Google tags from your own domain (e.g. yoursite.com/gtag/js) instead of directly from Google's servers. It is typically set up through a CDN provider like Cloudflare using a one-click integration.
GTG is relevant here because of a specific side effect: when GTG is enabled via a one-click CDN injection, the CDN often injects the Google tag script automatically, and that injection may happen at a point in the page load where your CMP has not yet run. This means you may have less control over the load order than you would with a manually installed tag.
One-click CDN injection and load order: When GTG is enabled through a one-click CDN option (such as Cloudflare's Google Tag Gateway), the tag is injected at the CDN level before your page HTML is served to the browser. This can prevent you from controlling whether the tag loads before or after Termly. If your site uses this setup, additional steps are needed.
For Google's official documentation on GTG, see: Google Tag Gateway for Advertisers
3. How to check whether your site uses GTG
Termly does not auto-detect GTG enrollment. You will need to verify this yourself using Google Tag Assistant, Google's official tool for inspecting tag behaviour on your site.
Steps to check in Google Tag Assistant
- Open Google Tag Assistant
- Enter your website URL and click Connect.
- Tag Assistant will open your site in a debug window. Look at the tags listed in the left panel.
- If a tag is served from your own domain (e.g. yoursite.com/gtag/js) rather than from www.googletagmanager.com or www.google-analytics.com, your site is likely using GTG.
- For step-by-step verification guidance from Google, see: Tag Manager Help: GTG verification
4. What to do next
Once you know whether GTG is involved, follow the path below that applies to your situation.
Path A: Late consent detected, and your site IS enrolled in GTG
Because GTG (especially via one-click CDN injection) limits your control over tag load order, the recommended solution is to adopt Advanced Consent Mode (also called "Unlocked + Consent" or U+C mode). This lets Google tags fire in a cookieless state immediately, then update once consent is given: so load order is no longer an obstacle.
You have three options:
- Enable Advanced Consent Mode (U+C) and configure Data Transmission Controls
- In your Termly dashboard, go to Consent Mode Settings and enable Advanced Consent Mode (U+C).
- In Google Tag Manager or your gtag configuration, enable Data Transmission Controls and set Global Consent Defaults according to your regional requirements.
- Re-run the GCM Checker to confirm the late signal is resolved.
For more information, see: Google: Advanced Consent Mode
- Migrate your tags into a GTM container and deploy GTM via GTG
Move all Google tags into a Google Tag Manager container, then configure GTG to serve GTM rather than individual tags. This gives you full control over tag firing rules inside GTM, including consent-based triggers.
See Google's guide: Set up GTG with GTM
- Set up GTG manually so you control the script import order
Instead of using a one-click CDN injection, configure GTG manually. This lets you place the GTG script in your page HTML at the correct position, after the Termly consent script but before other Google tags.
See Google's manual setup guide: Set up Google Tag Gateway manually
Path B: Late consent detected, and your site is NOT enrolled in GTG
This is a simpler fix. Your Google tag is loading before Termly, and you just need to correct the script order.
You have two options:
- Move the Termly script above your Google tags in your page HTML
In your page <head> section, make sure the Termly consent script appears before any Google tag scripts (gtag.js, GTM, or Google Analytics). The correct order is:
- Termly consent script (sets consent defaults)
- Google tag scripts (now read a valid consent state)
- Enable wait_for_update in your Termly settings
- If reordering scripts is not possible in your setup, you can use Google Consent Mode's wait_for_update parameter. This tells Google tags to pause and wait a set number of milliseconds for a consent update before proceeding.
- wait_for_update is a Google Consent Mode parameter that specifies a time limit (in milliseconds) for Google tags to wait for a consent update from a CMP. The recommended default is 500ms, though this can be adjusted based on your banner load speed.
- To configure this, add wait_for_update: 500 to your gtag consent default command: gtag('consent', 'default', {'wait_for_update': 500, ...});
For full documentation, see: Google: Consent Mode: wait_for_update
5. Verifying the fix
After making changes, re-run the GCM Checker from your Termly dashboard (navigate to GCM Checker in the main navigation). The tool will re-scan your pages and confirm whether the late consent signal has been resolved.
You can also use Google Tag Assistant to verify in real time that consent defaults are being set before your Google tags fire.
6. Still need help?
If you have questions about your specific setup, contact Termly Support.