
Zero PII. No cookies. No device storage.
Harvv Analytics loads the canonical Harvv pixel (~24.0 KB gzipped) from harvv.com, which captures how visitors interact with your pages — dead clicks, rage clicks, scroll depth, hover intent, JavaScript errors, engagement time — and syncs WooCommerce orders to your Harvv dashboard. It never reads cookies, never transmits names, emails, phone numbers, or addresses, and never stores personal data in your WordPress database.
The plugin is designed to avoid the things consent rules attach to: it sets no cookies, stores nothing on the visitor’s device, and transmits no names, emails, or other personal details. Many site owners find this removes the need for an analytics consent banner, but consent law varies by country and by what else your site runs, so make your own assessment for your site. Your visitors see no pop-ups from us, and your checkout flows are not slowed.
What this plugin does
- Enqueues a vanilla-JS tracker (no jQuery, no external scripts) on your frontend.
- Captures behavioral signals: scroll depth, click targets, dead/rage clicks, hover intent, page errors, engagement time.
- Syncs WooCommerce orders on
woocommerce_payment_complete(never blocks checkout). - Passes customer identity as a non-reversible hash derived from the site’s own salts — the raw email never leaves WordPress.
- Works with WooCommerce HPOS (Custom Order Tables) out of the box.
- Multisite-aware: one network API key, per-subsite Site IDs, per-subsite admin overrides.
What this plugin does NOT do
- Does not set or read cookies.
- Does not transmit email addresses, names, phone numbers, postal addresses, or IP addresses.
- Loads one script, the canonical Harvv pixel, from
https://harvv.com/px/<site_key>/pixel.js(see External Services below). Self-host it instead withdefine( 'HARVV_PIXEL_URL', '...' );. - Does not create custom database tables on your WordPress site.
- Does not record session replays or keystrokes.
Why you might want this
If you run a WooCommerce store and want to see the dead clicks, rage clicks, and broken checkout paths your visitors hit — without making them click through a GDPR banner — Harvv is designed for you. The behavioral signals are sent to your Harvv dashboard where they become a prioritized list of UX fixes with plain-English explanations.
External Services
This plugin relies on the Harvv analytics service (operated by Olivas Venture Capital LLC d/b/a Harvv) to store and analyze behavioral events. Data is transmitted to the following endpoint:
- Endpoint:
https://harvv.com/v1/track(overridable via theHARVV_API_BASEconstant inwp-config.phpfor staging or self-hosted receivers) - When: Events are sent continuously while a visitor is on your site (batched every 5 seconds or on tab close, via
navigator.sendBeaconwhen available). WooCommerce order events are sent once, onwoocommerce_payment_complete. - What is sent (behavioral events): Session ID (random, in-memory, regenerated per browser tab — never a stable cookie), visitor ID (sessionStorage-scoped, cleared when the tab closes), event type, page path (no query string with sensitive params), referrer, viewport dimensions, CSS selectors of clicked/hovered elements (tag + id + first class name only, no text content), JavaScript error messages, engagement timestamps.
- What is sent (WooCommerce events): Order ID, order status, order total, line-item product IDs and quantities, coupon codes, payment method name, shipping method name, non-reversible customer hash (derived via
wp_hash()using your WordPress salts). - What is NOT sent: Names, email addresses, phone numbers, postal addresses, IP addresses, raw user IDs, cookies, session replays, keystroke data, form values.
- Registration endpoint:
https://harvv.com/v1/sites/register— called once per site (or subsite on Multisite) to obtain a Site ID. Transmits only the site URL, site name, WordPress version, PHP version, and plugin version. - Pixel script (canonical, 1.0.3+):
https://harvv.com/px/<your_site_key>/pixel.js— enqueued on the frontend viawp_enqueue_script. This is the same canonical pixel served to every Harvv-installed site regardless of install channel (WP plugin, Laravel package, direct script-tag, Shopify integration). Loaded once per page, ~24.0 KB gzipped. The pixel itself transmits only the behavioral signals described above. Sites that need an offline-capable / self-hosted pixel can override the URL viadefine( 'HARVV_PIXEL_URL', '...' );inwp-config.php, or via theharvv_pixel_urlfilter. - Connect flow:
https://harvv.com/connect/wordpress— opened in a new browser tab when an admin clicks “Connect to Harvv” in the plugin settings. Harvv’s hosted signup page handles authentication; it then POSTs the API key back to your site’s own REST endpoint (/wp-json/harvv/v1/connect) with a nonce you generated locally. - Stack-inventory endpoint:
https://harvv.com/v1/inventory— called once at site registration and refreshed weekly by WP-Cron. Sends a site-context snapshot: installed plugin slugs + versions, the active theme slug + version, WordPress version, PHP version, MySQL/MariaDB version, server software string (e.g. “nginx/1.24.0”), site language code, timezone, permalink-structure boolean, WP_DEBUG boolean, memory limit, max execution time, object cache backend, WP-Cron disabled boolean, multisite blog count, total user count (number only — no usernames, no emails, no per-role breakdown), aggregate post and page counts, custom post type slugs + publish counts, and (when WooCommerce is active) WooCommerce version, store currency, base country, and product count. No visitor data, no usernames, no email addresses, no post content, no comments, no IP addresses, no PII of any kind. Powers plugin-attribution and platform-specific UX diagnosis on the Harvv dashboard. Admins can preview the exact payload at Settings Harvv Analytics Preview the exact diagnostic snapshot we would send. Disabled by clearing the Settings Harvv Analytics Preferences Share stack info checkbox, by addingdefine( 'HARVV_SHARE_INVENTORY', false );towp-config.php, or by returningfalsefrom theharvv_share_inventoryfilter. - Harvv terms of service: https://harvv.com/terms
- Harvv privacy policy: https://harvv.com/privacy
By activating this plugin and supplying an API key, you consent to the transmission of the data described above to Harvv. You can disconnect at any time from the plugin’s settings page; uninstalling removes all plugin options from your database.
Screenshots

Site overview. Sessions, visitors, time on page, scroll depth, dead clicks and rage clicks for the last 7 days, with Core Web Vitals measured from your real visitors.

Issues board. Every detected problem as a card, from dead clicks to broken files, moving from open through quoted, fixing and fixed.

One issue, explained. A dead click in plain English with the visitors affected, the exact page, a client-ready summary, and a tab for how to fix it.

Core Web Vitals. LCP, INP, CLS, FCP, TBT and TTFB at the 75th percentile from your actual visitors, graded against the published threshold for each.

Sessions. Every visit with its entry page, duration, stuck clicks and frustrated clicks, filterable by page or visitor.