1. Web-and-CMS-Integrations
  • Getting-Started
    • CYBEXO Developer Documentation
    • Quickstart (5 to 10 Minutes)
    • Documentation Overview
    • Concepts and Glossary
  • Compliance-and-Standards
    • Compliance Overview
    • IAB TCF v2.3 Support
    • Google Consent Mode v2 Validation
    • TCF API Validation
    • Audit Checklist (Pre-Launch)
  • Web-and-CMS-Integrations
    • CYBEXO CMP SDK – Web & GTM Setup
    • Integrate CYBEXO CMP with Webflow and Wix
    • Integrate CYBEXO CMP with WordPress
    • Integrate CYBEXO CMP with Drupal
    • Integrate CYBEXO CMP with Shopify
    • Google Tag Manager (GTM) Template Guide
  • Mobile-SDKs
    • CYBEXO CMP SDK - iOS Setup
    • iOS SDK API Reference
    • CYBEXO CMP SDK - Android Setup
    • Android SDK API Reference
    • App Attribution Partner (AAP) Integrations
  • Developer-Reference
    • Web JS API Reference
    • Consent Event Schema
    • Deployment and Environments
    • CYBEXO Debug Tool
    • Troubleshooting Playbook
    • Performance and Best Practices
    • Accessibility and UX Guidelines
    • Localization Workflow
    • Migration Guide
  • Security-and-Privacy
    • Security Overview
    • Privacy Architecture
    • Data and Logging Transparency
    • Subprocessors
    • CSP and Network Allowlist
  • Enterprise-and-Legal
    • DPA and Legal Pack
    • RFP Feature Matrix
    • Status and Reliability
    • Support and Escalation
    • CYBEXO CMP SDK – Commercial Licence
  • Operations
    • Changelog and Version Policy
  1. Web-and-CMS-Integrations

Google Tag Manager (GTM) Template Guide

Last updated: April 27, 2026
Use this page as the primary implementation guide for deploying Cybexo CMP through the Google Tag Manager Community Template Gallery.

1. Ownership Model#

Typical production ownership:
Customer owns GTM container access, tag creation, trigger assignment, and publishing.
Cybexo (CMP provider) owns template correctness, documentation, support path, and troubleshooting guidance.
Installing a template from Gallery does not create a live tag by itself. A tag instance must still be created and published in the customer container.

2. Prerequisites#

Before setup:
Active GTM web container.
Valid Cybexo Settings ID.
No duplicate CMP loaders (avoid running direct script embed and GTM CMP tag at the same time unless intentionally designed).

3. Install from Community Template Gallery#

1.
In GTM, open Templates.
2.
Select Search Gallery.
3.
Add Cybexo CMP.
4.
Confirm template status shows linked to Gallery.

4. Create the Live CMP Tag#

1.
Open Tags -> New.
2.
Choose tag type Cybexo CMP.
3.
Configure required field:
Settings ID (required)
4.
Configure optional policy fields as needed:
Global Defaults (JSON)
Region Override List (CSV, optional)
Region Override Defaults (JSON, optional)
Wait for Update (ms) (minimum enforced at 500)
5.
Set trigger:
Consent Initialization - All Pages
6.
Save and publish.
Important template behavior:
Developer ID is locked by template and not customer-editable.
Loader endpoints are locked to Cybexo domains and not customer-editable.
wait_for_update is clamped to a minimum of 500ms.

5. Google Tag Gateway (GTG) and Late Consent Signals#

GTG in this guide means Google tag gateway for advertisers.
Why this matters:
GTM controls tag execution within the container runtime.
GTG changes how Google scripts are served/routed (first-party path/domain), and can affect tag execution behavior.
One-click CDN script injection outside GTM often prevents customer control over script import order, which can produce late consent defaults.
Google references:
GTG overview (Google for Developers): https://developers.google.com/tag-platform/tag-manager/gateway
GTG self-service/manual setup (Google for Developers): https://developers.google.com/tag-platform/tag-manager/gateway/setup-guide?setup=manual
GTG in GTM (Cloudflare): https://support.google.com/tagmanager/answer/16061641?hl=en
GTG with CDN: https://support.google.com/tagmanager/answer/16222402?hl=en
About GTG for advertisers: https://support.google.com/google-ads/answer/16816376?hl=en
How to verify a tag/domain is enrolled in GTG:
1.
In Google tag settings (or GTM Google tag gateway screen), verify domain status is Active.
2.
In Tag Assistant, verify hits route through the configured measurement path (Summary -> Output -> Hits Sent).
3.
In tag diagnostics/tag quality, verify there is no unresolved GTG setup warning for the active deployment.
If a late consent signal is detected and GTG enrollment is verified:
1.
Treat this as an ordering/implementation issue, not as consent policy failure.
2.
Encourage adopting U+C (Advanced Consent Mode) for GTG-enabled tags.
3.
Enable and review Data Transmission Controls and Global Consent Defaults according to customer policy and regional coverage.
4.
Keep one authoritative tag-control plane:
Preferred: migrate CMP + Google tags into one GTM container, then deploy GTM through GTG.
Alternative: manual GTG with customer-controlled script order, ensuring consent defaults run before Google tags.
5.
Re-test in Tag Assistant and CYBEXO Debug Tool until ordering is clean.
Implementation note:
For GTG-enabled tags, U+C (Advanced Consent Mode) is the recommended mechanism because it is compatible with manual GTG and GTM-managed GTG deployments.

6. Required Google Consent Signals#

Ensure all four Consent Mode v2 keys are handled:
ad_storage
analytics_storage
ad_user_data
ad_personalization
Expected default values are policy/region-resolved (not globally fixed):
EEA / UK banner flows: all four keys default to denied.
US banner flows (opt-out model): all four keys default to granted.
Non-banner/global informational flows: all four keys default to granted.
No-banner rule for Google partner audits:
If the banner does not appear for the user’s region, defaults must still grant consent to maintain measurement (when using global defaults/data transmission controls).

7. Validation in Tag Assistant#

Run validation in a fresh preview session.
1.
Consent Initialization event
Cybexo CMP must appear under Tags Fired.
Consent tab must show default values present (not "Consent not configured").
2.
Before user action
Banner regions: no user-action consent update should appear before interaction.
No-banner regions: no consent UI update is expected; verify granted defaults are present.
3.
After explicit user action
In banner regions, gtag("consent","update", ...) should reflect mapped choice.
cmp_consent_update dataLayer event should appear after user action where consent UI is shown.
4.
Network
Confirm request to:
https://cmp.cybexo.com/loader.js?...

8. Late Loading / Misconfiguration Alerts#

Cybexo proactively flags GTM and Consent Mode setup issues on public pages where CMP is implemented.
Alert sources:
Cybexo Debug Tool surfaces real-time warnings when:
gtag("consent","default", ...) is missing
consent defaults load after Google tags
TCF stub/locator is missing
Pulse Monitoring continuously checks configured public URLs and raises alerts when consent ordering or CMP load behavior regresses.
Required remediation routing when a late/misconfigured setup is detected:
1.
Confirm whether the page uses GTM-managed Google tags or direct gtag.js.
2.
If GTM-managed, follow this guide first:
trigger must be Consent Initialization - All Pages
CMP tag must fire before tag execution events
3.
If direct gtag.js, follow:
Google Consent Mode v2 Validation
4.
Re-test in Tag Assistant and capture updated evidence.
Customer-facing debug expectation:
The debug output must clearly state pass/fail and the specific late-load condition.
The message must point customers to CMP documentation for corrective action (this page for GTM-managed setups).

9. Audit Evidence Pack (GTM Scope)#

Capture and archive:
Tag Assistant screenshot: Consent Initialization defaults for an EEA/UK test session.
Tag Assistant screenshot: Consent Initialization defaults for a non-banner test session (granted defaults).
Tag Assistant screenshot: post-action consent update.
Data Layer screenshot/log: cmp_consent_update.
Network screenshot/log: loader request.
Template version and commit reference used for rollout.

10. Common Failures and Fixes#

A) "No tags were evaluated in this container"#

Cause:
Template installed, but no live CMP tag instance with the correct trigger.
Fix:
Create Cybexo CMP tag and trigger it on Consent Initialization - All Pages.

B) "Consent not configured"#

Cause:
CMP tag did not execute at Consent Initialization.
Fix:
Verify trigger, publish state, and that the tag is not paused.

C) Banner does not show#

Possible causes:
Tag did not fire.
Settings ID missing/invalid.
Existing consent state suppresses first-layer banner.
Duplicate implementation conflict (direct script + GTM tag).
Fix:
Verify tag fire at Consent Initialization, check Settings ID, and retest in incognito.

D) Duplicate or conflicting consent defaults#

Cause:
Multiple tools push consent defaults.
Fix:
Keep one clear owner for default writes, and document ordering.

E) Banner suppressed but defaults are denied#

Cause:
Region/no-banner path still receiving denied defaults from legacy configuration.
Fix:
Align defaults with region behavior so no-banner paths remain granted by default.

11. Production Checklist#

Before release:
1.
Trigger is Consent Initialization - All Pages.
2.
Settings ID is present.
3.
Container is published (not only preview).
4.
Tag Assistant trace is captured.
5.
No duplicate CMP loaders or default writers.
6.
Support routing is documented for customer escalations.

12. Related Pages#

CYBEXO CMP SDK – Web & GTM Setup
Google Consent Mode v2 Validation
Troubleshooting Playbook
Audit Checklist (Pre-Launch)
Support and Escalation
Previous
Integrate CYBEXO CMP with Shopify
Next
CYBEXO CMP SDK - iOS Setup