What normal GA4 tracking sees, and what arrives instead: blocked visits come back in full, and visitors who refused consent come back counted but unidentifiable.
A large share of your visitors never show up in Google Analytics. Ad blockers stop the tracking request before it leaves the browser. Visitors who refuse your cookie banner are dropped by most setups on purpose. Commonly that is 30-50% of your traffic — and those people still browse, still add to cart, and still buy.
So your reports are wrong in a way you cannot see. Revenue in Google Analytics is lower than revenue in your shop. Channels that actually work look mediocre. Every decision you make from that data is made from a partial picture.
Easy Server Side Tracking closes that gap in two ways.
The tracking request no longer goes to google-analytics.com, which is the address blockers are built to recognise. It goes to a tracking endpoint that is not on any blocklist, and Google Analytics is fed from there. Nothing on the visitor’s side has to change.
This is the part most setups get wrong. When someone rejects your cookie banner, the usual answer is to send nothing at all — so the visit, and the order, simply disappear from your numbers.
Here the event still arrives in Google Analytics, with everything that identifies the person removed first: no client id, no advertising click id, no campaign, location or browser detail. You keep the visit and the sale in your totals. The visitor stays anonymous. That is exactly what Google Consent Mode is designed for, and it is switched on for you.
The short version: an order is measured whether the visitor blocks trackers, refuses cookies, or closes the tab before your thank-you page loads.
Product views, add to cart, checkout steps, shipping and payment, and the purchase itself are tracked out of the box. The sale is sent from your server the moment the order is paid, so it does not depend on the customer returning to your thank-you page — a customer who closes the tab at the payment provider is measured just the same.
Setup is a short guided flow: agree to what is shared and create your free account, paste those two credentials, and tell us which cookie banner you use. Complianz, Cookiebot, CookieYes and Iubenda are recognised automatically; anything else can be pointed at your accept and reject buttons. Most sites are done in a few minutes.
The free tier covers 10,000 events per month, does not expire, and is not a trial. No feature is locked or degraded on it. Paid plans only raise the monthly event allowance and how long the dashboard keeps your events.
We are a proxy, not a data broker. Your events are forwarded to your own Google Analytics property, and a copy is kept so you can see your own event stream. Nothing is sold, shared with third parties, used to build profiles, or combined across customers.
Raw IP addresses are never stored. The IP is used for country lookup and rate limiting, then hashed with a salt that rotates daily and truncated. It cannot be reversed, and the same visitor produces a different hash tomorrow.
Nothing is sent anywhere until you connect. Installing and activating contacts no external service at all. You see exactly what will be shared, tick a box, and press a button.
More information, documentation and pricing: https://www.easyserversidetracking.com/
This plugin connects to the following external services. Each is necessary for the functionality described and is only contacted as documented below.
https://www.google-analytics.com/g/collect or https://www.google-analytics.com/mp/collect.gtag.js library to the visitor’s browser for client-side GA4 measurement.gtag.js telemetry while the script is loaded (page views, automatic events). Its measurement requests are routed through your own site rather than straight to Google.gtag.js provides the GA4 session and engagement signals the plugin cannot reproduce on its own.This plugin does not collect or store personal data on the WordPress site itself. All event data is sent to the external services listed above and stored there subject to those services’ privacy policies.
The plugin stores the following non-personal data in WordPress options for its own operation:
esst_site_id — the site identifier returned by the management server.esst_signing_secret — the HMAC signing secret for the managed ingestion endpoint (encrypted at rest).esst_collect_url, esst_plan_summary — operational state from the management server (collect endpoint URL and the plan name shown in the admin).jachtsst_user_opt_in_at, jachtsst_user_opt_in_by, jachtsst_user_opt_in_text — the record of who agreed to the data sharing, when, and the exact wording they agreed to. This is kept so the consent can be evidenced later, and includes the WordPress user ID of the administrator who ticked the box. It is never sent anywhere.jachtsst_setup_completed_at, jachtsst_cmp_choice — setup progress, so the guided setup does not reappear.The plugin sets one first-party cookie of its own, esst_click_id. It holds the Google click identifier (gclid, gbraid or wbraid) from the advertisement a visitor arrived through, so that a resulting WooCommerce order can record which ad it came from. It is set only after the visitor has given advertising consent, expires after 90 days, and is never sent anywhere by the plugin — it is read back on this site only, when an order is created. It contains no personal data.
Alongside it the in-browser tracker uses the first-party cookie named _ga (the standard GA4 client identifier) when present.
When an order is created and that cookie is set, three values are stored on the order: _esst_click_id, _esst_click_id_type and _esst_click_id_stored_at. They stay on your own site.