[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDxLgB_hzhXz5UtkPU_MUqFx9kU4l2vCwU80tro9Hl6k":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"openmost","Openmost","https:\u002F\u002Fprofiles.wordpress.org\u002Fopenmost\u002F",2,80,100,30,94,"2026-04-04T17:24:04.151Z",[14,36],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":20,"downloaded":21,"rating":22,"num_ratings":22,"last_updated":23,"tested_up_to":24,"requires_at_least":25,"requires_php":26,"tags":27,"homepage":32,"download_link":33,"security_score":9,"vuln_count":22,"unpatched_count":22,"last_vuln_date":34,"fetched_at":35},"datalayer","DataLayer for GTM and Matomo","1.0.2","\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",[28,15,29,30,31],"analytics","google-tag-manager","gtm","matomo","https:\u002F\u002Fgithub.com\u002Fopenmost\u002Fdatalayer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdatalayer.1.0.3.zip",null,"2026-03-15T15:16:48.613Z",{"slug":37,"name":38,"version":39,"author":5,"author_profile":6,"description":40,"short_description":41,"active_installs":42,"downloaded":43,"rating":22,"num_ratings":22,"last_updated":44,"tested_up_to":45,"requires_at_least":25,"requires_php":46,"tags":47,"homepage":51,"download_link":52,"security_score":9,"vuln_count":22,"unpatched_count":22,"last_vuln_date":34,"fetched_at":35},"openmost-site-kit","Matomo Site Kit","2.2.0","\u003Cp>\u003Cstrong>Matomo Site Kit\u003C\u002Fstrong> is the ultimate WordPress plugin for integrating \u003Ca href=\"https:\u002F\u002Fmatomo.org\u002F\" rel=\"nofollow ugc\">Matomo Analytics\u003C\u002Fa> – the leading open-source, privacy-focused alternative to Google Analytics.\u003C\u002Fp>\n\u003Cp>Whether you use Matomo Cloud or self-hosted Matomo On-Premise, this plugin provides everything you need for comprehensive website analytics while respecting your visitors’ privacy.\u003C\u002Fp>\n\u003Ch4>Why Choose Matomo Site Kit?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Privacy-First Analytics\u003C\u002Fstrong> – Full GDPR, CCPA, and PECR compliance out of the box\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Data Sampling\u003C\u002Fstrong> – 100% accurate data, unlike Google Analytics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>You Own Your Data\u003C\u002Fstrong> – No third-party data sharing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ad-Blocker Resistant\u003C\u002Fstrong> – Server-side tracking bypasses most ad blockers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce Ready\u003C\u002Fstrong> – Complete ecommerce tracking for your online store\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Three Powerful Tracking Methods\u003C\u002Fh4>\n\u003Cp>Choose the tracking method that best fits your needs:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Classic JavaScript Tracking\u003C\u002Fstrong> – Traditional Matomo tracking with full feature support using \u003Ccode>_paq.push()\u003C\u002Fcode>. Best for most websites.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Matomo Tag Manager (MTM)\u003C\u002Fstrong> – Advanced tag management with dataLayer integration. Perfect for marketing teams who need flexible trigger and variable management.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Server-Side PHP Tracking\u003C\u002Fstrong> – Privacy-friendly tracking that works even when JavaScript is disabled or blocked. Ideal for GDPR-focused websites and bypassing ad blockers.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Complete Feature List\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Analytics Dashboard\u003C\u002Fstrong>\u003Cbr \u002F>\n* Real-time analytics overview in WordPress admin\u003Cbr \u002F>\n* Visits, page views, bounce rate, and session duration\u003Cbr \u002F>\n* WordPress Dashboard widget for quick stats\u003Cbr \u002F>\n* Per-post and per-page analytics metabox\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WooCommerce Ecommerce Tracking\u003C\u002Fstrong>\u003Cbr \u002F>\n* Product view tracking with SKU, name, price, and categories\u003Cbr \u002F>\n* Category page view tracking\u003Cbr \u002F>\n* Add to cart and remove from cart events\u003Cbr \u002F>\n* Cart update tracking\u003Cbr \u002F>\n* Complete order tracking with revenue, tax, and shipping\u003Cbr \u002F>\n* Works with all three tracking methods\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Site Search Tracking\u003C\u002Fstrong>\u003Cbr \u002F>\n* Automatic WordPress search tracking\u003Cbr \u002F>\n* Search keyword capture\u003Cbr \u002F>\n* Category filter detection\u003Cbr \u002F>\n* Search result count\u003Cbr \u002F>\n* Zero configuration required\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Automatic Annotations\u003C\u002Fstrong>\u003Cbr \u002F>\n* Create Matomo annotations when content is published\u003Cbr \u002F>\n* Select which post types trigger annotations\u003Cbr \u002F>\n* Customizable format with variables: {post_type}, {title}, {url}, {author}\u003Cbr \u002F>\n* Live preview in settings\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Privacy & GDPR Compliance\u003C\u002Fstrong>\u003Cbr \u002F>\n* Consent mode options (requireConsent, requireCookieConsent)\u003Cbr \u002F>\n* Privacy opt-out shortcode [matomo_opt_out]\u003Cbr \u002F>\n* Server-side tracking for cookieless analytics\u003Cbr \u002F>\n* Exclude tracking by user role\u003Cbr \u002F>\n* Compatible with cookie consent plugins\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Advanced Features\u003C\u002Fstrong>\u003Cbr \u002F>\n* User ID tracking with SHA256 hashed email\u003Cbr \u002F>\n* Heartbeat Timer for accurate time-on-page measurement\u003Cbr \u002F>\n* DataLayer integration for Tag Manager\u003Cbr \u002F>\n* AI Bot Tracking – Track visits from AI assistants (ChatGPT, Perplexity, Claude, etc.) separately in Matomo (requires Matomo 5.7+)\u003Cbr \u002F>\n* Bot detection and filtering\u003Cbr \u002F>\n* Noscript fallback for JavaScript-disabled browsers\u003Cbr \u002F>\n* DNS prefetch and script preloading for performance\u003Cbr \u002F>\n* Matomo Cloud and On-Premise support\u003C\u002Fp>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Bloggers\u003C\u002Fstrong> who want simple, privacy-respecting analytics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce stores\u003C\u002Fstrong> needing detailed ecommerce insights\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agencies\u003C\u002Fstrong> managing multiple client websites\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enterprise\u003C\u002Fstrong> organizations with strict data privacy requirements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR-conscious\u003C\u002Fstrong> website owners in the EU\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Marketing teams\u003C\u002Fstrong> using Matomo Tag Manager\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Matomo Cloud vs On-Premise\u003C\u002Fh4>\n\u003Cp>This plugin works seamlessly with both:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Matomo Cloud\u003C\u002Fstrong> – Hosted solution at matomo.cloud, no server management needed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Matomo On-Premise\u003C\u002Fstrong> – Self-hosted on your own server for complete data ownership\u003C\u002Fli>\n\u003C\u002Ful>\n","The most complete Matomo Analytics plugin for WordPress. Server-side tracking, WooCommerce ecommerce, site search, GDPR compliance, and Tag Manager su &hellip;",10,2732,"2026-03-10T15:24:00.000Z","6.9.4","8.2",[28,48,49,31,50],"connect","ecommerce","tracking","https:\u002F\u002Fopenmost.io\u002Fopenmost-site-kit","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fopenmost-site-kit.2.2.0.zip"]