GA4 reports you can actually trust.
When half your conversions never reach GA4, every report downstream is wrong — and so is every decision you make from it. PrestaSignal feeds GA4 the complete, server-side truth, with sessions and revenue that finally reconcile with your back office.
Why your GA4 numbers don’t match your orders
Browser-side GA4 loses hits to ad-blockers and ITP, and inflates or fragments sessions when the tag fires inconsistently. The result is a property that disagrees with PrestaShop on the one number that matters: how many sales you actually made.
Sent server-side, stitched to the real session
PrestaSignal reads the visitor’s genuine GA4 session and forwards every event server-side with the right session ID and number — so server hits join the same journey as client hits instead of spawning duplicate sessions. Revenue is sent tax-inclusive, matching your order totals, with a deterministic transaction ID so purchases are never double-counted.
What reaches GA4
How GA4 server-side tracking works on PrestaShop
When a shopper acts on your store — views a product, adds to cart, completes checkout — the PrestaShop module captures that event on your server, where ad-blockers and browser privacy settings have no reach. It reads the visitor’s existing GA4 client ID and session so the server event belongs to the same journey, normalises and hashes any personal data, and forwards the event to Google Analytics 4 through your hosted tracking server.
Because the event originates server-side, it arrives whether or not the browser tag fired. Run it on its own and GA4 reports purely from the server; run it hybrid and the server event carries the same identifiers as the client tag, so GA4 stitches the two into one clean session instead of double-counting. Revenue is sent tax-inclusive with a deterministic transaction ID, so a refreshed confirmation page or a returning visitor never inflates your numbers.
What goes wrong with browser-only GA4
A tag that fires inconsistently spawns extra session_starts, so your session and user counts read higher than reality.
Ad-blockers and ITP silently drop a share of purchase events, so GA4 reports fewer sales than your order list.
Tax-excluded values or duplicated transactions leave GA4 revenue disagreeing with your back office.
Lost first hits push sessions into “unassigned”, hiding which channels actually drove the sale.
GA4 server-side — questions.
Will this fix my inflated session counts in GA4?+
Yes. PrestaSignal reads the real GA4 session and forwards the correct session ID and number, so server-side hits join the existing session instead of creating duplicates — which is the usual cause of inflated counts.
Does the revenue match my PrestaShop orders?+
It’s sent tax-inclusive to match your order totals, with a deterministic transaction ID per order so the same purchase is never counted twice.
Do I still need the GA4 browser tag?+
You can run server-side only, or hybrid. In hybrid mode events are deduplicated by a shared ID, so you keep client-side richness without double-counting.
Is GA4 set up for me?+
Yes. We configure your GA4 connection on the tracking server we host, so you don’t wire up Measurement Protocol or API secrets yourself.
Does server-side GA4 affect my page speed?+
No. The event is sent from your server to your hosted tracking container, not as extra work in the shopper’s browser. If anything, moving tags server-side reduces the client-side script weight on the page.
Will Consent Mode still work?+
Yes. Consent signals are respected — events are shaped according to the visitor’s choices, and you stay aligned with how Google expects consent to flow through to GA4.
Make GA4 agree with your bank account.
A free teardown compares your live GA4 against your real orders and shows the gap.