{"id":348601,"date":"2026-08-27T13:47:19","date_gmt":"2026-08-27T13:47:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/grail-analytics\/"},"modified":"2026-08-27T14:31:39","modified_gmt":"2026-08-27T14:31:39","slug":"omea-analytics","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/omea-analytics\/","author":23445303,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.0","stable_tag":"0.4.0","tested":"7.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Omea Analytics","header_author":"Cultmetrics","header_description":"Minimal analytics for fast WordPress sites.","assets_banners_color":"282824","last_updated":"2026-08-27 14:31:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.0":{"tag":"0.4.0","author":"cultmetrics","date":"2026-08-27 14:31:39","revision":3669069}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3668971,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3668971,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3668971,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3669083,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3669083,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3669069,"resolution":"1","location":"assets","locale":"","width":2880,"height":2080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3669069,"resolution":"2","location":"assets","locale":"","width":2880,"height":2200},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3669069,"resolution":"3","location":"assets","locale":"","width":2880,"height":1800}},"screenshots":{"1":"Privacy-first analytics dashboard with traffic, engagement, conversion, and channel reporting.","2":"Per-page report with channel breakdown, engagement time, scroll depth, bounce rate, and conversions.","3":"Event and conversion configuration for client-side and server-side measurement."}},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[277887],"plugin_business_model":[],"class_list":["post-348601","plugin","type-plugin","status-publish","hentry","plugin_contributors-cultmetrics","plugin_committers-cultmetrics"],"banners":{"banner":"https:\/\/ps.w.org\/omea-analytics\/assets\/banner-772x250.png?rev=3669083","banner_2x":"https:\/\/ps.w.org\/omea-analytics\/assets\/banner-1544x500.png?rev=3669083","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/omea-analytics\/assets\/icon.svg?rev=3668971","icon":"https:\/\/ps.w.org\/omea-analytics\/assets\/icon.svg?rev=3668971","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/omea-analytics\/assets\/screenshot-1.png?rev=3669069","caption":"Privacy-first analytics dashboard with traffic, engagement, conversion, and channel reporting."},{"src":"https:\/\/ps.w.org\/omea-analytics\/assets\/screenshot-2.png?rev=3669069","caption":"Per-page report with channel breakdown, engagement time, scroll depth, bounce rate, and conversions."},{"src":"https:\/\/ps.w.org\/omea-analytics\/assets\/screenshot-3.png?rev=3669069","caption":"Event and conversion configuration for client-side and server-side measurement."}],"raw_content":"<!--section=description-->\n<p>Minimal analytics for fast WordPress sites. Read the signal. Leave no trace. It tracks pageviews, engagement, referrers, UTM campaigns, and conversions without storing IP addresses or persistent cross-session identifiers. The admin dashboard is powered by REST endpoints and cached aggregates for fast reporting.<\/p>\n\n<p>Sessions can be attributed server-side without persistent browser storage for cookieless operation. When the cookie-based session mode is active, Omea Analytics uses short-lived first-party cookies to improve session continuity; those cookies expire after inactivity and do not identify visitors across sessions.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Privacy-first tracking with cookieless-capable operation.<\/li>\n<li>Server-side session attribution plus optional short-lived first-party session cookies.<\/li>\n<li>Pageviews, engagement time, scroll depth, referrers, and UTM campaigns.<\/li>\n<li>Daily aggregation with cron for fast dashboard queries.<\/li>\n<li>Conversion and event tracking (client-side + optional server-side hooks).<\/li>\n<li>Device classification at coarse, privacy-safe levels (type, OS\/browser family, screen-size bucket).<\/li>\n<li>Optional country\/city geolocation with multiple providers (see External services).<\/li>\n<li>REST API endpoints for dashboard, page detail, and filter metadata.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>Cookieless operation is available. Cookie-based operation uses short-lived first-party session cookies only.<\/li>\n<li>IP addresses are used only for optional geolocation and are never stored.<\/li>\n<li>User agents are classified into coarse categories only and are not stored in full.<\/li>\n<li>Channel grouping follows GA4-style categories using referrers and UTM parameters.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>By default, Omea Analytics makes no external requests: session attribution is fully server-side and country detection falls back to your host\/CDN headers.<\/p>\n\n<p>Geolocation beyond header-based country detection is optional and only active when you explicitly select a local database provider on the settings screen:<\/p>\n\n<ul>\n<li><strong>DB-IP City Lite<\/strong> \u2014 when enabled, the site administrator can download the free monthly DB-IP City Lite database from https:\/\/download.db-ip.com\/free\/. The download is administrator-initiated. Lookups then run locally against the downloaded database. See https:\/\/db-ip.com\/ for their terms.<\/li>\n<li><strong>MaxMind GeoLite2<\/strong> \u2014 when enabled, the site administrator can download the GeoLite2 database from MaxMind (https:\/\/www.maxmind.com\/) using their own MaxMind account credentials. The download is administrator-initiated and lookups run locally. The database is not bundled or redistributed by this plugin. See https:\/\/www.maxmind.com\/en\/geolite2\/eula for their terms.<\/li>\n<\/ul>\n\n<p>None of these providers are contacted unless you opt in on the settings screen.<\/p>\n\n<h3>Channel grouping<\/h3>\n\n<p>Omea Analytics assigns each session a channel_group aligned with GA4 defaults (see https:\/\/support.google.com\/analytics\/answer\/9756891):\n- Source category detection uses referrer\/source\/medium and known domains (search, social, video, shopping, email, referral, direct, paid-other). Medium \"social\/paidsocial\" forces social; medium empty + no referrer \u2192 direct.\n- Channel mapping:\n  - Search: medium\/utm_medium contains paid|cpc|ppc|ads \u2192 paid_search, else organic_search.\n  - Social: medium\/utm_medium contains paid\/cpc\/ppc\/ads\/paidsocial \u2192 paid_social, else organic_social.\n  - Video: paid \u2192 paid_video, else organic_video.\n  - Shopping: organic_shopping.\n  - Email \u2192 email; Referral \u2192 referral; Direct \u2192 direct; Paid other \u2192 paid_other; fallback \u2192 other.\n- Known sources include major engines (google, bing, yahoo, duckduckgo, baidu, yandex, etc.), social (facebook, instagram, twitter\/x, linkedin, pinterest, tiktok, reddit, etc.), video (youtube, vimeo, twitch), and marketplaces (amazon, ebay, etsy, etc.).\n- Session channel upgrades: a session initially marked direct can upgrade to a richer channel when later events include UTMs\/referrers (e.g., facebook + utm_medium=paidsocial \u2192 paid_social).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin through the Plugins screen, or copy the plugin folder into <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Omea Analytics<\/strong> from the WordPress Plugins screen.<\/li>\n<li>Visit the Omea Analytics settings screen to configure tracking and (optionally) geolocation.<\/li>\n<\/ol>\n\n<p>The plugin ships with all compiled assets and required libraries; no build tools are needed to run it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20set%20cookies%3F\"><h3>Does this plugin set cookies?<\/h3><\/dt>\n<dd><p>It can run without analytics cookies, and it can also use short-lived first-party cookies for session continuity when cookie-based operation is active. These cookies expire after inactivity and are not persistent cross-session identifiers.<\/p><\/dd>\n<dt id=\"does%20it%20store%20ip%20addresses%20or%20full%20user%20agents%3F\"><h3>Does it store IP addresses or full user agents?<\/h3><\/dt>\n<dd><p>No. IP addresses are used only for optional geolocation and are not stored. User agents are classified into coarse categories only.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20tracking%20for%20admins%3F\"><h3>Can I disable tracking for admins?<\/h3><\/dt>\n<dd><p>Yes. The settings screen includes an option to skip tracking for administrators.<\/p><\/dd>\n<dt id=\"how%20do%20conversions%20work%3F\"><h3>How do conversions work?<\/h3><\/dt>\n<dd><p>Conversions can be recorded from client-side events or server-side hooks. You can configure per-event rules in the settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Clarified privacy documentation for cookieless-capable and short-lived cookie-based operation.<\/li>\n<li>Session attribution moved server-side; removed persistent client-side browser storage.<\/li>\n<li>Admin dashboard assets now load only on Omea Analytics screens.<\/li>\n<li>Chart.js and the geo chart library are served locally only (no CDN fallback).<\/li>\n<li>Removed verbose debug logging from the frontend tracker and admin bundles.<\/li>\n<li>Documented optional external geolocation services and refreshed privacy details.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Initial public release candidate with REST-driven dashboard, aggregation, and settings UI.<\/li>\n<\/ul>","raw_excerpt":"Privacy-first analytics plugin with lightweight event logging, REST ingestion, and cookieless-capable operation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348601","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=348601"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cultmetrics"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348601"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348601"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348601"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348601"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348601"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}