{"id":274354,"date":"2026-01-13T21:19:28","date_gmt":"2026-01-13T21:19:28","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/zdanalytics-connector\/"},"modified":"2026-01-14T05:22:15","modified_gmt":"2026-01-14T05:22:15","slug":"zdanalytics-connector","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/zdanalytics-connector\/","author":23438671,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.10","stable_tag":"1.8.10","tested":"6.9.4","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"ZDAnalytics Connector (GA4 + GTM)","header_author":"ZDAPPS","header_description":"Adds Google Analytics 4 and Google Tag Manager snippets with explicit opt-in and consent controls.","assets_banners_color":"afafaf","last_updated":"2026-01-14 05:22:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plugins.zdapps.com.mx\/","header_author_uri":"https:\/\/zdapps.com.mx","rating":5,"author_block_rating":0,"active_installs":0,"downloads":172,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.10":{"tag":"1.8.10","author":"zdapps","date":"2026-01-14 05:22:15"},"1.8.6":{"tag":"1.8.6","author":"zdapps","date":"2026-01-13 21:19:05"},"1.8.9":{"tag":"1.8.9","author":"zdapps","date":"2026-01-14 04:36:35"}},"upgrade_notice":{"1.8.9":"<ul>\n<li>Added Basic\/Advanced tabs in settings (simpler setup with optional advanced parameters).<\/li>\n<li>Improved automatic consent key detection and clearer admin feedback.<\/li>\n<li>Bundled required JS assets inside the plugin ZIP (admin + consent loader).<\/li>\n<\/ul>","1.8.8":"<ul>\n<li>Added consent storage source (Cookie \/ Local Storage).<\/li>\n<li>Added consent value list with safer matching for common consent plugins.<\/li>\n<li>Added admin helper to auto-detect cookies\/localStorage keys from the current browser.<\/li>\n<\/ul>","1.8.7.1":"<p>Hotfix: Fixes a PHP parse error and ensures the cache-friendly consent loader runs correctly.<\/p>","1.8.7":"<p>Switches tracking loading to a cache-friendly consent loader. If you require consent, verify your consent cookie name (default: cookie_notice_accepted).<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3439007,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3439007,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3439007,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3439007,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.10","1.8.6","1.8.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3439007,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3439007,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3439007,"resolution":"3","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[16626,193472,1005,23294,23295],"plugin_category":[36],"plugin_contributors":[253937],"plugin_business_model":[],"class_list":["post-274354","plugin","type-plugin","status-publish","hentry","plugin_tags-cookie-consent","plugin_tags-ga4","plugin_tags-google-analytics","plugin_tags-google-tag-manager","plugin_tags-gtm","plugin_category-analytics","plugin_contributors-zdapps","plugin_committers-zdapps"],"banners":{"banner":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/banner-772x250.jpg?rev=3439007","banner_2x":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/banner-1544x500.jpg?rev=3439007","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/icon-128x128.png?rev=3439007","icon_2x":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/icon-256x256.png?rev=3439007","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/screenshot-1.png?rev=3439007","caption":""},{"src":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/screenshot-2.png?rev=3439007","caption":""},{"src":"https:\/\/ps.w.org\/zdanalytics-connector\/assets\/screenshot-3.png?rev=3439007","caption":""}],"raw_content":"<!--section=description-->\n<p>ZDAnalytics Connector helps you connect <strong>Google Analytics 4 (GA4)<\/strong> and\/or <strong>Google Tag Manager (GTM)<\/strong> to your WordPress site without editing theme files.<\/p>\n\n<p><strong>Key features<\/strong>\n* Simple settings page (Settings \u2192 ZDAnalytics Connector)\n* Supports GA4 Measurement ID (G-XXXXXXXXXX) and GTM Container ID (GTM-XXXXXXX)\n* Consent-friendly: when enabled, the plugin waits for consent before loading Google scripts\n* Cache-friendly: consent checking happens in the browser, so it works with full-page caches (LiteSpeed, server cache, CDN, etc.)\n* Optional: do not load tracking for logged-in users<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to external services provided by Google:<\/p>\n\n<p>1) <strong>Google Analytics 4<\/strong>\n* What it is used for: Website analytics\/measurement.\n* What data is sent: When loaded, Google scripts may collect usage data (e.g., page views, events, device\/browser information) as configured in your Google Analytics property.\n* When it is sent: When tracking is enabled and (if configured) the user has consented.\n* Terms: https:\/\/policies.google.com\/terms\n* Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p>2) <strong>Google Tag Manager<\/strong>\n* What it is used for: Tag management (loading additional tags you configure in GTM).\n* What data is sent: Data collection depends on the tags you configure inside your GTM container.\n* When it is sent: When tracking is enabled and (if configured) the user has consented.\n* Terms: https:\/\/policies.google.com\/terms\n* Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin zip and activate it.<\/li>\n<li>Go to <strong>Settings \u2192 ZDAnalytics Connector<\/strong>.<\/li>\n<li>Enter your GA4 Measurement ID and\/or GTM Container ID.<\/li>\n<li>(Optional) Enable consent requirement and set the consent cookie name used by your cookie banner plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20this%20plugin%20track%20users%20by%20default%3F'><h3>Does this plugin track users by default?<\/h3><\/dt>\n<dd><p>No. You can disable tracking entirely using <strong>Enable tracking (opt-in)<\/strong>. If <strong>Require consent before tracking<\/strong> is enabled, the plugin will not load Google scripts until consent is detected.<\/p><\/dd>\n<dt id='how%20does%20consent%20detection%20work%3F'><h3>How does consent detection work?<\/h3><\/dt>\n<dd><p>If <strong>Require consent before tracking<\/strong> is enabled, the plugin checks the configured <strong>Consent cookie name<\/strong> (default: <code>cookie_notice_accepted<\/code>) for a value such as <code>true<\/code>, <code>1<\/code>, <code>yes<\/code>, or <code>accepted<\/code>.<br \/>\nIf the cookie name is empty, developers can use the <code>zdac_user_has_consented<\/code> filter to integrate with custom consent logic.<\/p><\/dd>\n<dt id='does%20this%20plugin%20provide%20a%20cookie%20banner%3F'><h3>Does this plugin provide a cookie banner?<\/h3><\/dt>\n<dd><p>No. Use any cookie\/consent plugin you prefer and configure the cookie name in this plugin.<\/p><\/dd>\n<dt id='i%20use%20page%20caching%20%28litespeed%2Fhosting%20cache%2Fcdn%29.%20will%20this%20work%3F'><h3>I use page caching (LiteSpeed\/hosting cache\/CDN). Will this work?<\/h3><\/dt>\n<dd><p>Yes. This plugin uses a small local loader script that checks consent in the browser and only then loads Google scripts, so it is compatible with full-page caching.<\/p><\/dd>\n<dt id='should%20i%20use%20both%20ga4%20and%20gtm%20at%20the%20same%20time%3F'><h3>Should I use both GA4 and GTM at the same time?<\/h3><\/dt>\n<dd><p>You can, but avoid double-counting: if you load GA4 via GTM, you usually do not need to also set the GA4 Measurement ID in this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.10<\/h4>\n\n<ul>\n<li>Improve admin field labels and inline help text.<\/li>\n<li>Improve plugin metadata for better discoverability.<\/li>\n<\/ul>\n\n<h4>1.8.9<\/h4>\n\n<ul>\n<li>Added Basic\/Advanced settings tabs and improved automatic consent detection.<\/li>\n<li>Bundled JS assets (admin + consent loader) in the plugin package.<\/li>\n<\/ul>\n\n<h4>1.8.8<\/h4>\n\n<ul>\n<li>Added consent storage source (Cookie \/ Local Storage) and consent accepted values list.<\/li>\n<li>Added admin helper to detect cookies\/localStorage keys from the current browser.<\/li>\n<\/ul>\n\n<h4>1.8.7.1<\/h4>\n\n<ul>\n<li>Hotfix: fixed a PHP syntax error that could cause a fatal error on activation.<\/li>\n<\/ul>\n\n<h4>1.8.7<\/h4>\n\n<ul>\n<li>Added cache-friendly, consent-aware loader that injects GA4\/GTM only after consent is detected (works with full-page caches like LiteSpeed).<\/li>\n<li>Added settings: Enable tracking (opt-in) and Consent cookie name (<code>cookie_notice_accepted<\/code> by default).<\/li>\n<li>Improved consent detection (cookie-based with filter fallback) and prevented noscript GTM output when consent is required.<\/li>\n<\/ul>\n\n<h4>1.8.5<\/h4>\n\n<ul>\n<li>Improved sanitization (register_setting with sanitize_callback) and consent-first tracking behavior.<\/li>\n<li>Enqueued scripts properly (no direct echo of script tags).<\/li>\n<\/ul>","raw_excerpt":"Consent-friendly GA4 + GTM connector for WordPress (opt-in, cache-safe, no theme edits).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/274354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=274354"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zdapps"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=274354"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=274354"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=274354"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=274354"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=274354"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=274354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}