Integration · GA4
GA4 data your ad blockers can't hide.
10–20% of your visitors block Google Analytics entirely. AdsPing forwards events to GA4 through the Measurement Protocol server-side, so your reports, audiences, and Google Ads imports run on complete data.
Why server-side
gtag.js is on every blocker list in existence. The visitors it misses aren't random — ad-blocker users skew desktop, technical, and high-intent, which means your GA4 conversion rates and channel reports are systematically skewed too.
GA4's Measurement Protocol accepts events server-to-server, but using it correctly means managing client IDs, session stitching, and event parameter mapping yourself.
AdsPing does this out of the box: pb.js collects first-party (unblockable via custom domain), and the backend forwards each event to your GA4 property with a consistent client_id — so sessions stitch correctly and blocked visitors stop being invisible.
How it works
- 01
Install pb.js or the Shopify app
The same single tag that powers Meta, TikTok, and Google Ads forwarding also feeds GA4 — no extra snippet.
- 02
Connect your GA4 property
Add your Measurement ID and API secret from GA4 Admin — the docs walk through both in two minutes. sGTM container routing is also supported.
- 03
Events arrive via Measurement Protocol
Purchases, leads, and page views forward server-side with consistent client_id and session parameters, appearing in GA4 like normal traffic.
- 04
Reports and audiences complete themselves
Ad-blocked sessions reappear in acquisition reports, conversion counts, and the audiences you export to Google Ads.
What you get
Measurement Protocol done right
Consistent client_id handling and session stitching so server events merge into real sessions instead of spawning phantom users.
First-party collection
With a custom tracking domain, collection happens on your own subdomain — invisible to blocker lists that target google-analytics.com.
GTM Server-side support
Prefer routing through your own sGTM container? AdsPing can deliver events there instead — same tag, your infrastructure.
E-commerce parameters included
Purchase events carry value, currency, transaction_id, and items — so GA4 e-commerce reports and Google Ads conversion imports stay accurate.
One tag, every destination
GA4 runs in parallel with Meta CAPI, TikTok, and Google Ads forwarding — one event fans out to all of them with per-destination status.
Shopify order webhooks
Shopify purchases reach GA4 server-side via webhooks — including checkout-domain sales gtag never sees.
Frequently asked questions
- What is GA4 server-side tracking?
- Sending events to GA4 through the Measurement Protocol (or an sGTM container) from a server instead of the visitor's browser. Ad blockers and browser privacy features can't intercept server-side requests, so GA4 receives complete data.
- Will server events mess up my sessions?
- No — AdsPing maintains a consistent client_id per visitor and forwards session parameters, so server events merge into the same sessions your gtag data creates rather than inflating user counts.
- Do I need to remove gtag.js?
- No. Keep it — AdsPing fills in the sessions gtag misses. Events carry matching identifiers so GA4 doesn't double-count.
- Does this improve my Google Ads performance too?
- Indirectly yes — GA4 audiences and imported conversions become more complete. For direct Google Ads conversion uploads, AdsPing also has a dedicated Google Ads Conversions API integration that forwards gclid-anchored conversions.
- Can I use my own server-side GTM container?
- Yes. AdsPing can route events to your sGTM container instead of (or alongside) the Measurement Protocol — useful if you already have transformation logic living there.
Stop losing conversions today.
14-day free trial on every plan. Full feature set from day one.