Title: WebDig.DEV Analytics
Author: Joao Costa
Published: <strong>5 Oktober 2026</strong>
Last modified: 25 Oktober 2026

---

Search plugins

![](https://ps.w.org/webdig-dev-analytics/assets/banner-772x250.png?rev=3728460)

![](https://ps.w.org/webdig-dev-analytics/assets/icon-256x256.png?rev=3728460)

# WebDig.DEV Analytics

 Oleh [Joao Costa](https://profiles.wordpress.org/webdigpt/)

[Download](https://downloads.wordpress.org/plugin/webdig-dev-analytics.1.2.0.zip)

 * [Details](https://ms.wordpress.org/plugins/webdig-dev-analytics/#description)
 * [Reviews](https://ms.wordpress.org/plugins/webdig-dev-analytics/#reviews)
 *  [Pemasangan](https://ms.wordpress.org/plugins/webdig-dev-analytics/#installation)
 * [Pembangunan](https://ms.wordpress.org/plugins/webdig-dev-analytics/#developers)

 [Support](https://wordpress.org/support/plugin/webdig-dev-analytics/)

## Description

Connect WordPress to your own HTTPS Umami server. A dedicated reports page and dashboard
widget display visits, visitor estimates, page views, average visit duration and
bounce rate. Choose 24 hours, 7 days, 30 days or a custom range of up to 366 dates.
Visitor, visit and page-view totals include comparisons with the preceding interval
of equal duration.

Browse pages, traffic sources, custom events, Core Web Vitals, WooCommerce revenue,
browsers, languages, operating systems, devices and visitor countries. A configurable
share URL opens the full Umami report in a new tab.

Features:
 * Automatic page views and configurable link/button/contact/download 
events, with the button or link label. * Optional scroll milestones and form submission
attempts; successful Contact Form 7 submissions. * Official Umami real-user performance
collection (LCP, INP, CLS, FCP and TTFB), shown in WordPress with good / needs improvement/
poor ratings and the slowest pages. * WooCommerce product, cart, checkout and purchase
events; HPOS compatibility. * Server-side purchase tracking: paid orders are sent
when WooCommerce marks them as paid, including delayed Multibanco and bank-transfer
payments, and are not affected by ad blockers. * Revenue, orders and average order
value in the dashboard. * Campaign attribution: utm_* parameters and ad click IDs
are kept; every other parameter, including order keys, is removed. * Staging protection:
only the configured domains and production environments send data. * Automatic consent
detection for the WP Consent API, Complianz, CookieYes and Cookiebot, plus a JavaScript
API for other consent managers. Optional Do Not Track / Global Privacy Control support.*
Custom tracker script name for servers that set TRACKER_SCRIPT_NAME, and an internal
API URL for Umami on the same server or a private network. * Server-side report 
requests, encrypted API keys, capability and nonce checks. * Shared WebDig.DEV menu
and installed-plugin hub, with independent operation. * Read-only report access 
by WordPress role or individual site user; settings stay administrator-only. * Saved-
connection diagnostics, tracking exclusions and optional consent-gated tracker loading.*
English source strings with bundled pt_PT, es_ES, fr_FR, de_DE and it_IT PHP and
JavaScript translations. * No analytics data or credentials are sent to WebDig. 
Data goes to the Umami server you configure.

Requirements: a self-hosted Umami server version 3.2 or later (the Performance and
Revenue tabs were verified with Umami 3.4); HTTPS connectivity from visitor browsers
to the public server URL. Dashboard access needs an API key or a valid Bearer token.
Use a separate Umami account that can only access the relevant website.

#### External service and privacy

The plugin loads the official tracker from your configured server (by default /script.
js). The tracker sends page views, event data, browser/device information and, when
enabled, performance measurements to that server. It uses the visitor IP for Umami
processing and geographic estimates. With server-side purchase tracking, WordPress
sends paid-order events to the same server with the customer IP address and browser
user agent stored by WooCommerce, so the purchase joins the visitor’s Umami session.
Refer to your Umami server’s privacy policy and configuration. Umami documentation:
https://docs.umami.is/docs/ . No central WebDig analytics service is required.

Automatic tracking excludes form values, customer names, customer emails and addresses.
Email and phone link events do not include the link text. Tracked URLs keep only
the query parameters listed in the settings (campaign parameters by default); fragments
and order keys are always removed. External referrers are reduced to their origin.
User-supplied custom event data remains the site owner’s responsibility. Add data-
webdig-ignore to any element whose clicks should not be recorded.

Purchase deduplication stores an order marker in the visitor’s localStorage. By 
default the plugin does not wait for consent. Enable “Wait for consent before loading
the tracker” to prevent tracker loading and analytics requests until consent is 
granted. The plugin does not include a consent banner. Its analytics settings do
not determine your website’s legal obligations.

#### Purchase tracking scope

Browser mode (default): purchases are tracked when the order is paid and the customer
returns to a valid order confirmation URL. The order key is verified and is not 
sent to Umami. Reloads are deduplicated in the same browser, but cross-device or
cleared-storage duplicates remain possible.

Server mode (recommended): at checkout the plugin records whether the order may 
be tracked, applying the consent, privacy-signal and role-exclusion settings. When
WooCommerce marks the order as paid, the purchase is sent once from the server through
Action Scheduler, with up to three attempts; a final failure is noted on the order.
Orders created in the admin or through the REST API are not sent. When consent is
required, the tracker mirrors consent in a first-party wda_consent cookie, or the
WP Consent API is used, so the server can respect it.

In both modes, refunds do not amend the original Umami event. Analytics revenue 
is not an accounting record.

Legacy AJAX cart events and WooCommerce Blocks events are supported. Non-AJAX product
form submissions are recorded as add_to_cart_attempt, not confirmed cart additions.
Custom cart extensions can require their own integration.

Portuguese (Portugal) documentation is included in readme-pt_PT.txt. / A documentação
em português de Portugal está incluída em readme-pt_PT.txt.

### Frequently requested configuration

#### Consent manager integration

Enable “Wait for consent before loading the tracker”. In automatic mode the plugin
follows the “statistics” category of the WP Consent API, Complianz and Cookiebot,
and the “analytics” category of CookieYes. Any other consent manager can call window.
WebDigAnalytics.setConsent(true) after analytics consent and window.WebDigAnalytics.
setConsent(false) when it is withdrawn, after the plugin script has initialized.
Before approval no Umami script is inserted, no events are queued and purchase localStorage
markers are not accessed. Withdrawal stops subsequent sends; it cannot recall requests
already sent. Granting consent again does not create an extra page view. Test your
consent manager on the real site.

#### Tracking exclusions

Select roles to exclude or enter one path per line. /private/* excludes paths with
that prefix; /account/ excludes that exact path. Rules use the request path, including
any WordPress subdirectory. Clear page/CDN caches after changing tracking, exclusions
or consent settings. Existing cached HTML can otherwise retain previous settings;
role exclusions require a cache that separates logged-in traffic correctly.

#### Umami share URLs

Share links are hidden from non-administrators unless you explicitly enable them.
A public share URL may permit access outside WordPress; removing report permissions
does not revoke a URL someone already knows. Revoke or rotate it in Umami when needed.

#### Diagnostics and custom periods

Save settings before using “Test saved connection”. Authentication, missing endpoints,
network failures and invalid JSON are reported separately, and the test warns when
this environment does not send data. Custom dates use the WordPress timezone and
include the final date, capped at the current time. Daily buckets are used for longer/
custom periods; boundary buckets can be partial. A failed comparison does not prevent
current-period data from displaying. Reports are cached for two minutes; no reports
are stored permanently in WordPress.

### Development

Source tooling (not included in the distributed ZIP): composer install, then composer
lint (WordPress Coding Standards) and composer test (PHPUnit). npm test runs the
tracker tests in Chromium with Playwright; npm run format applies Prettier. python3
bin/i18n.py regenerates the POT, PO, MO and JSON catalogs. bash bin/build.sh creates
the distribution ZIP.

## Installation

 1.  Upload the ZIP in Plugins > Add New > Upload Plugin and activate it.
 2.  Create a website in your Umami instance and copy its Website ID.
 3.  Open WebDig.DEV > Analytics > Settings in the WordPress admin menu.
 4.  Enter your server base URL, Website ID and report API key. Enable tracking.
 5.  Check the tracked domains (pre-filled with this site’s domain) and select the 
     tracking features you need. For WooCommerce, choose server-side purchase tracking.
 6.  Optionally enter the Umami share URL.
 7.  Remove other Umami snippets/plugins and clear site/CDN caches.
 8.  Open WebDig.DEV > Analytics for reports, or Dashboard > Home for the statistics
     widget. If hidden, enable it in Screen Options.
 9.  Test tracking in a private browser window. Administrators are excluded from tracking
     by default.

Plugin activation, tracking and widget visibility are separate. Activate the plugin
on the Plugins page, then enable tracking in its settings to start collecting visits.
Showing or hiding the dashboard widget does not start or stop tracking. Statistics
are displayed in the WordPress administration area and Umami, not on public site
pages. The API key is required for dashboard reports, but not for collecting visits.

Settings remain when deactivating or updating the plugin. Uninstalling deletes this
site’s plugin settings, scheduled purchase sends and local report caches. It does
not delete data on your Umami server. Multisite installs must be configured separately
per site; network-wide provisioning is not included.

## FAQ

### Visitors versus visits?

Visitors are anonymous unique visitor estimates. Visits count browsing sessions.
One visitor can generate multiple visits. Neither is an exact count of people.

### Where are Core Web Vitals displayed?

Enable the performance option, then open the Performance tab in WebDig.DEV > Analytics.
It shows the 75th percentile of each metric with Google’s good / needs improvement/
poor thresholds and the slowest pages by LCP. New data is collected from real visitor
browsers; no historical measurements are generated.

### Why do staging copies not send data?

Only hostnames in “Tracked domains” send data, and by default only production environments(
WP_ENVIRONMENT_TYPE). A cloned database keeps the production domain list, so the
clone stays silent. Add extra domains if the same site is served on several hostnames.

### Umami runs on the same server or in Docker

The plugin refuses private and loopback addresses for the public server URL. Set“
Internal API URL” (for example http://127.0.0.1:3000 or http://umami:3000) for requests
from WordPress; visitors keep using the public HTTPS URL. “Test saved connection”
shows the technical error when a request fails.

### Ad blockers block the tracker

Configure TRACKER_SCRIPT_NAME (and optionally COLLECT_API_ENDPOINT) on your Umami
server, then enter the same script name in the settings. Server-side purchase tracking
is never affected by ad blockers.

### Can I change a saved API key?

Delete the key first, then save a new one. Keys defined as WEBDIG_ANALYTICS_API_TOKEN
in wp-config.php must be changed there. Changing WordPress salts invalidates keys
stored encrypted in the database.

### How do languages work?

The admin interface follows the user’s WordPress language. English is the source
language. Portuguese (Portugal), Spanish (Spain), French, German and Italian are
included. Regional locales do not automatically fall back to a different regional
translation. The languages directory contains a POT template, PO/MO translations
and WordPress JavaScript JSON catalogs. Third-party data, custom event names and
browser names are not translated by gettext.

### Can I hide the dashboard panel?

Yes. Use Screen Options on the WordPress dashboard. Administrators always have access.
Select report roles or additional site users in Analytics settings. These users 
can read reports but cannot change settings or test the saved connection. Customers
and subscribers are not listed individually; grant access by role. Access is checked
for pages and AJAX requests. Users can have the selected role on this site or be
selected individually; removing a user from the site revokes access.

### Do I need a separate pixel?

No. The plugin loads the configured Umami tracker. The reporting API key stays on
the WordPress server.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“WebDig.DEV Analytics” adalah perisian sumber terbuka. Orang-orang berikut telah
menyumbang kepada pemalam ini.

Penyumbang

 *   [ Joao Costa ](https://profiles.wordpress.org/webdigpt/)

[Translate “WebDig.DEV Analytics” into your language.](https://translate.wordpress.org/projects/wp-plugins/webdig-dev-analytics)

### Berminat dalam pembangunan?

[Layari kod](https://plugins.trac.wordpress.org/browser/webdig-dev-analytics/), 
periksa [repositori SVN](https://plugins.svn.wordpress.org/webdig-dev-analytics/),
atau langgani [log pembangunan](https://plugins.trac.wordpress.org/log/webdig-dev-analytics/)
dengan [RSS](https://plugins.trac.wordpress.org/log/webdig-dev-analytics/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.0

 * Added server-side WooCommerce purchase tracking through Action Scheduler, covering
   delayed payments and ad-blocked browsers, with consent captured at checkout.
 * Added Performance (Core Web Vitals), Revenue, Events and Sources tabs to the 
   reports.
 * Added staging protection: tracked-domain list (pre-filled on upgrade) and a production-
   only option.
 * Campaign parameters (utm_*) and ad click IDs are now kept in tracked URLs through
   a configurable allow-list. Order keys are always removed.
 * Added automatic consent detection for the WP Consent API, Complianz, CookieYes
   and Cookiebot, and optional Do Not Track / Global Privacy Control support. The
   plugin registers with the WP Consent API.
 * Added a tracker script name setting (TRACKER_SCRIPT_NAME), an internal API URL
   for private networks, a preconnect hint and technical details in the connection
   test.
 * Click events include up to 50 characters of the element label (not for email 
   and phone links). Internal link clicks are now optional; existing sites keep 
   their previous behavior.
 * Chart tooltips on hover and keyboard focus; dates and times are formatted in 
   the user’s locale.
 * Fixed: the additional-users list no longer loads every customer on large shops.
 * Fixed: report viewers no longer gain access to another WebDig.DEV plugin’s hub
   page; they get their own Analytics menu entry when needed.
 * Fixed: granting consent again after a withdrawal no longer records a second page
   view.
 * Fixed: a malformed link no longer breaks click tracking.
 * Fixed: timezones written as UTC offsets are now encoded correctly in report requests.
 * Fixed: breakdown tables now label Umami’s visitor counts as visitors.
 * Reports use the comparison that Umami 3 returns with its statistics, saving one
   API request per refresh.
 * Code split into classes following the WordPress Coding Standards, with PHPUnit
   and browser tests. Duplicate hash-named JSON translation files removed.

#### 1.1.1

 * Validated on WordPress 7.1 and updated the Tested up to header.
 * Moved settings into a tab inside Analytics and removed the separate sidebar settings
   entry. Existing direct settings links remain supported.

#### 1.1.0

 * Added the shared WebDig.DEV hub and menu, consistent headings and settings action
   link.
 * Added read-only report access by role and individual site user while retaining
   legacy shop-manager access.
 * Added a reports page, 7/30-day and custom periods, and previous-period comparisons
   for visitors, visits and page views.
 * Added saved-connection diagnostics with clearer authentication and endpoint errors.
 * Added optional consent-gated tracking and role/path exclusions; existing tracking
   behavior is retained by default.
 * Restricted public share links to administrators unless explicitly enabled for
   report viewers.
 * Added complete PHP/JavaScript catalogs for pt_PT, es_ES, fr_FR, de_DE and it_IT.
 * Preserved settings, encrypted keys and the first-save API key fix from 1.0.1.

#### 1.0.1

 * Fixed API key storage on the first settings save by preserving the sanitized 
   result during WordPress option creation.

#### 1.0.0

 * Updated plugin name to WebDig.DEV Analytics, author to WebDig and author website
   to https://webdig.dev.
 * Updated bundled translations and added Portuguese documentation.
 * Stable release with English source strings and complete Portuguese (Portugal)
   UI translations.
 * Visitor countries replace screen resolutions; country codes are displayed as 
   localized names.
 * Clear visitor/visit definitions and generic server setup instructions.
 * Dashboard assets load at the WordPress admin enqueue stage.
 * Input validation hardening and documented privacy/purchase tracking scope.

## Meta

 *  Version **1.2.0**
 *  Last updated **19 jam lalu**
 *  Active installations **10+**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/webdig-dev-analytics/)
 * Tags
 * [analytics](https://ms.wordpress.org/plugins/tags/analytics/)[core web vitals](https://ms.wordpress.org/plugins/tags/core-web-vitals/)
   [dashboard](https://ms.wordpress.org/plugins/tags/dashboard/)[umami](https://ms.wordpress.org/plugins/tags/umami/)
   [woocommerce](https://ms.wordpress.org/plugins/tags/woocommerce/)
 *  [Paparan Lanjutan](https://ms.wordpress.org/plugins/webdig-dev-analytics/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/webdig-dev-analytics/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/webdig-dev-analytics/reviews/)

## Penyumbang

 *   [ Joao Costa ](https://profiles.wordpress.org/webdigpt/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/webdig-dev-analytics/)