WebToffee Logo
  • Home
  • Plugins
  • Blog
  • Documentation
  • Support
Login
0

  • Overview
    • Plugin set up
  • GDPR
    • Getting Started
      • Get GDPR Compliant
    • Add and Categorise Cookies
      • Troubleshoot cookie scanner
      • Add cookie manually
      • Disable cookie categories by default
      • Using cookie scanner
    • Auto-block cookies with Script Blocker
      • Compatibility with WP cache plugins
      • Configuration
      • Add custom script blocker
      • Block scripts at client side
      • Block services in Google Tag Manager separately
      • Check script blocking
    • Create Privacy Policy Page
      • Policy generator
    • Customize Settings Pop up
      • Adding cookie settings link to footer
      • Alter colour of toggle button
      • Change cookie category order in settings popup
      • Adding Custom columns into the Audit Table
      • Display category wise cookie list
    • Customize Cookie Notice
      • Category checkboxes on cookie banner
      • Geo-target cookie message bar
      • Customize banner using CSS
      • Accept consent on scroll/delay
      • Customize templates
      • Hide the cookie bar on selected pages
      • Pre-defined templates
      • Shortcodes for banner
    • Multilingual Support
      • Translate using Polylang
      • Multilingual compatibility for Necessary Category
      • Translate using WPML
      • Translate using qTranslate
      • Multilanguage compatibility for privacy policy page
    • Advanced Topics
      • Modify duration of consent
      • Access/Block site based on consent
      • Show/hide 'Privacy and Cookie Policy' tab
  • CCPA
    • Getting Started
      • Get CCPA Compliant
  • Third-Party Compatibility
    • Plugins/Themes
  • FAQ
    • Frequently asked questions
  • Changelog
    • Version 2.3.7

Documentation/GDPR Cookie Consent/How to manage different services configured in GTM using GDPR cookie consent plugin

How to manage different services configured in GTM using GDPR cookie consent plugin

Last updated on May 20, 2021

This article is relevant only for premium version users who want to manage different services configured via GTM script using separate categories in GDPR Cookie Consent.

By default, the script blocker of the GDPR cookie consent plugin blocks the Google Tag Manager scripts entirely by assigning them to a single category.

That is, it is likely that you have configured different individual services like Google Analytics, Hotjar, Google Ads, etc. in Google Tag Manager. The plugin will block all individual services by assigning them to only a single category. If you are all fine with this default blocking, then you needn’t do anything other than just enabling the Google Tag Manager from the script blocker.

Manage different services configured via GTM

Now that you have different services within Google Tag Manager and need to assign different categories for each individual service, then read through the following to know how to achieve this.

Since the plugin works based on script blocking, you will need to slightly modify the event triggers. Let us see how this can be done.

The pre-requisites for using Google tag manager are:

  1. An account in Google Tag Manager (GTM),
  2. Created a website container in GTM

Note:
Disable Google Tag Manager from the GDPR Cookie Consent> Script blocker prior to inserting the code into the theme.

Script Blocking-GTM Disabled
Script Blocking-GTM Disabled

Following will detail the steps involved in assigning different categories for different services in GTM:

  1. Create a Trigger in GTM
  2. Insert GTM compatibility code snippet in the active theme

Create Triggers

Configure the Triggers in the following manner:

  • From the GTM “Triggers” list, click “New”.
  • Choose “Custom Event” and enter an event name for the trigger, for example for category analytics you can enter the event name as “cli_cookieconsent_analytics”, in the field “Event name”.
  • Click “Save” to create the trigger and assign a name for the trigger, say Analytics.
  • This is how the trigger configuration pane will look like:
GDPR GTM Compatibility-Trigger Configuration
GDPR GTM Compatibility-Trigger Configuration
  • Repeat the above for each cookie category, for example, for non-necessary the event name can be given as “cli_cookieconsent_non_necessary”, and for marketing, it can be given as “cli_cookieconsent_marketing” and so on.
  • Now open the Tag configuration window and link the trigger you have just created from the triggering section. If any trigger was previously linked, it has to be removed prior to linking the newly created trigger. For instance, link the trigger Analytics with Google Analytics: Universal Analytics tag.
  • Click “Save” to create or update the tag.
  • This is what your final tag configuration pane will look like (except for the Tracking ID):
  • GDPR Consent GTM Compatibility-Tag Configuration
    GDPR Consent GTM Compatibility-Tag Configuration
  • Finally, click “Publish” to push your changes live to your site.
  • The category associated in this manner will only set cookies if the visitor has accepted consent.

    Insert GTM compatibility code snippet in the active theme

    The next step would be to insert the code snippet into the active theme header file (header.php). The syntax of the code snippet for attaining GTM compatibility is as shown below:


    In the above syntax, replace cookie_category_slug with the actual category slug name and replace EventName with the actual event name given while creating a trigger.

    ie:  For category analytics, you can insert the snippet in the following manner:

    Note: If the category slug is a hyphenated word, then it must be replaced by an underscore. That is, for category non-necessary, the category slug can be entered as non_necessary.

    For example, a sample code snippet with three categories (as specified above) will look like this:

    • Was this article helpful?
    • Yes, thanks!Not really
    Get the plugin

    On this page

    • Manage different services configured via GTM
    • Create Triggers
    • Insert GTM compatibility code snippet in the active theme

    This article posted in Auto-block cookies with Script Blocker, Documentation, GDPR Cookie Consent, Knowledge Base and tagged GDPR compliance, GDPR Cookie Consent, Google Tag Manager, WordPress

    Written by

    Shesna

    Shesna is a technical content writer for WebToffee. She is familiar in working closely with the SMEs to break down complex technical information into a concise, easy to understand manner.

    Comments (20)

    1. Guido

      January 4, 2022

      Hi! How come the plugin doesn’t have a builtin option to add these events to the dataLayer? It seems quite feasible using wp_enqueue_script. Thanks.

      Reply
      • Mark

        Mark

        February 28, 2022

        Hi Guido,

        Sorry for the delayed response as we missed your comment.

        As for the request, we will add it to backlogs and will definitely consider it during future update.

        Reply
    2. Connagh Smith

      May 11, 2021

      I’ve added the following to header.php:

      function CookieLawInfo_Accept_Callback() {
      if (CLI.consent.advertisement) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_advertisement’});
      }
      if (CLI.consent.analytics) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_analytics’});
      }
      if (CLI.consent.functional) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_functional’});
      }
      if (CLI.consent.necessary) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_necessary’});
      }
      if (CLI.consent.others) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_others’});
      }
      if (CLI.consent.performance) {
      dataLayer.push({‘event’: ‘cli_cookieconsent_performance’});
      }
      }

      And configured corresponding triggers in Google Tag Manager.

      However, when I check console, I’m getting:

      jQuery.Deferred exception: Cannot read property ‘advertisement’ of undefined TypeError: Cannot read property ‘advertisement’ of undefined

      I’m using the free version if that makes a difference…

      Reply
      • Mark

        Mark

        May 15, 2021

        Hi Connagh,

        This type of implementation only works with the premium version of the plugin. In free version, you can only block the google tag script entirely assigned to a single category.
        PS: We will update it in the article itself.

        Reply
    3. Keesjan

      March 12, 2021

      Hi, is this on the roadmap to include as default or switch on/off in the wp plugin? I like your cookiewall solution but it lacks integrated GTM datalayer support out of the box.

      Reply
      • Mark

        Mark

        March 31, 2021

        Hi Keesjan,

        Thanks for the feedback. We will try to add it in the plugin.

        Reply
    4. Agnes

      December 4, 2020

      I am having troubles to get the info show in the data layer.
      It would be great to have this included in the plugin, mapped with the categories we have, interacting directly in WP.

      Reply
    5. Jeff

      October 17, 2020

      Could I please know the callback function for Reject?

      Reply
    6. Jeff

      October 16, 2020

      I’m also looking for returning a callback for the Reject function. Does anyone have a solution?

      Reply
    7. Hans Palmers

      Hans Palmers

      October 16, 2020

      How does the code snippet look like for multiple language sites?

      The cookie categories are translated and therefore have different slugs, yet these slugs are needed to load the code snippet (?), to fire the events & trigger the scrips such as Universal Analytics.

      Reply
      • Mark

        Mark

        October 17, 2020

        As mentioned at the end of the WPML set up guide for the plugin(check in our documents section), please make the slugs of the translated categories the same.

        Reply
    8. Agnes LESAGE

      Agnes LESAGE

      October 15, 2020

      Hi, it would be best if the code could be included in the header in WP plugin, and this way it could also be based on the categories we create.

      Reply
    9. Graham Carroll

      Graham Carroll

      October 7, 2020

      Is it essential to add a cli_cookieconsent_necessary GTM trigger to fire the “necessary” cookies? Thanks.

      Reply
      • Mark

        Mark

        October 9, 2020

        That would depend on the whole configuration. We cannot give a yes or no answer to that.

        Please submit a ticket via support for site specific assistance.

        Reply
    10. Jimena

      May 5, 2020

      By using this solution with GTM, do I have to purchase the plugin or this also applies for the free version? Or the free version doesn’t allow to integrate with GTM ?

      Reply
      • Mark

        Mark

        May 6, 2020

        It only works with the premium version. If you need to manage GTM with free version, you can add the script of GTM in head/body area under the Non-Necessary script area. There won’t be any granular control for the scripts inside GTM though.

        Reply
    11. Maxwell Hogan

      Maxwell Hogan

      January 4, 2020

      I have a solution for obtaining reject. All good.

      Reply
      • Andrew Wright

        Andrew Wright

        January 9, 2020

        What is the solution?

        Reply
      • Jeff

        October 16, 2020

        Hi, can you please share your solution?

        Reply
    12. Maxwell Hogan

      Maxwell Hogan

      January 3, 2020

      What is the function for returning a callback of Reject as well?

      Reply

    Got any query? Please leave a comment or reach out to our support

    Cancel reply

    Your email address will not be published. Required fields are marked *

    We develop awesome WordPress plugins & WooCommerce extensions to help build successful online businesses.

    © 2022 WebToffee. All rights reserved.

    Our plugins

    • GDPR Cookie Consent
    • PDF Invoices & Packings Slips
    • Product Import Export Plugin
    • User & Customer Import Export
    • Import Export Suite
    • Sequential Order Numbers
    • Smart Coupons for WooCommerce
    • URL Coupons for WooCommerce
    • PayPal Express Checkout
    • Stripe Payment Gateway
    • Subscriptions for Woocommerce
    • Product Catalog Sync for Facebook
    • PrintNode for PDF Invoices
    • Order, coupon, subscriptions for WooCommerce
    • WordPress Backup and Migration
    View more +

    Get Started

    • Plugins
    • Testimonials
    • Affiliates
    • We're hiring

    Help & Support

    • Documentation
    • Documentation (Basic)
    • FAQ
    • Support

    Company

    • Terms & Conditions
    • Privacy Policy
    • Refund policy
    • Support policy
    • License Activation

    © 2022 WebToffee. All rights reserved.

    We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
    Cookie settingsACCEPT
    Privacy & Cookies Policy

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of the basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website, to store user preferences and provide you with content and advertisements that are relevant. Such cookies will be stored on your browser but only upon procuring consent.

    You will also have the option to opt-out of these cookies should you want to. But opting out of some of these cookies may have an effect on your browsing experience as per the descriptions elucidated against the respective categories below.

    Necessary
    Always Enabled
    The cookies defined under this category are absolutely essential for the website to function. Hence they are loaded by default irrespective if user consent.
    CookieDescription
    __cfruidCloudflare sets this cookie to identify trusted web traffic.
    __stripe_midStripe sets this cookie cookie to process payments.
    __stripe_sidStripe sets this cookie cookie to process payments.
    cookielawinfo-checkbox-advertisementSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
    cookielawinfo-checkbox-analyticsSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
    cookielawinfo-checkbox-necessarySet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
    cookielawinfo-checkbox-preferencesThis cookie is set by the GDPR Cookie Consent plugin to check if the user has given consent to use cookies under the "Preferences" category.
    CookieLawInfoConsentRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
    PHPSESSIDThis cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user sessions on the website. The cookie is a session cookie and is deleted when all the browser windows are closed.
    viewed_cookie_policyThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not a user has consented to the use of cookies. It does not store any personal data.
    Analytics
    Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and are reported anonymously.
    CookieDescription
    _gaThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.
    _ga_BQH8MSKD4MThis cookie is installed by Google Analytics.
    _gat_gtagIdentification code of website for tracking visits.
    _gidThis cookie is installed by Google Analytics. The cookie is used to store information on how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visited in an anonymous form.
    _hjAbsoluteSessionInProgressHotjar sets this cookie to detect the first pageview session of a user. This is a True/False flag set by the cookie.
    _hjFirstSeenHotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user.
    _hjidHotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
    _hjIncludedInPageviewSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's pageview limit.
    _hjIncludedInSampleThis cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate heatmaps, funnels, recordings, etc.
    _hjIncludedInSessionSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's daily session limit.
    _hjTLDTestTo determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails.
    CONSENTYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
    has_recent_activityThis cookie is used to signal to the code repository website if the user has browsed other website resources during the current session.
    tk_aiGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
    tk_lrThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
    tk_orThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
    tk_qsGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
    tk_r3dThe cookie is installed by JetPack. Used for the internal metrics for user activities to improve user experience.
    Advertisement
    Advertisement cookies help us provide our visitors with relevant ads and marketing campaigns.
    CookieDescription
    _fbpThis cookie is set by Facebook to deliver advertisements when they are on Facebook or on a digital platform powered by Facebook advertising after visiting this website.
    frThe cookie is set by Facebook to show relevant advertisements to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook Pixel or Facebook social plugin.
    VISITOR_INFO1_LIVEA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
    YSCYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
    yt-remote-connected-devicesYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
    yt-remote-device-idYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
    Preferences
    Preference cookies are used to store user preferences to provide them with content that is customized accordingly. This includes the language of the website or the location of the visitor.
    CookieDescription
    _gh_sessThis cookie is used to preserve users' states across page requests.
    Others
    Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
    CookieDurationDescription
    _hjSession_137657130 minutesNo description
    _hjSessionUser_13765711 yearNo description
    _octo1 yearNo description available.
    _zendesk_authenticatedpastNo description
    _zendesk_sessionsessionNo description available.
    _zendesk_shared_sessionsessionNo description available.
    edd_wp_session12 hoursNo description available.
    logged_in1 yearNo description available.
    m2 yearsNo description available.
    Save & Accept