Skip to content

Works with your stack

Cookie consent for Google tag and Tag Manager plugins

one tag, many plugins

← Cookie Rocks for your stack

Many plugins print Google’s tag or a Tag Manager container on your pages. Most load it before the visitor chooses, and some add consent defaults of their own. The visitor’s choice should decide when the tag runs.

Plugins that print Google’s tag

Tag Manager plugins
GTM4WP, GTM Kit and the Google Tag Manager plugin add your container. Everything in it waits with it.
Google Analytics plugins
GA Google Analytics, MonsterInsights and ExactMetrics print the Google tag with no consent default of their own.
WooCommerce plugins
Google Analytics for WooCommerce and Google for WooCommerce add their own defaults for Europe only and read WP Consent API.

What matters for consent with Google tag plugins

Most load before the choice

Most of these plugins print the tag on every page with no setting to wait for consent. Cookie Rocks holds the Google tag or the Tag Manager container from most of them until the visitor agrees, then loads it on the same page.

One source of consent defaults

Several plugins can print Consent Mode defaults of their own, sometimes for Europe only, sometimes after your banner’s. Keep one source: your consent plugin.

What a banner cannot hold

Some plugins send data from your server: a short-link report, a cookie set with the page. No banner can hold those. Switch them off in the plugin if you do not need them.

Check it logged out

Several plugins hide the tag from administrators. Look at your site logged out to see what visitors get.

What our tests found on Google tag plugins

  • Good to know · GTM4WPWhat GTM4WP stores in visitors' browsers

    GTM4WP: 2 cookie(s) or browser key(s) for visitors, recognised by Cookie Rocks from 2.9.8.

    NameKept inCategoryWhat it is for
    gtm4wp_user_logged_incookieStatisticsTells Google Tag Manager that the visitor just signed in or registered
    gtm4wp_user_registeredcookieStatisticsTells Google Tag Manager that the visitor just signed in or registered

    Read in its code, 2 November 2026, GTM4WP.

    Full detail

    GTM4WP can store these in a visitor's browser: gtm4wp_user_logged_in (cookie, statistics: Tells Google Tag Manager that the visitor just signed in or registered); gtm4wp_user_registered (cookie, statistics: Tells Google Tag Manager that the visitor just signed in or registered). Cookie Rocks recognises them from 2.9.8, with this category and purpose, and lists them in the cookie policy when it sees them.

  • Good to know · GTM4WPGTM4WP loads each video tracker only when its player is on the page

    Each tracker is a local file and fetches its player API only with a matching embed. In the test, allowing YouTube or Vimeo loaded only that player, not the container.

    Seen in our tests, 18 October 2026, GTM4WP 2.0.6.

    Full detail

    GTM4WP prints the GTM container as one inline script and keeps each video tracker in its own local file (gtm4wp-youtube.js, gtm4wp-vimeo.js and others). A tracker fetches its player API only when a matching embed is on the page, and every tracker depends on the local file gtm4wp-media-gate.js. In the test, allowing YouTube or Vimeo loaded only that player, and the container did not start.

  • Good to know · GTM4WPGTM4WP does not track YouTube videos embedded from youtube-nocookie.com

    The YouTube tracker of GTM4WP watches only iframes whose src starts with https://www.youtube.com/embed. A video embedded from youtube-nocookie.com is not tracked: the tracker did not load www.youtube.com/iframe_api for it.

    Seen in our tests, 18 October 2026, GTM4WP 2.0.6.

  • Good to know · GTM KitGTM Kit free loads only the Google Tag Manager container

    The container is one inline script. Its other scripts are local and made no third-party request in the test.

    Seen in our tests, 18 October 2026, GTM Kit 2.22.0.

    Full detail

    GTM Kit (free) loads one third-party service in the browser: the GTM container, printed as one inline script with the id gtmkit-container-js-after. Its other scripts (gtmkit settings, data layer, engagement-events.js) are local and made no third-party request in the test.

See the 27 other findings
  • Good to know · GTM4WP (GTM for WordPress)Cookie Rocks holds the GTM4WP Tag Manager container until Accept all

    On a test WordPress with GTM4WP 2.0.6 and a dummy container ID, Cookie Rocks holds gtm.js before the choice and loads it after Accept all, without a reload. GTM4WP set no cookie or browser storage of its own on that page.

    Seen in our tests, 17 October 2026, GTM4WP (GTM for WordPress) 2.0.6.

  • Good to know · GTM KitCookie Rocks holds the GTM Kit container until Accept all

    On a test WordPress with GTM Kit 2.22.0 and a dummy container ID, Cookie Rocks holds gtm.js before the choice and loads it after Accept all, without a reload. GTM Kit set no cookie or browser storage of its own on that page.

    Seen in our tests, 17 October 2026, GTM Kit 2.22.0.

  • Good to know · Google Tag ManagerCookie Rocks holds the Google Tag Manager plugin's container

    The Google Tag Manager container (gtm.js) added by the Google Tag Manager plugin is held by Cookie Rocks until consent and loads after Accept all.

    Seen in our tests, 17 October 2026, Google Tag Manager 1.0.4.

  • Good to know · GA Google AnalyticsCookie Rocks holds the GA Google Analytics tag until Accept all

    On a test WordPress with GA Google Analytics in gtag mode and a dummy G- ID, Cookie Rocks holds gtag.js before the choice and loads it after Accept all, without a reload; Google Analytics then sets _ga and _ga_<ID>.

    Seen in our tests, 17 October 2026, GA Google Analytics 20260810.

  • Good to know · MonsterInsightsCookie Rocks holds the MonsterInsights tag until Accept all

    On a test WordPress with MonsterInsights and a manual dummy GA4 ID (no Google account), Cookie Rocks holds gtag.js before the choice and loads it after Accept all, without a reload; Google Analytics then sets _ga and _ga_<ID>.

    Seen in our tests, 17 October 2026, MonsterInsights 11.3.0.

  • Good to know · ExactMetricsCookie Rocks holds the ExactMetrics tag until Accept all

    On a test WordPress with ExactMetrics and a manual dummy GA4 ID (no Google account), Cookie Rocks holds gtag.js before the choice and loads it after Accept all, without a reload; Google Analytics then sets _ga and _ga_<ID>.

    Seen in our tests, 17 October 2026, ExactMetrics 10.3.0.

  • Good to know · Google Analytics for WooCommerceCookie Rocks holds the Google tag of Google Analytics for WooCommerce

    In basic Consent Mode (the default), after Accept all, _ga and _ga_<ID> are set, alongside WooCommerce's sbjs_ cookies. The plugin sends nothing from the server.

    Seen in our tests, 17 October 2026, Google Analytics for WooCommerce 2.4.3. Source

    Full detail

    In basic Consent Mode, the Cookie Rocks default, the Google tag added by Google Analytics for WooCommerce is held until consent; after Accept all, _ga and _ga_<ID> are set, alongside WooCommerce's sbjs_ attribution cookies. The plugin sends nothing from the server.

  • Set before the choice · GTM4WP (GTM for WordPress)GTM4WP loads Tag Manager on every page with no wait for consent

    Once a container ID is set, gtm.js loads in the head of every page. GTM4WP has no wait-for-consent setting and does not read WP Consent API.

    Read in its code, 16 October 2026, GTM4WP (GTM for WordPress) 2.0.6.

    Full detail

    GTM4WP always loads the Tag Manager container (gtm.js from www.googletagmanager.com or a custom domain) in the head of every page once a container ID is set: wp_head priority 10 (2 with its load-early option), after its data layer block at priority 1. It has no wait-for-consent setting and does not read WP Consent API. Its inline blocks carry data-cfasync="false" and data-pagespeed-no-defer.

  • Depends on a setting · GTM4WP (GTM for WordPress)GTM4WP media tracking loads player scripts only when it finds a video

    setting “Media events” · by default: off

    Off by default. When on, it requests the YouTube, Vimeo and other player scripts only when it finds the provider's frame, so a banner that holds the frame also prevents the request.

    Read in its code, 16 October 2026, GTM4WP (GTM for WordPress) 2.0.6.

    Full detail

    GTM4WP's media events options are off by default. When on, the player SDKs (YouTube iframe_api, Vimeo, SoundCloud, Wistia, Twitch, Dailymotion and others) are requested by JavaScript only when the provider's iframe is found by its src address, so a banner that moves src to data-src or shows a placeholder prevents the request. The filter gtm4wp_media_sdk_blocked (true) holds all SDK requests, and the gtm4wp-media-gate script can be blocked.

  • Good to know · GTM4WP (GTM for WordPress)GTM4WP's WooCommerce integration stores small values only after an action
    • gtm4wp_item_list_attr: cookie, 3 days, when a product is clicked in a list.
    • gtm4wp_orderid_tracked: localStorage on the order received page, or a 365-day cookie.
    • gtm4wp_readded_to_cart: localStorage.
    • Cache-safe data layer option (off by default): gtm4wp_woo_event, gtm4wp_login, gtm4wp_visitor_session.

    Read in its code, 16 October 2026, GTM4WP (GTM for WordPress) 2.0.6.

    Full detail

    GTM4WP's WooCommerce integration writes small first-party values only after an action: gtm4wp_item_list_attr (cookie, 3 days, when a product is clicked in a list), gtm4wp_orderid_tracked (localStorage on the order received page, or a 365-day cookie if localStorage is unavailable) and gtm4wp_readded_to_cart (localStorage). Its cache-safe data layer option (off by default) adds gtm4wp_woo_event (2 days), gtm4wp_login (logged-in users) and sessionStorage gtm4wp_visitor_session.

  • Sent from your server · GTM KitGTM Kit sets no tracking cookie by default, but some options do

    setting “sgtm_cookie_keeper, google_tag_gateway” · by default: off

    • Stape Cookie Keeper: _sbp for 2 years from the first page, set by the server.
    • After a login or sign-up: gtmkit_engagement_event for 300 seconds.
    • Google tag gateway (off by default): the loader comes from the site, not googletagmanager.com.

    Read in its code, 16 October 2026, GTM Kit 2.22.0.

    Full detail

    GTM Kit sets no tracking cookie by default. With Stape Cookie Keeper on, PHP sets _sbp for 2 years on the root domain from the first page; after a login or sign-up it sets gtmkit_engagement_event for 300 seconds. With its Google tag gateway (off by default) the loader comes from /wp-content/plugins/gtm-kit/gtg/measurement.php, relayed by the server, with no googletagmanager.com in the address. Its scripts carry data-cfasync="false" and data-nowprocket.

  • Depends on a setting · GTM KitGTM Kit loads Tag Manager whatever the choice by default

    setting “consent_gating_mode” · by default: always_load

    Its strong block mode holds the container, but only GTM Kit's own consent call releases it, and only when its own defaults are on. A banner's ordinary consent update does not.

    Read in its code, 16 October 2026, GTM Kit 2.22.0.

    Full detail

    GTM Kit's script gating mode is always_load by default: the container loads whatever the choice. In strong_block mode the container is written as type="text/plain" with data-gtmkit-gated="1" and is released only by window.gtmkit.consent.update() with analytics_storage and ad_storage granted, a function that exists only when GTM Kit's own defaults are on; a banner's plain gtag('consent','update') does not release it.

  • Depends on a setting · GA Google AnalyticsSome GA Google Analytics boxes have no effect with GA4

    setting “disable_admin, gap_anonymize, gap_display_ads, link_attr”

    Display advertising, link attribution, IP anonymization and force SSL apply only to the old codes. Hiding tracking from logged-in users covers administrators only.

    Read in its code, 16 October 2026, GA Google Analytics 20260810.

    Full detail

    In GA Google Analytics' gtag (GA4) mode, the display advertising, link attribution, IP anonymization and force SSL boxes have no effect; they apply only to the Universal and legacy codes. Its option to hide tracking from logged-in users only covers the administrator role.

  • Good to know · MonsterInsightsMonsterInsights tracks link clicks and downloads by default

    Outbound links, downloads, mailto and tel links are tracked through the same tag. A click writes a temporary _gd<timestamp> cookie and deletes it at once. IP anonymization has no effect with GA4.

    Read in its code, 16 October 2026, MonsterInsights 11.3.0.

    Full detail

    MonsterInsights tracks outbound links, downloads (doc, pdf, ppt, zip, xls, docx, pptx, xlsx), mailto, tel and /go/ or /recommend/ links by default through the same tag. On a tracked click its script writes a temporary _gd<timestamp> cookie and deletes it at once to find the root domain. gaOptout() sets ga-disable-<G-ID> until 2099. IP anonymization is off by default and has no effect with GA4.

  • Good to know · ExactMetricsExactMetrics tracks link clicks and downloads by default

    Outbound links, downloads, mailto and tel links are tracked through the same tag. A click writes a temporary _gd<timestamp> cookie and deletes it at once. IP anonymization has no effect with GA4.

    Read in its code, 16 October 2026, ExactMetrics 10.3.0.

    Full detail

    ExactMetrics tracks outbound links, downloads (doc, pdf, ppt, zip, xls, docx, pptx, xlsx), mailto, tel and /go/ or /recommend/ links by default through the same tag. On a tracked click its script writes a temporary _gd<timestamp> cookie and deletes it at once to find the root domain. gaOptout() sets ga-disable-<G-ID> until 2099. IP anonymization is off by default and has no effect with GA4.

  • Depends on a setting · Google Analytics for WooCommerceGoogle Analytics for WooCommerce turns on Google signals by default

    setting “Display advertising (ga_support_display_advertising)” · by default: yes

    Google signals follows the display advertising setting, which is on by default. Its opt-out function runs only if the site calls it. The sbjs_ cookies come from WooCommerce, not this plugin.

    Read in its code, 16 October 2026, Google Analytics for WooCommerce 2.4.3.

    Full detail

    In Google Analytics for WooCommerce, allow_google_signals follows the display advertising setting, which is on by default, so Google signals (advertising features) are enabled unless turned off. A gaOptout() function writing ga-disable-<ID> until 2099 exists but runs only if the site calls it. The plugin's code contains no sbjs_ cookie: those come from WooCommerce order attribution.

  • Depends on a setting · Google for WooCommerceGoogle for WooCommerce enhanced conversions print the address in clear text

    setting “Enhanced conversions” · by default: off

    Off by default. When on, each page of a known customer prints the email, names and phone hashed, but the street, city, postal code and country in clear text.

    Read in its code, 16 October 2026, Google for WooCommerce 3.9.6.

    Full detail

    With Google for WooCommerce's enhanced conversions on (off by default), every page of a known customer's session prints gtag('set','user_data') with the email, first name, last name and phone hashed (SHA-256), but the street, city, region, postal code and country in clear text in the HTML.

Questions

Should I switch on Consent Mode in my tag plugin?

Not if your consent plugin already sets the defaults. Two sets of defaults on one page make the result harder to read.

Do I lose data when visitors refuse?

Google does not receive their visit. That is what refusing means. Visitors who accept are measured as before.

What happens after the 30-day trial?

The banner, your visitors’ choices and your proofs of consent keep working. Without a key, most settings lock, updates and support stop. Take a key at any time and everything opens again.

For sites with a Google tag plugin

Keep your tag plugin, add consent.

the tag waits for a yes

Every feature of the complete plugin for 30 days, no card. Your tag plugin keeps working as it does today.

  • During the trial: everything, including the full settings and the scans
  • After 30 days without a key: the banner, your visitors’ choices and your proofs of consent keep working
  • What waits for a key: most settings, updates and support

How the trial works, in detail

Get your trial key

Your e-mail and your site. Your key arrives as soon as you confirm your e-mail.

One trial per domain. Local and staging sites never use up your key.

We keep your e-mail address to send your key and help you with it, as explained in our privacy policy. No newsletter, nothing else.