The Kukie CMP template is the Kukie template in Google's Community Template Gallery. If your website already uses Google Tag Manager (GTM), it is the recommended way to install Kukie.io, with no code to edit. Your Kukie dashboard gives you the template's consent defaults, built from your region rules.
Before you start
Make sure you have the following ready:
- A Kukie account with at least one site added. Create a free account if you haven't already.
- Your Kukie Site Key: in the dashboard, open your site's Overview, then the Google Tag Manager tab of the Installation card. It looks like
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. - If your site sends a Content Security Policy, permission to change it. The policy must allow the banner, as Allow Kukie.io in your Content Security Policy describes.
- A Google Tag Manager container installed on your website.
- Edit access to your GTM workspace.
Step 1: Add the Kukie CMP template to your workspace
- Open your GTM container at tagmanager.google.com.
- Click Templates in the left sidebar.
- In the Tag Templates section, click Search Gallery.
- Search for "Kukie CMP".
- Click the Kukie CMP template, then click Add to workspace.
- Review the permissions and click Add.
Step 2: Create a new tag from the template
- Click Tags in the left sidebar, then click New.
- Click Tag Configuration.
- Under the Custom section, select Kukie CMP.
- Paste your Site Key into the configuration field.
- Under Default Consent Settings, add the rows your Kukie dashboard shows: open your site's Overview, then the Google Tag Manager tab of the Installation card. Select Add Row for each row and paste its Region, Granted Consent Types and Denied Consent Types with the Copy buttons. The Default Consent Settings rows explains what each row does.
- Leave Pass through URL parameters selected. Select Redact Ads Data if you use Google Ads and want ad click identifiers removed while
ad_storageis denied.
The Default Consent Settings rows
These rows set the consent state Google tags start with, before the visitor makes a choice. The template sets them before any other tag fires. The dashboard builds them from your rules in Banner Editor > Regions, from the same region lists the banner script uses when you add it to your site directly, so Google is told the same thing either way.
- The row with the region left blank denies every type but
security_storage. It covers every visitor no other row covers, including a visitor Google cannot place. Keep it when you add the others: without it, those visitors have no default until the banner script loads, and Google tags that fire earlier run as if consent were granted. - A row for the regions where your rules allow data by default (Opt-Out, Notice Only or Hidden) appears when you have such rules. It grants what Accept all grants on your site. Google tags there measure from the first page view, and while the banner is on screen it sends no consent update until the visitor acts.
- A row for stricter states appears only when a state asks first inside a country whose rule allows data by default, for example an Opt-In rule for California inside an Opt-Out United States. It denies every type but
security_storagethere.
When a visitor's region matches more than one row, Google uses the most specific one. Google explains this in Region-specific behavior.
A visitor who already made a choice on this device, or whose browser sends Global Privacy Control or Do Not Track, starts with every granted type denied but security_storage. The banner then restores their choice, or applies the signal, as soon as it loads.
Important: The template does not read your region rules by itself. When you change a region rule, copy the rows again, update the tag and publish the container. If your tag has only the row with the region left blank, add the other rows from the dashboard: without them, Google tags stay denied in the regions where your rules allow data by default until the visitor makes a choice.
Step 3: Set the trigger
Important: The Kukie tag must fire on Consent Initialization - All Pages, not on "All Pages". This ensures that Google Consent Mode v2 defaults are set before any other tags fire. If you use "All Pages" instead, other tags may execute before consent is configured, which can lead to Google tags receiving incorrect consent signals or firing before the consent state is established.
- Click Triggering below the tag configuration.
- Click the + icon to add a trigger.
- Select Consent Initialization - All Pages.
- Click Save.
Step 4: Name and save the tag
- Click the tag name at the top (for example "Untitled Tag") and rename it to something descriptive, such as
Kukie CMP - Consent Mode. - Click Save.
Step 5: Test in Preview mode
- Click Preview in the top right corner of GTM.
- Enter your website URL and click Connect.
- Confirm that the Kukie consent banner appears on your site.
- In the GTM Preview panel (Tag Assistant), verify that the Kukie CMP tag fired on the Consent Initialization event. A fired tag means GTM ran it, not that the browser loaded the banner. If the banner does not appear, see Banner not appearing.
- Test accepting and rejecting cookies. Confirm that the consent state updates correctly in the Tag Assistant's Consent tab.
Step 6: Publish your container
- Exit Preview mode by closing the Tag Assistant tab.
- Click Submit in the top right corner of GTM.
- Add a version name, for example:
Added Kukie CMP consent management. - Click Publish.
Your Kukie consent banner is now live on your website via Google Tag Manager.
Verifying Google Consent Mode integration
To confirm that Google Consent Mode v2 is working correctly with Kukie:
- Open your site in an incognito or private browser window.
- Open DevTools (press
F12) and go to the Console tab. - Run the following command:
dataLayer.filter(e => e[0] === 'consent') - You should see two types of entries:
- A consent default entry for each of your Default Consent Settings rows, set before any tags fire. A row with a
regionlist applies only to visitors in those regions. - A consent update entry after you accept or reject in the banner, with the matching parameters set to
grantedordenied. While the banner is on screen, there is no update before you act.
- A consent default entry for each of your Default Consent Settings rows, set before any tags fire. A row with a
You can also use Google Tag Assistant to inspect consent state visually, or check your GA4 DebugView to verify that events respect consent choices.
Tip: Add
?kukie_debug=1to your URL to see detailed Kukie consent logs in the browser console, including all Consent Mode parameter updates.
Google tag settings in your container
In August 2026, Google started linking Google Analytics, Google Ads and Floodlight to Tag Manager containers as destinations. Each destination has its own tag, and all of them share one set of Google tag settings under Settings. Google calls this optimizing your Tag Manager container. Nothing changes in your container until you run the optimization and publish it.
The Kukie CMP tag works the same way in an optimised container. It still fires on Consent Initialization - All Pages, and the new destination tags read the consent state it sets. Two of the shared settings deal with consent:
- Consent defaults. If you set consent defaults in the container's settings, keep them the same as the rows on your Kukie dashboard: denied where your banner asks first. Different values give Google tags two starting states that disagree.
- Manage Data Transmission (Settings > Show more). These controls limit what Google tags send while consent is denied, in addition to the consent state itself. They work with Kukie.io: the banner sends the consent update when the visitor makes a choice, and at page load when a choice is already stored or your rules show no banner. Google describes them in Data transmission controls.
Before you publish an optimised container, test it in Preview mode as in Step 5: accept and reject in the banner, and check the consent state in the Tag Assistant's Consent tab.
Troubleshooting
Banner not appearing
If the consent banner does not show up after publishing, check these in order:
- Your site's Content Security Policy. If your site sends one, it must allow the banner script, its styles and its requests to Kukie.io. Otherwise the browser refuses the script the tag adds, while Tag Assistant still shows the tag as fired. Open the browser console on your site: an error that mentions
cdn.kukie.ioand a Content Security Policy directive confirms it. Allow Kukie.io in your Content Security Policy lists what to add, and Verify installation on your site's Installation card names each change your policy needs. - The Site Key. It must match the site key on your site's Installation card.
- The trigger. It must be Consent Initialization - All Pages.
- The published container. Preview mode shows your workspace, but visitors see only the published version.
Once the script runs, adding ?kukie_debug=1 to your URL shows the banner's own messages in the browser console.
Tags firing before consent
If Google tags set cookies before a visitor makes a choice in a region where your banner asks first, check that the tag's Default Consent Settings table matches the rows on your dashboard, including the row with the region left blank. Rows copied before you changed a region rule can grant a region that now asks first.
If other tags are executing before Kukie has set consent defaults, the most likely cause is using the wrong trigger. The Kukie CMP tag must use the Consent Initialization - All Pages trigger, not "All Pages". The Consent Initialization trigger fires before all other trigger types, ensuring consent defaults are in place before any tracking tags execute.
Permissions warning when adding the template
When you add the Kukie CMP template from the Community Template Gallery, GTM asks you to review its permissions, as it does for every community template. The Kukie template:
- injects scripts from
cdn.kukie.ioandapp.kukie.ioonly; - sets the consent state and three Google settings (the developer ID,
ads_data_redactionandurl_passthrough); - reads two cookies,
_cc_consentandkk_consent, to see whether the visitor already made a choice; - reads the browser's Global Privacy Control and Do Not Track signals;
- registers one function,
__kukie_gtm_consent_callback, which the banner calls with the visitor's choice.
Google's documentation
For Google's authoritative reference on Consent Mode v2, see:
- Consent Mode (Google Tag Platform documentation)
- Create a consent mode template: region-specific behavior
- Updates to Google tag and Google Tag Manager
- Consent Mode for Google Ads
- Consent Mode for Google Analytics 4
- Google EU User Consent Policy
- Google Privacy & Terms
Need help?
If you run into issues or have questions about the GTM installation, we are happy to help:
- Email us at support@kukie.io
- Browse other installation guides: WordPress plugin, Direct HTML embed
- Learn more about Google Consent Mode v2 in Kukie
- Allow Kukie.io in your Content Security Policy
If Google tags are not getting Consent Mode signals, or you run into another Consent Mode setup, timing or measurement problem, email Kukie.io's Google client support at google-support@kukie.io first, before you contact Google. We answer within 1 business day.
To copy Google's Consent Mode support team, add cmp-support-helper@google.com to your email, or choose the Google Consent Mode topic in the contact form and select the box.
