Technical Docs & FAQ

Single source of truth for technical integration, Google Tag (GTG) load order rules, banner standards, deployment guides, and Frequently Asked Questions.

1. Google Consent Mode v2 Setup (Basic vs. Advanced)

CookiePrime provides native support for Google Consent Mode v2 across all four mandatory signals: ad_storage, analytics_storage, ad_user_data, and ad_personalization. Consent Mode is a signal-transport layer and is not intended to replace or solve for any single regulatory requirement on its own.

Basic vs. Advanced Configuration

A. Basic Consent Mode (Tags Blocked Before Consent)

In Basic Consent Mode, Google tags are completely blocked from loading or executing until the visitor interacts with the banner and provides affirmative consent.

  • Page load: No Google scripts are loaded. No pings or cookies are sent.
  • On consent grant: The loader allows scripts to execute and emits gtag('consent','update'). The corresponding DataLayer event fires.
  • Best for: Strict opt-in jurisdictions where unconsented pings are prohibited.

B. Advanced Consent Mode

In Advanced Consent Mode, Google tags load immediately with all four signals set to denied.

  • Page load: Google tags issue cookieless, anonymized pings for measurement.
  • On consent grant: The loader emits gtag('consent','update') and signals transition to granted. Tags then collect full analytics and advertising data.
  • Fallback window: Configured with wait_for_update: 500ms to prevent data loss on slow connections.

C. Switching or Disabling Consent Mode

Merchants switch between Basic and Advanced or disable Consent Mode commands through the CookiePrime dashboard (Banner > Google Consent Mode). The setting is stored per domain and applied on the next page load.

2. Google Tag Gateway (GTG) & Load Order

Execution order determines whether Consent Mode signals reach Google tags in time. This section describes the interaction between GTG, CDN-injected tags, and CookiePrime.

What is Google Tag Gateway (GTG)?

GTG is a first-party tag delivery service that proxies Google tags through the merchant's own domain. It reduces ad-blocker interference and improves measurement reliability.

GTG's default delivery often uses "one-click CDN injection". In that mode, tags are inserted into the page very early — before the CMP's consent mode default command has had a chance to run. The merchant does not control load order in that configuration.

Why load order matters

Google requires that the Consent Mode default command is issued before any Google tag executes. If a tag fires before the default, the signal is flagged as "late" and the tag may process data without a valid consent state.

How to verify GTG enrollment

  1. Open the site with DevTools (F12).
  2. In the Network tab, filter for google-analytics.com/g/collect (GA4) or googleads.g.doubleclick.net (Ads).
  3. Inspect the request URL parameters. If gcs and gcd are present, the tag is enrolled in GTG and echoing the Consent Mode state.

GTG enrollment can also be confirmed in the Google Tag admin console for the relevant tag.

Remediation options when a signal arrives late

When a late signal is detected and GTG enrollment is verified, one of the following remediation paths applies:

  • Option 1 — Advanced Consent Mode (U+C), recommended. Tags load early with all signals denied; the loader sends update when the visitor consents. Advanced Consent Mode is the recommended mechanism for GTG-enabled tags because it is compatible with GTG's early-load pattern.
  • Option 2 — Data Transmission Controls and Global Consent Defaults. Set Google-side defaults to denied in the Google Tag admin console so tags do not transmit data before an update arrives.
  • Option 3 — Migrate tags into a GTM container deployed via GTG. GTM controls the load order of every tag it manages, including waiting for the Consent Mode default before firing tags.
  • Option 4 — Manual GTG setup with controlled import order. Configure GTG so the merchant controls where the Google tag script loads in the document, ensuring the CMP runs first.

Google's GTG documentation

3. Debug Mode & Troubleshooting Late Signals

CookiePrime ships with an interactive debug mode that reports script load order and flags configuration errors.

Enabling Debug Mode

Add data-dev-mode="true" to the CookiePrime loader script, or append ?cookieprime_debug=true to the page URL. The console will emit structured diagnostic lines such as:

[CookiePrime] ✅ Default consent state set
[CookiePrime] ✅ Developer ID set in dataLayer: dMjJjND
[CookiePrime] ⚖️ Framework Resolved: STRICT_OPT_IN
[CookiePrime] ✅ Consent mode updated on user action

When a "late" consent signal is detected

If the debug report or Google Tag Assistant flags a consent command as late (a Google tag executed before the CMP's default command):

  1. Step 1 — Verify GTG enrollment. Check whether the tag firing early is enrolled in Google Tag Gateway. Instructions are in section 2 of this page.
  2. Step 2 — If GTG enrollment is verified, adopt Advanced Consent Mode (U+C). Advanced Consent Mode is the recommended mechanism for GTG-enabled tags because it is compatible with GTG's early-load pattern. Merchants may also enable Data Transmission Controls and Global Consent Defaults in the Google Tag admin console per their regional legal requirements.
  3. Step 3 — Alternative: migrate tags into a GTM container deployed via GTG, or set up GTG manually where the script import order is controlled by the merchant.

Full GTG details and remediation steps are documented in section 2 of this page. If a merchant prefers not to handle this themselves, they should contact CookiePrime support first — see section 6.

5. Deployment Guides

CookiePrime deploys across Google Tag Manager, WordPress, Shopify, BigCommerce, and custom HTML setups.

A. Google Tag Manager (GTM)

CookiePrime is published in the Google Tag Manager Community Template Gallery. No file download is required.

  1. In your GTM container, open the Templates section.
  2. In the Tag Templates panel, click Search Gallery.
  3. Search for CookiePrime and select the official CookiePrime CMP template.
  4. Click Add to workspace and confirm the permissions the template requests.
  5. Go to Tags → New, choose the imported CookiePrime CMP template, and enter your API Key.
  6. Set the tag trigger to Consent Initialization — All Pages. This ensures the loader runs before any other tag on every page.
  7. Confirm that analytics and marketing tags trigger on All Pages (not Initialization).
  8. Save, Submit, and Publish.

B. BigCommerce App

  1. Search for CookiePrime in the BigCommerce App Marketplace.
  2. Install the app and authorize the connection to your store.
  3. Follow the guided onboarding to select your banner template.
  4. The app injects the required scripts without manual code changes.

Consent state is written to SHOP_CONSENT and named bc_consent_* cookies on every consent change. The BigCommerce server-side render on the next page load reads those cookies.

C. WordPress Plugin

Official plugin: wordpress.org/plugins/cookieprime/

  1. Install the plugin via Plugins > Add New.
  2. Enter your API Key under Settings > CookiePrime.
  3. The plugin registers its categories with the WP Consent API and writes consent state via wp_set_consent() on every banner interaction.

Scope of the opt-in default: WP Consent API provides a single site-wide consent model. CookiePrime uses per-visitor region detection for its banner, its Google Consent Mode signals, and its consent record API. Because the WP Consent API layer cannot vary its model per visitor, CookiePrime declares strict opt-in at that boundary. Region-specific behaviour is preserved everywhere else.

D. Shopify App

Integrated with the Shopify Customer Privacy API.

  1. Install the CookiePrime app from the Shopify App Store.
  2. Authorize the connection to your store.
  3. The app loads the Customer Privacy API (if not already loaded) and calls Shopify.customerPrivacy.setTrackingConsent() on every consent change.

Deny-by-default state is applied on page load. Stored consent is restored on subsequent loads.

E. Custom HTML

Paste the loader snippet at the top of <head>:

<!-- CookiePrime Privacy Engine -->
<script src="https://storage.googleapis.com/cookieprime_bucket/public/loader.js" data-id="YOUR_API_KEY"></script>

6. Support Policy & SLAs

Troubleshooting direction notice

Important: Clients implementing CookiePrime should direct initial troubleshooting inquiries about Consent Mode, missing GTM signals, or banner behavior to CookiePrime Support first, rather than Google. Google Support requires proof of prior contact and escalation with the CMP before investigating tagging discrepancies on client sites.

Support coverage and SLAs

  • Channel: Email and contact form.
  • Support email: support@cookieprime.com
  • Initial response: Within 2 business days. First reply is a substantive technical response, not an acknowledgement-only message.
  • Coverage: Consent Mode implementation, TCF/GTM questions, banner GUI configuration, script interception, and continuous troubleshooting.
  • POC for Google escalations: samir.moukhliss@cookieprime.com
  • POC escalation response time: Within 2 business days.

7. Frequently Asked Questions

Answers to common questions about CookiePrime, multi-platform integrations, and the mobile privacy infrastructure.

General

Web Consent

Mobile SDK

Compliance

Billing & CMS

What is CookiePrime?

CookiePrime is a consent management platform with native integrations for Google Consent Mode v2, WordPress, Shopify, and BigCommerce. It handles banner display, category-level consent collection, cookie blocking, and signal transport to Google tags and platform consent APIs. Audit records are stored on the CookiePrime backend for compliance reporting.

How does the free trial work?

The trial runs for 10 days with full feature access. No credit card is required. After the trial, domains remain active on a paid plan or pause until a subscription is added.

How do I embed CookiePrime on a custom HTML site?

Place the loader script as the first element inside <head>:

<!-- Global CookiePrime Integration -->
<script src="https://storage.googleapis.com/cookieprime_bucket/public/loader.js"
    data-id="YOUR_DOMAIN_ID"></script>

Replace data-id with the Domain ID shown in the CookiePrime dashboard. The loader handles Consent Mode defaults, banner rendering, cookie blocking, and update commands.

Can configurations be deployed through Google Tag Manager?

Yes. CookiePrime is published in the GTM Community Template Gallery. Import the CookiePrime CMP template directly from the gallery into your container, create a tag from it, enter your API Key, and set the tag trigger to Consent Initialization — All Pages. The template loads the CookiePrime loader, which then emits region-aware Consent Mode defaults.

What makes the mobile SDK different? EARLY ACCESS

The Android SDK is a lightweight native library that scans for known tracking SDK signatures and enforces consent at initialization. It runs at the app level, in Kotlin, and does not depend on network-layer blocking. Android is live. iOS is in beta.

Where is the Android SDK source and integration guide?
What does the CookiePrime banner actually enforce?

When a visitor rejects a category, CookiePrime (a) blocks scripts tagged with data-cookie for that category, (b) deletes cookies listed in the domain's policy file under that category, (c) pushes updated signals to Google Consent Mode, and (d) synchronizes the visitor's choice to the platform-level consent API for the site (WP Consent API, Shopify Customer Privacy API, or BigCommerce consent cookies).

Where should troubleshooting begin for Consent Mode issues?

Contact CookiePrime support first at support@cookieprime.com. Include the domain, the tag that is flagging the issue, and the CookiePrime debug output if available. Google support requires proof of prior contact with the CMP before opening an investigation on tagging discrepancies.

How is licensing handled for Shopify and BigCommerce stores?

Shopify and BigCommerce app subscriptions are billed through the platform's native billing API at a flat monthly rate. External payment processing is not used for native app store subscriptions.

Does Wix require special parameters to load the banner?

Wix requires a Premium plan with a connected custom domain for external script injection to be allowed. Free .wixsite.com frames block external script injection, which prevents the loader from running.