[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fTmfONO7eKn917VjiAU7OHA1uZ2UHXw1Qt5de6rDmpaM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":139,"fingerprints":177},"datalayer","DataLayer for GTM and Matomo","1.0.2","Openmost","https:\u002F\u002Fprofiles.wordpress.org\u002Fopenmost\u002F","\u003Cp>Elevate your website analytics with the DataLayer plugin!\u003Cbr \u002F>\nThis robust plugin creates a fully populated and standardized dataLayer object, ensuring seamless integration with both Google Tag Manager and Matomo Tag Manager.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Instant Setup: Automatically generates and populates a dataLayer object with essential website and user interaction data.\u003C\u002Fli>\n\u003Cli>Universal Compatibility: Works flawlessly with Google Tag Manager and Matomo Tag Manager, making it easier to manage your tagging needs.\u003C\u002Fli>\n\u003Cli>Customizable Data: Easily add or modify data points to fit your specific tracking requirements.\u003C\u002Fli>\n\u003Cli>Performance Optimized: Lightweight and optimized for speed to ensure your site remains fast and responsive.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Get a quick look at all the generated structures!\u003C\u002Fp>\n\u003Ch4>Archive page `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>Easy access to your archive data with a standard event name and subject.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_archive_date\", \u002F\u002F_date may be replaces with _tax value\n    \"page\": {\n        \"type\": \"archive\",\n        \"title\": \"january 2025 - Example\",\n        \"url\": \"https:\u002F\u002Fexample.com\u002F2025\u002F01\",\n        \"path\": \"2025\u002F01\",\n        \"locale\": \"en_US\",\n        \"archive_type\": \"date\",\n        \"taxonomy\": false,\n        \"post_type\": false,\n        \"date\": {\n            \"year\": 2025,\n            \"month\": 1,\n            \"day\": null\n        }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Author page `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>Easy access to all author details on his archive page.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_author\",\n    \"page\": {\n        \"id\": 1,\n        \"nickname\": \"openmost\",\n        \"display_name\": \"openmost\",\n        \"first_name\": \"Ronan\",\n        \"last_name\": \"HELLO\",\n        \"description\": \"The creator of this super plugin\",\n        \"type\": \"author\",\n        \"url\": \"https:\u002F\u002Fexample.com\u002Fauthor\u002Fopenmost\",\n        \"path\": \"author\u002Fopenmost\",\n        \"title\": \"Author: openmost\"\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Error page `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>This \u003Ccode>dataLayer\u003C\u002Fcode> structure allows you to easily track the 404 error and detect the referring page that led to this error.\u003Cbr \u002F>\nWhat a great trick yeah?\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_error_404\",\n    \"page\": {\n        \"type\": \"error\",\n        \"title\": \"Page not found - Website\",\n        \"url\": \"https:\u002F\u002Fexample.com\u002Furl-that-encountered-a-404-error\",\n        \"path\": \"\u002Furl-that-encountered-a-404-error\",\n        \"locale\": \"en_US\",\n        \"error_type\": \"404\",\n        \"http_status_code\": 404\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Search results page `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>The search key in this object allows you to get the search term and total results to detect invalid searches.\u003Cbr \u002F>\nVery useful for Matomo Tag Manager, and nice hack for Google Tag Manager.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_search_results\",\n    \"page\": {\n        \"type\": \"search\",\n        \"url\": \"https:\u002F\u002Fexample.com\",\n        \"path\": \"\",\n        \"title\": \"You searched for Demo - Example\",\n        \"locale\": \"en_US\"\n    },\n    \"search\": {\n        \"search\": \"Demo\",\n        \"search_cat\": \"\",\n        \"search_count\": 3,\n        \"query\": \"Demo\",\n        \"found_posts\": 3,\n        \"post_count\": 3\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Home, Post Type `dataLayer` structure (blog posts, custom post type single page)\u003C\u002Fh4>\n\u003Cp>The following structure is generated for a single post page, but it automatically adapts to your custom post type, page, etc.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_single_post\",\n    \"page\": {\n        \"type\": \"post\",\n        \"id\": 1,\n        \"url\": \"https:\u002F\u002Fexample.com\u002Fblog\u002Fsuper-article-path\",\n        \"path\": \"\u002Fblog\u002Fsuper-article-path\",\n        \"title\": \"Super article title | Example\",\n        \"locale\": \"en_US\",\n        \"is_home\": false,\n        \"is_front_page\": false,\n        \"post_name\": \"super-article-path\",\n        \"post_title\": \"Super article title\",\n        \"post_excerpt\": \"\",\n        \"post_status\": \"publish\",\n        \"post_date\": \"2024-08-17 13:30:00\",\n        \"post_date_gmt\": \"2024-08-17 13:30:00\",\n        \"post_modified\": \"2024-08-17 13:30:00\",\n        \"post_modified_gmt\": \"2024-08-17 13:30:00\",\n        \"post_type_name\": \"post\",\n        \"post_type_label\": \"Posts\",\n        \"post_type\": {\n            \"name\": \"post\",\n            \"label\": \"Posts\",\n            \"label_singular\": \"Post\",\n            \"label_plural\": \"Posts\",\n            \"description\": \"The super post type description\"\n        },\n        \"guid\": \"https:\u002F\u002Fexample.com\u002F?p=1\",\n        \"post_mime_type\": false,\n        \"comment_status\": \"open\",\n        \"comment_count\": \"0\",\n        \"author\": {\n            \"id\": 1,\n            \"nickname\": \"openmost\",\n            \"display_name\": \"openmost\",\n            \"first_name\": \"Ronan\",\n            \"last_name\": \"HELLO\",\n            \"description\": \"The creator of this super plugin\"\n        },\n        \"taxonomies\": {\n            \"category\": {\n                \"name\": \"category\",\n                \"label\": \"Categories\",\n                \"description\": \"\",\n                \"object_type\": [\n                    \"post\"\n                ],\n                \"terms\": {\n                    \"Uncategorized\": {\n                        \"term_id\": 1,\n                        \"slug\": \"uncategorized\",\n                        \"name\": \"Uncategorized\",\n                        \"term_group\": 0,\n                        \"term_taxonomy_id\": 1,\n                        \"taxonomy\": \"category\",\n                        \"description\": \"\",\n                        \"parent\": 0,\n                        \"count\": 1,\n                        \"filter\": \"raw\"\n                    }\n                },\n                \"primary_term\": [] \u002F\u002FFilled only with YoastSEO plugin\n            }\n        },\n        \"category\": [\n            \"Uncategorized\"\n        ],\n        \"page_template\": \"\"\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Term and taxonomy page `dataLayer` structure\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"view_archive_category\", \u002F\u002F this event name changed for every taxonomy\n    \"page\": {\n        \"type\": \"archive\",\n        \"title\": \"Uncategorized archives - Example\",\n        \"url\": \"https:\u002F\u002Fexample.com\u002Fblog\u002Fcategory\u002Funcategorized\",\n        \"path\": \"blog\u002Fcategory\u002Funcategorized\",\n        \"locale\": \"en_US\",\n        \"archive_type\": \"taxonomy\",\n        \"taxonomy\": \"category\",\n        \"post_type\": \"category\",\n        \"date\": {\n            \"year\": null,\n            \"month\": null,\n            \"day\": null\n        }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Pagination `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>The \u003Ccode>pagination\u003C\u002Fcode> object structure is automatically added to all pages that have pagination.\u003C\u002Fp>\n\u003Cp>Easy access to your pagination data, detect if users are using your pagination as much as you want.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    pagination: {\n        \"posts_per_page\": 10,\n        \"post_count\": 1,\n        \"paged\": true,\n        \"page_number\": 2,\n        \"max_num_pages\": 5\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Authenticated user `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>The \u003Ccode>user\u003C\u002Fcode> object is automatically added to all page when user is logged in.\u003C\u002Fp>\n\u003Cp>User hashed data with SHA256 is very useful for GDPR consent with Google Ads services and user provided data.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    user: {\n        \"id\": 1,\n        \"user_login\": \"openmost\",\n        \"user_nicename\": \"Openmost\",\n        \"user_email\": \"no-reply@openmost.io\",\n        \"user_registered\": \"2024-01-01 12:00:00\",\n        \"display_name\": \"openmost\",\n        \"roles\": [\n            \"administrator\"\n        ],\n        \"sha256_id\": \"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\",\n        \"sha256_user_login\": \"b2754b994c2fb636d1943ac0170f4ea192a891fb0f09cfdd100a9ffa983f053d\",\n        \"sha256_user_email\": \"679d031c25e557ee84ca86ecaf333ccd8d3d1a3900ee728da83d79a819daf535\"\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Plugin : Contact Form 7 `dataLayer` structure\u003C\u002Fh4>\n\u003Cp>This plugin automatically detects the use of WP Contact Form 7.\u003Cbr \u002F>\nNo configuration needed.\u003C\u002Fp>\n\u003Cp>Form submitted\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"wpcf7_submit\",\n    \"wpcf7_form_id\": 145,\n    \"wpcf7_form_detail\": {} \u002F\u002F See wpcf7_form_details below\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Form with invalid fields\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"wpcf7_invalid\",\n    \"wpcf7_form_id\": 145,\n    \"wpcf7_form_detail\": {} \u002F\u002F See wpcf7_form_details below\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Form spamming detected\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"wpcf7_spam\",\n    \"wpcf7_form_id\": 145,\n    \"wpcf7_form_detail\": {} \u002F\u002F See wpcf7_form_details below\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Email sent successfully\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"wpcf7_mail_sent\",\n    \"wpcf7_form_id\": 145,\n    \"wpcf7_form_detail\": {} \u002F\u002F See wpcf7_form_details below\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Failed to send mail\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"event\": \"wpcf7_mail_failed\",\n    \"wpcf7_form_id\": 145,\n    \"wpcf7_form_detail\": {} \u002F\u002F See wpcf7_form_details below\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>As each event handles \u003Ccode>wpcf7_form_details\u003C\u002Fcode>, here is an example of the object values when the form is submitted with invalid fields.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"wpcf7_form_detail\": {\n        \"contactFormId\": 145,\n        \"pluginVersion\": \"6.0.3\",\n        \"contactFormLocale\": \"en_US\",\n        \"unitTag\": \"wpcf7-xxxxxx\",\n        \"containerPostId\": 0,\n        \"status\": \"validation_failed\",\n        \"inputs\": [\n            {\n                \"name\": \"your-message\",\n                \"value\": \"\"\n            },\n            {\n                \"name\": \"your-name\",\n                \"value\": \"\"\n            },\n            \u002F\u002F All other inputs\n        ],\n        \"formData\": {},\n        \"apiResponse\": {\n            \"contact_form_id\": 145,\n            \"status\": \"validation_failed\",\n            \"message\": \"One or more fields contain an error. Please check and try again.\",\n            \"invalid_fields\": [\n                {\n                    \"field\": \"your-name\",\n                    \"message\": \"Please complete this field..\",\n                    \"idref\": \"last_name\",\n                    \"error_id\": \"wpcf7-f145-o1-ve-your-name\"\n                },\n                {\n                    \"field\": \"your-first-name\",\n                    \"message\": \"Please complete this field.\",\n                    \"idref\": \"first_name\",\n                    \"error_id\": \"wpcf7-f145-o1-ve-your-first-name\"\n                },\n                \u002F\u002F All other invalid fields\n            ],\n            \"posted_data_hash\": \"\",\n            \"into\": \"#wpcf7-f145-o1\"\n        }\n    }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Plugin : WP Forms `dataLayer` structure\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>{\n    event: 'wp_forms_submit',\n    wp_forms_form_detail: {} \u002F\u002F the HTML tag found in DOM\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Add contextual information to dataLayer for GTM and MTM",70,1571,0,"2025-04-16T15:08:00.000Z","6.8.5","6.0","7.2",[19,4,20,21,22],"analytics","google-tag-manager","gtm","matomo","https:\u002F\u002Fgithub.com\u002Fopenmost\u002Fdatalayer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdatalayer.1.0.3.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"openmost",2,80,30,94,"2026-04-04T07:26:28.189Z",[37,54,78,100,121],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":13,"downloaded":45,"rating":13,"num_ratings":13,"last_updated":46,"tested_up_to":15,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":51,"download_link":52,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":53},"gtm4publishers","GTM4Publishers – Smart content tracking for blogs, news sites and magazines","1.0.0","antoniolite","https:\u002F\u002Fprofiles.wordpress.org\u002Fantoniolite\u002F","\u003Cp>Integrates Google Tag Manager into WordPress and generates an advanced dataLayer, optimized for blogs, newspapers, magazines, and other digital media.\u003C\u002Fp>\n\u003Cp>GTM4Publishers is a specialized plugin for digital publishers who need advanced and detailed content tracking. The plugin smartly integrates Google Tag Manager and automatically generates a rich dataLayer with specific information for each post.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Main Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Full Google Tag Manager management: Automatically inserts GTM code in the correct positions (head and body)\u003C\u002Fli>\n\u003Cli>Advanced dataLayer: Automatically generates a detailed dataLayer with post-specific information\u003C\u002Fli>\n\u003Cli>Pre-configured GTM container: Includes a ready-to-import JSON file with complete configuration\u003C\u002Fli>\n\u003Cli>Dual event system: Distinguishes between “view” (page load) and “read” (real engagement)\u003C\u002Fli>\n\u003Cli>Flexible configuration: Choose between inserting the full GTM code or just generating the dataLayer\u003C\u002Fli>\n\u003Cli>Intuitive custom fields: Set access type and evergreen content directly from the post editor\u003C\u002Fli>\n\u003Cli>Configurable CSS selectors: Adapt the plugin to any theme using customizable CSS selectors\u003C\u002Fli>\n\u003Cli>Optimized for publishers: Includes specific metrics like reading time, multimedia, hierarchical categories, etc.\u003C\u002Fli>\n\u003Cli>Internationalization: English (default), Spanish, and Russian translations included\u003C\u002Fli>\n\u003Cli>Security: All user input is sanitized and escaped following WordPress best practices\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin may connect to Google Tag Manager (GTM) services when the user chooses to insert GTM code on their website.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Google Tag Manager (Optional Integration):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>What it is and what it’s used for:\u003C\u002Fstrong> Google Tag Manager is a tag management system that allows you to quickly and easily update measurement codes and related code fragments (collectively called “tags”) on your website or mobile app. This plugin can optionally insert GTM code to enable advanced analytics and tracking capabilities.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>What data is sent and when:\u003C\u002Fstrong> When GTM integration is enabled, the plugin sends page view data and user interaction information to Google Tag Manager. This includes post metadata (categories, tags, author, publication date), content analysis (word count, reading time, multimedia content), and user behavior data (referrer, origin, engagement metrics). Data is sent when users visit individual post pages and when they interact with content (reading events).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When it’s used:\u003C\u002Fstrong> GTM integration is \u003Cstrong>completely optional\u003C\u002Fstrong> and is only activated if the user explicitly enables the “Insert GTM Code” option in the plugin settings. By default, the plugin only generates a dataLayer without connecting to any external services.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service provider:\u003C\u002Fstrong> Google Tag Manager is provided by Google LLC.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fmarketingplatform.google.com\u002Fabout\u002Fanalytics\u002Fterms\u002F\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Important Note:\u003C\u002Fstrong> The plugin is designed to work without any external services. The GTM integration is an optional feature that users can choose to enable or disable. When disabled, the plugin only generates a local dataLayer without sending any data to external services.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Cstrong>Antonio Lite\u003C\u002Fstrong> — \u003Ca href=\"https:\u002F\u002Fwww.antoniolite.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.antoniolite.com\u003C\u002Fa>\u003Cbr \u002F>\nTelegram support group — \u003Ca href=\"https:\u002F\u002Ft.me\u002FGTM4Publishers\" rel=\"nofollow ugc\">https:\u002F\u002Ft.me\u002FGTM4Publishers\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Donate link\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcoff.ee\u002Fantoniolite\" rel=\"nofollow ugc\">https:\u002F\u002Fcoff.ee\u002Fantoniolite\u003C\u002Fa>\u003C\u002Fp>\n","Integrate Google Tag Manager into WordPress and generate an advanced, customizable dataLayer for publishers, blogs, and digital media.",270,"","5.0","7.4",[19,4,20,21,50],"publisher","https:\u002F\u002Fgtm4publishers.antoniolite.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgtm4publishers.1.0.0.zip","2026-03-15T10:48:56.248Z",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":64,"num_ratings":65,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":48,"tags":69,"homepage":73,"download_link":74,"security_score":75,"vuln_count":76,"unpatched_count":13,"last_vuln_date":77,"fetched_at":27},"duracelltomi-google-tag-manager","GTM4WP – A Google Tag Manager (GTM) plugin for WordPress","1.22.3","Thomas Geiger","https:\u002F\u002Fprofiles.wordpress.org\u002Fduracelltomi\u002F","\u003Cp>Google Tag Manager (GTM) is Google’s free tool for everyone to manage and deploy analytics and marketing tags as well as other code snippets\u003Cbr \u002F>\nusing an intuitive web UI. To learn more about this tool, visit the \u003Ca href=\"https:\u002F\u002Fmarketingplatform.google.com\u002Fabout\u002Ftag-manager\u002F\" rel=\"nofollow ugc\">official website\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin places the GTM container code snippets onto your WordPress website so that you do not need to add it manually.\u003Cbr \u002F>\nMultiple containers are also supported!\u003C\u002Fp>\n\u003Cp>The plugin complements your GTM setup by pushing page meta data and user information into the so called data layer.\u003Cbr \u002F>\nGoogle’s official help pages includes \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Ftag-platform\u002Ftag-manager\u002Fdatalayer#datalayer\" rel=\"nofollow ugc\">more details about the data layer\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>PHP 7.4 is required to use this plugin.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>GTM container code placement\u003C\u002Fh4>\n\u003Cp>The original GTM container code is divided into two parts:\u003C\u002Fp>\n\u003Cp>The first part is a javascript code snippet that is added to the \u003Ccode>\u003Chead>\u003C\u002Fcode> section of every page of the website.\u003Cbr \u002F>\nThis part is critical to enable all features of GTM, and this plugin helps to place this part\u003Cbr \u002F>\ncorrectly on your site.\u003C\u002Fp>\n\u003Cp>The second part is an iframe snippet that acts as a failsafe\u002Ffallback should users’ JavaScript be disabled.\u003Cbr \u002F>\nGoogle recommends – for best performance – to place this code snippet directly after the opening \u003Ccode>\u003Cbody>\u003C\u002Fcode> tag on each page.\u003C\u002Fp>\n\u003Cp>Albeit not ideal, it will work when placed lower in the code. This plugin provides a code placement option for the second code snippet.\u003C\u002Fp>\n\u003Cp>If your WordPress theme is compatible with the additions of WordPress 5.2 then this plugin will place this second code to the right place.\u003Cbr \u002F>\nUsers of the Genisis theme, GeneratePress theme, Elementor, Oxygen Builder and Beaver Builder Theme will also have this placed correctly.\u003Cbr \u002F>\nTo utilize this, set the compatibility mode in plugin options to off.\u003C\u002Fp>\n\u003Cp>All other users can place this second code snippet using a custom PHP code (“Manually coded” option) or select the so called “Footer” option to\u003Cbr \u002F>\nadd the code lower in the code (it is not the recommended way but will work)\u003C\u002Fp>\n\u003Ch4>Basic data included\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>post\u002Fpage titles\u003C\u002Fli>\n\u003Cli>post\u002Fpage dates\u003C\u002Fli>\n\u003Cli>post\u002Fpage category names\u003C\u002Fli>\n\u003Cli>post\u002Fpage tag names\u003C\u002Fli>\n\u003Cli>post\u002Fpage author ID and name\u003C\u002Fli>\n\u003Cli>post\u002Fpage ID\u003C\u002Fli>\n\u003Cli>post types\u003C\u002Fli>\n\u003Cli>post format\u003C\u002Fli>\n\u003Cli>post count on the current page + in the current category\u002Ftag\u002Ftaxonomy\u003C\u002Fli>\n\u003Cli>custom terms associated with any post type\u003C\u002Fli>\n\u003Cli>logged in status\u003C\u002Fli>\n\u003Cli>logged in user role\u003C\u002Fli>\n\u003Cli>logged in user ID (to track cross device behaviour in Google Analytics)\u003C\u002Fli>\n\u003Cli>logged in user email address (both unhashed and SHA256 hased values to be used with tracking)\u003C\u002Fli>\n\u003Cli>logger in user creation date\u003C\u002Fli>\n\u003Cli>site search data\u003C\u002Fli>\n\u003Cli>site name and id (for WordPress multisite instances)\u003C\u002Fli>\n\u003Cli>IP address of the visitor (please use the explicit consent of the visitor to utilize this)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Browser \u002F OS \u002F Device data\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>browser data (name, version, engine)\u003C\u002Fli>\n\u003Cli>OS data (name, version)\u003C\u002Fli>\n\u003Cli>device data (type, manufacturer, model)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Data is provided using the WhichBrowser library: http:\u002F\u002Fwhichbrowser.net\u002F\u003C\u002Fp>\n\u003Ch4>Weather data\u003C\u002Fh4>\n\u003Cp>(beta)\u003C\u002Fp>\n\u003Cp>Push data about users’ current weather conditions into the dataLayer. This can be used to generate weather-related\u003Cbr \u002F>\naudience\u002Fremarketing lists on ad platforms and allows for user segmentation in your web analytics solutions:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>weather category (clouds, rain, snow, etc.)\u003C\u002Fli>\n\u003Cli>weather description: more detailed data\u003C\u002Fli>\n\u003Cli>temperature in Celsius or Fahrenheit\u003C\u002Fli>\n\u003Cli>air pressure\u003C\u002Fli>\n\u003Cli>wind speed and degrees\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Weather data is queried from Open Weather Map. Depending on your websites traffic, additional fees may apply:\u003Cbr \u002F>\nhttp:\u002F\u002Fopenweathermap.org\u002Fprice\u003C\u002Fp>\n\u003Cp>An (free) API key from OpenWeatherMap is required for this feature to work.\u003C\u002Fp>\n\u003Cp>ipstack.com is used to determine the site visitor’s location. A (free) API key from IPStack.com is required for this feature to work:\u003Cbr \u002F>\nhttps:\u002F\u002Fipstack.com\u002Fproduct\u003C\u002Fp>\n\u003Ch4>Media player events\u003C\u002Fh4>\n\u003Cp>(experimental)\u003C\u002Fp>\n\u003Cp>Track users’ interaction with any embedded media:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>YouTube\u003C\u002Fli>\n\u003Cli>Vimeo\u003C\u002Fli>\n\u003Cli>Soundcloud\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>DataLayer events can be chosen to fire upon media player load, media is being played, paused\u002Fstopped and optionally when\u003Cbr \u002F>\nthe user reaches 10, 20, 30, …, 90, 100% of the media duration.\u003C\u002Fp>\n\u003Cp>Tracking is supported for embedded media using the built-in oEmbed feature of WordPress as well as most other media plugins\u003Cbr \u002F>\nand copy\u002Fpasted codes. Players injected into the website after page load are not currently supported.\u003C\u002Fp>\n\u003Ch4>Scroll tracking\u003C\u002Fh4>\n\u003Cp>Fire tags based on how the visitor scrolls from the top to the bottom of a page.\u003Cbr \u002F>\nAn example would be to separate “readers” (who spend a specified amount of time on a page) from “scrollers”\u003Cbr \u002F>\n(who only scroll through within seconds). You can use these events to fire Analytics tags and\u002For remarketing\u002Fconversion tags\u003Cbr \u002F>\n(for micro conversions).\u003C\u002Fp>\n\u003Cp>Scroll tracking is based on the solution originally created by\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Nick Mihailovski\u003C\u002Fli>\n\u003Cli>Thomas Baekdal\u003C\u002Fli>\n\u003Cli>Avinash Kaushik\u003C\u002Fli>\n\u003Cli>Joost de Valk\u003C\u002Fli>\n\u003Cli>Eivind Savio\u003C\u002Fli>\n\u003Cli>Justin Cutroni\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Original script:\u003Cbr \u002F>\nhttp:\u002F\u002Fcutroni.com\u002Fblog\u002F2012\u002F02\u002F21\u002Fadvanced-content-tracking-with-google-analytics-part-1\u002F\u003C\u002Fp>\n\u003Ch4>Blacklist & Whitelist Tag Manager tags, triggers and variables\u003C\u002Fh4>\n\u003Cp>To increase website security, you have the option to white- and blacklist tags\u002Ftriggers\u002Fvariables.\u003Cbr \u002F>\nYou can prevent specific tags from firing or the use of certain variable types regardless of your GTM setup.\u003C\u002Fp>\n\u003Cp>If the Google account associated with your GTM account is being hacked, an attacker could easily\u003Cbr \u002F>\nexecute malware on your website without accessing its code on your hosting server. By blacklisting custom HTML tags\u003Cbr \u002F>\nand\u002For custom JavaScript variables you can secure the Tag Manager container.\u003C\u002Fp>\n\u003Ch4>Integration\u003C\u002Fh4>\n\u003Cp>Google Tag Manager for WordPress integrates with several popular plugins. More integration to come!\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Contact Form 7: fire an event when a Contact Form 7 form was submitted with any result (mail sent, mail failed, spam detected, invalid input)\u003C\u002Fli>\n\u003Cli>WooCommerce:\n\u003Cul>\n\u003Cli>Implementation of \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Ftag-manager\u002Fecommerce-ga4\" rel=\"nofollow ugc\">GA4 E-commerce\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Does not support promotions since WooCommerce does not have such a feature (yet)\u003C\u002Fli>\n\u003Cli>Does not support refunds\u003C\u002Fli>\n\u003Cli>Compatibility with High Performance Order Storage (HPOS)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>AMP: load your AMP container on the AMP version of your pages\u003C\u002Fli>\n\u003Cli>Cookiebot: use automatic cookie blocking mode if needed\u003C\u002Fli>\n\u003Cli>Google Consent Mode v2: fire the “default” command with specific consent flags to integrat with non-certified Consent Management Platforms (CMPs) and plugins.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Server side containers\u003C\u002Fh4>\n\u003Cp>If you are using a \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Ftag-manager\u002Fserverside\u002Fsend-data#update_the_gtmjs_source_domain\" rel=\"nofollow ugc\">server side container\u003C\u002Fa>\u003Cbr \u002F>\nyou can enter your custom domain name and custom path to load gtm.js from your there.\u003C\u002Fp>\n\u003Ch4>Exclude specific user roles from being tracked\u003C\u002Fh4>\n\u003Cp>You can set which user roles needs to be excluded from tracking when a user with that role visits the frontend. This will completely disable the container code for that user.\u003C\u002Fp>\n","Advanced tag management for WordPress with Google Tag Manager",700000,13906369,90,154,"2025-12-15T14:45:00.000Z","6.9.4","3.4.0",[70,71,20,21,72],"google-ads","google-analytics","tag-manager","https:\u002F\u002Fgtm4wp.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fduracelltomi-google-tag-manager.1.22.3.zip",98,3,"2022-05-31 00:00:00",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":67,"requires_at_least":91,"requires_php":48,"tags":92,"homepage":95,"download_link":96,"security_score":97,"vuln_count":98,"unpatched_count":13,"last_vuln_date":99,"fetched_at":27},"gtm-kit","GTM Kit – Google Tag Manager & GA4 integration","2.8.2","TLA Media","https:\u002F\u002Fprofiles.wordpress.org\u002Ftlamedia\u002F","\u003Cp>GTM Kit puts the Google Tag Manager container code on your website so that you don’t need to touch any code. It also pushes data from WooCommerce, Easy Digital Downloads (EDD) and Contact Form 7 to the data layer for use with for Google Analytics 4, Facebook and other GTM tags.\u003C\u002Fp>\n\u003Cp>The goal of GTM Kit is to provide a flexible tool for generating the data layer for Google Tag Manager. It is easy to use and doesn’t require any coding, but it allows developers to customize the plugin as needed.\u003C\u002Fp>\n\u003Ch3>eCommerce events tracked with Google Analytics 4\u003C\u002Fh3>\n\u003Cp>The following GA4 events are automatically included in the dataLayer:\u003C\u002Fp>\n\u003Ch3>WooCommerce\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>view_item_list\u003C\u002Fli>\n\u003Cli>select_item\u003C\u002Fli>\n\u003Cli>view_item\u003C\u002Fli>\n\u003Cli>add_to_wishlist \u003Cstrong>[Premium]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>add_to_cart\u003C\u002Fli>\n\u003Cli>view_cart\u003C\u002Fli>\n\u003Cli>remove_from_cart\u003C\u002Fli>\n\u003Cli>begin_checkout\u003C\u002Fli>\n\u003Cli>add_shipping_info\u003C\u002Fli>\n\u003Cli>add_payment_info\u003C\u002Fli>\n\u003Cli>purchase\u003C\u002Fli>\n\u003Cli>refund \u003Cstrong>[Premium]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>order_paid \u003Cstrong>[Premium]\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Unlock all features with \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fgtm-kit-woo-add-on\u002F\" rel=\"nofollow ugc\">GTM Kit Woo Add-On\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Easy Digital Downloads\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>view_item\u003C\u002Fli>\n\u003Cli>add_to_cart\u003C\u002Fli>\n\u003Cli>begin_checkout\u003C\u002Fli>\n\u003Cli>purchase\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Flexible container implementation\u003C\u002Fh3>\n\u003Cp>Depending on how you use Google Tag Manager you can delay the loading of the container script until the browser is idle. This may be relevant to you be if are focusing on pagespeed.\u003C\u002Fp>\n\u003Cp>You may enter a custom domain name if you are using a custom server side GTM (sGTM) container for tracking. It’s also possible to specify a custom loader. GTM Kit has full support for Stape server GTM hosting.\u003C\u002Fp>\n\u003Ch3>Post data\u003C\u002Fh3>\n\u003Cp>You may specify which post data elements you wish to include in the dataLayer for use in Google Tag Manager.\u003Cbr \u002F>\n– Post type: include the type of the current post or archive page.\u003Cbr \u002F>\n– Page type: include a defined page type. I.e. post, page, product, category, cart, checkout etc.\u003Cbr \u002F>\n– Categories: include the categories of the current post or archive page.\u003Cbr \u002F>\n– Tags: include the tags of the current post or archive page.\u003Cbr \u002F>\n– Post title: include the post title of the current post.\u003Cbr \u002F>\n– Post ID: include the Post ID of the current post.\u003Cbr \u002F>\n– Post date: include the post date.\u003Cbr \u002F>\n– Post author name: include the post author name.\u003Cbr \u002F>\n– Post author ID: include the post author ID.\u003C\u002Fp>\n","Google Tag Manager and GA4 integration. Including WooCommerce data for Google Analytics 4 and support for server side GTM.",30000,529394,96,19,"2026-02-17T08:28:00.000Z","6.7",[19,93,20,21,94],"ga4","woocommerce","https:\u002F\u002Fgtmkit.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgtm-kit.2.8.2.zip",99,1,"2025-03-31 00:00:00",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":25,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":114,"tags":115,"homepage":118,"download_link":119,"security_score":120,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"gravity-forms-google-analytics-event-tracking","Event Tracking for Gravity Forms","2.5.0","Ronald Huereca","https:\u002F\u002Fprofiles.wordpress.org\u002Fronalfy\u002F","\u003Cblockquote>\n\u003Cp>Gravity Forms has launched \u003Ca href=\"https:\u002F\u002Fwww.gravityforms.com\u002Fadd-ons\u002Fgoogle-analytics\u002F\" rel=\"nofollow ugc\">an official Google Analytics Add-on\u003C\u002Fa>. It is the successor to this plugin.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>This plugin provides an easy way to add event tracking to your Gravity Forms using Google Analytics and Google Tag Manager.\u003C\u002Fp>\n\u003Cp>This plugin support Google Analytics 3 and \u003Ca href=\"https:\u002F\u002Fmediaron.com\u002Fevent-tracking-with-gravity-forms-and-google-analytics-4\u002F\" rel=\"nofollow ugc\">Google Analytics 4\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FrHW3roCuNSI?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&start=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent&listType=playlist&list=PLw2fSxxzure57usQNLMZrIAwn3DbRmaaF\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Also supports:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Pagination events\u003C\u002Fli>\n\u003Cli>JS only events\u003C\u002Fli>\n\u003Cli>Google Tag Manager\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Setup Guide\u003C\u002Fh4>\n\u003Cp>Looking for help setting things up? \u003Ca href=\"https:\u002F\u002Fmediaron.com\u002Fevent-tracking-for-gravity-forms\u002F?utm_source=wordpress_org&utm_medium=documentation&utm_campaign=event_tracking\" rel=\"nofollow ugc\">Read Our Setup Guide\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Minimum Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Gravity Forms 2.5\u003C\u002Fli>\n\u003Cli>Google Analytics Universal Analytics v3\u003C\u002Fli>\n\u003Cli>Google Tag Manager (optional)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Submit events to Google Analytics using the Measurement Protocol, JavaScript, or using Google Tag Manager\u003C\u002Fli>\n\u003Cli>Add multiple event feeds with conditionals\u003C\u002Fli>\n\u003Cli>Custom event categories, actions, labels and even values\u003C\u002Fli>\n\u003Cli>Track form pagination events\u003C\u002Fli>\n\u003Cli>Dynamic event value on payment forms (integration with the payment add-ons including Paypal Standard, PayPal Pro, Stripe, etc…)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For payment based forms, you can leave the value blank to convert using the total payment amount.\u003C\u002Fp>\n\u003Cp>Development happens on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fronalfy\u002Fwordpress-gravity-forms-event-tracking\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Please \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fgravity-forms-google-analytics-event-tracking\u002Freviews\u002F#new-post\" rel=\"ugc\">Rate the Plugin\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fmediaron.com\u002Fgive\u002F\" rel=\"nofollow ugc\">Give Back\u003C\u002Fa> to show support.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Get the official Gravity Forms Google Analytics Add-on\u003C\u002Fp>\n\u003Cp>The official Gravity Forms add-on is here and is the successor to this plugin.\u003C\u002Fp>\n\u003Cp>Find out more details about the \u003Ca href=\"https:\u002F\u002Fwww.gravityforms.com\u002Fadd-ons\u002Fgoogle-analytics\u002F\" rel=\"nofollow ugc\">Gravity Forms Google Analytics Add-on\u003C\u002Fa>.\u003C\u002Fp>\n","Easily add event tracking using Gravity Forms and your Google Analytics or Google Tag Manager account. Supports Google Analytics v3 and Gravity Forms  &hellip;",20000,673836,37,"2024-11-03T23:15:00.000Z","6.7.5","5.5","5.6",[71,20,116,22,117],"gravity-forms","piwik","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgravity-forms-google-analytics-event-tracking\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgravity-forms-google-analytics-event-tracking.2.5.0.zip",92,{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":25,"num_ratings":131,"last_updated":132,"tested_up_to":112,"requires_at_least":133,"requires_php":46,"tags":134,"homepage":137,"download_link":138,"security_score":120,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"contact-form-7-extras","Controls for Contact Form 7 (Redirects, Analytics & Tracking)","0.10.0","Kaspars","https:\u002F\u002Fprofiles.wordpress.org\u002Fkasparsd\u002F","\u003Cp>\u003Cstrong>NEW:\u003C\u002Fstrong> Subscribe to the \u003Ca href=\"https:\u002F\u002Fformcontrols.com\u002Fpro\" rel=\"nofollow ugc\">🚀 PRO version\u003C\u002Fa> for advanced analytics and tracking features, and professional support by the plugin author.\u003C\u002Fp>\n\u003Cp>This is an addon for the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcontact-form-7\u002F\" rel=\"ugc\">Contact Form 7\u003C\u002Fa> plugin with the following features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fformcontrols.com\u002Fdocs\" rel=\"nofollow ugc\">Track form submissions, errors and completions\u003C\u002Fa> with Google Analytics (GA4), Google Tag (gtag.js), Google Tag Manager (GTM), Matomo (formerly Piwik) and Facebook Pixel.\u003C\u002Fli>\n\u003Cli>Redirect to URL on form submission.\u003C\u002Fli>\n\u003Cli>Enable native WordPress shortcodes in form content.\u003C\u002Fli>\n\u003Cli>Disable AJAX form submissions.\u003C\u002Fli>\n\u003Cli>Disable default form CSS.\u003C\u002Fli>\n\u003Cli>Disable automatic paragraph formatting.\u003C\u002Fli>\n\u003Cli>Disable HTML5 input field types or enable the HTML5 input type fallback.\u003C\u002Fli>\n\u003Cli>Specify the Google reCAPTCHA language.\u003C\u002Fli>\n\u003Cli>Store form submissions in \u003Ca href=\"https:\u002F\u002Fpreseto.com\u002Fgo\u002Fcf7-storage?utm_source=wporg\" rel=\"nofollow ugc\">Storage for Contact Form 7\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftablepress\u002F\" rel=\"ugc\">TablePress\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please note that some settings work on the per-page level and will apply to all forms on the same page. For example, disabling AJAX form submissions for one form will disable AJAX submissions on all forms on the same page.\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcontact-form-7\u002F\" rel=\"ugc\">Contact Form 7\u003C\u002Fa> version 4.3 or later for features related to submission tracking and redirects.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>The plugin adds a new “Controls” tab for each Contact Form 7 form in the WordPress administration area.\u003C\u002Fp>\n\u003Ch4>Form Submission Storage\u003C\u002Fh4>\n\u003Cp>\u003Cem>Setup the official companion plugin \u003Ca href=\"https:\u002F\u002Fpreseto.com\u002Fgo\u002Fcf7-storage?utm_source=wporg\" rel=\"nofollow ugc\">Storage for Contact Form 7 plugin\u003C\u002Fa> for capturing the form submissions safely in the WordPres database.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Alternatively, there is also a basic integration with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftablepress\u002F\" rel=\"ugc\">TablePress plugin\u003C\u002Fa>. Select the TablePress table where to store the form submissions. The plugin will add any missing columns for each form field, and append the form entries as rows to the table. Additionally, fields \u003Ccode>cf7_time\u003C\u002Fcode> (submission time as \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_8601\" rel=\"nofollow ugc\">ISO 8601\u003C\u002Fa>) and \u003Ccode>cf7_url\u003C\u002Fcode> (URL where the form was submitted) are stored along with the form data.\u003C\u002Fp>\n\u003Ch4>Analytics Tracking\u003C\u002Fh4>\n\u003Cp>The plugin \u003Cem>automatically\u003C\u002Fem> triggers analytics events for the following services:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsupport.google.com\u002Fanalytics\u002Ftopic\u002F14088998\" rel=\"nofollow ugc\">Google Analytics (GA4)\u003C\u002Fa> using \u003Ca href=\"https:\u002F\u002Fsupport.google.com\u002Ftagmanager\u002Fanswer\u002F9442095\" rel=\"nofollow ugc\">Google Tag Manager\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Ftag-platform\u002Fgtagjs\" rel=\"nofollow ugc\">Global Tag (gtag.js)\u003C\u002Fa> with \u003Ccode>ga()\u003C\u002Fcode>, \u003Ccode>_gaq.push()\u003C\u002Fcode> and \u003Ccode>dataLayer.push()\u003C\u002Fcode> implementations,\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmatomo.org\u002F\" rel=\"nofollow ugc\">Matomo\u003C\u002Fa> (formerly Piwik),\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Ffacebook-pixel\u002Fimplementation\u002Fconversion-tracking\" rel=\"nofollow ugc\">Facebook Pixel Conversion Tracking\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>It passes the following data with the event:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“Contact Form” as the event category,\u003C\u002Fli>\n\u003Cli>“Submit”, “Sent”, “Error” or “Spam” as the event action, and\u003C\u002Fli>\n\u003Cli>the form title as the event title.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Facebook Pixel\u003C\u002Fh4>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Ffacebook-pixel\u002Fimplementation\u002Fconversion-tracking#standard-events\" rel=\"nofollow ugc\">standard Contact event\u003C\u002Fa> is used for Facebook Pixel with \u003Ccode>content_category\u003C\u002Fcode> property set to the event type (Submit, Sent, Error, Spam) and \u003Ccode>content_name\u003C\u002Fcode> set to the form title.\u003C\u002Fp>\n\u003Ch4>Contribute\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Report issues and suggest improvements \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkasparsd\u002Fcontact-form-7-extras\" rel=\"nofollow ugc\">on GitHub\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Add \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fcontact-form-7-extras\" rel=\"nofollow ugc\">a translation to your language\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","Analytics, tracking, redirects and storage for Contact Form 7.",10000,176628,13,"2025-01-20T16:15:00.000Z","4.6",[19,135,136,21,22],"contact-form-7","facebook-pixel","https:\u002F\u002Fformcontrols.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontact-form-7-extras.0.10.0.zip",{"attackSurface":140,"codeSignals":165,"taintFlows":172,"riskAssessment":173,"analyzedAt":176},{"hooks":141,"ajaxHandlers":161,"restRoutes":162,"shortcodes":163,"cronEvents":164,"entryPointCount":13,"unprotectedCount":13},[142,148,154,157],{"type":143,"name":144,"callback":145,"priority":31,"file":146,"line":147},"action","wp_head","omdl_init","inc\\datalayer.php",21,{"type":143,"name":149,"callback":150,"priority":151,"file":152,"line":153},"wp_enqueue_scripts","omdl_get_wpcf7_form_details",10,"inc\\modules\\plugin-contact-form-7.php",5,{"type":143,"name":149,"callback":155,"priority":151,"file":156,"line":153},"omdl_get_wp_forms_form_details","inc\\modules\\plugin-wp-forms.php",{"type":143,"name":149,"callback":158,"priority":151,"file":159,"line":160},"omdl_get_searchform_event","inc\\modules\\search.php",39,[],[],[],[],{"dangerousFunctions":166,"sqlUsage":167,"outputEscaping":169,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":171},[],{"prepared":13,"raw":13,"locations":168},[],{"escaped":76,"rawEcho":13,"locations":170},[],[],[],{"summary":174,"deductions":175},"The \"datalayer\" plugin v1.0.2 exhibits an exceptionally strong security posture based on the provided static analysis and vulnerability history.  The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events significantly limits its attack surface to zero. Furthermore, the code signals are all positive, with no dangerous functions, all SQL queries using prepared statements, and all output being properly escaped.  The lack of file operations, external HTTP requests, nonce checks, capability checks, and bundled libraries further reinforces its secure design.\n\nThe taint analysis reveals zero flows, indicating that there are no identified pathways for untrusted data to reach sensitive functions without proper sanitization. The plugin's vulnerability history is also completely clean, with no known CVEs, past or present. This clean record, combined with the robust static analysis findings, suggests that the developers have prioritized security and followed best practices diligently.\n\nIn conclusion, \"datalayer\" v1.0.2 appears to be a highly secure plugin. Its minimal attack surface, secure coding practices, and lack of vulnerability history present a very low risk to WordPress installations. The only potential area for future consideration would be the absence of capability checks and nonce checks, which, while not an immediate issue given the current lack of exposed entry points, would be a crucial consideration if new entry points were to be added in future versions.",[],"2026-03-16T21:31:49.356Z",{"wat":178,"direct":187},{"assetPaths":179,"generatorPatterns":183,"scriptPaths":184,"versionParams":185},[180,181,182],"\u002Fwp-content\u002Fplugins\u002Fdatalayer\u002Fassets\u002Fjs\u002Fmodules\u002Fplugin-contact-form-7.min.js","\u002Fwp-content\u002Fplugins\u002Fdatalayer\u002Fassets\u002Fjs\u002Fmodules\u002Fplugin-wp-forms.min.js","\u002Fwp-content\u002Fplugins\u002Fdatalayer\u002Fassets\u002Fjs\u002Fmodules\u002Fsearch.min.js",[],[],[186],"ver=1.0.3",{"cssClasses":188,"htmlComments":189,"htmlAttributes":192,"restEndpoints":193,"jsGlobals":194,"shortcodeOutput":196},[],[190,191],"\u003C!-- dataLayer by Openmost -->","\u003C!-- End dataLayer -->",[],[],[195],"window.dataLayer",[]]