GA4 Measurement Protocol checker

The Measurement Protocol answers 2xx even when it drops your events. Paste the JSON your server sends to GA4 to see each problem with the field it's in.

  • Free
  • No sign-up
  • Runs in your browser

Runs in your browser. Nothing you paste is sent anywhere. Remove your api_secret before pasting.

Paste a request body, or load the example, and press Check payload.

How it works

1

Why events vanish

GA4 accepts the request and silently ignores events with reserved names, too many parameters or a timestamp older than 72 hours.

2

Sessions and Realtime

Without session_id and engagement_time_msec, a server event isn't joined to the visitor's session, so it is unattributed and missing from Realtime.

3

Nothing leaves your browser

The check runs on this page. Remove your api_secret before pasting.

Questions

Where do I test against Google itself?

Send the same body to /debug/mp/collect instead of /mp/collect. Google returns validation messages and records nothing.

Why must client_id skip GA1.1.?

The _ga cookie holds GA1.1. followed by the client id. Measurement Protocol wants only the part after the prefix, the same id the GA4 tag sends.

Let Trakero do this for every order

Trakero captures click ids, hashes customer data and sends each purchase once to Meta, TikTok, GA4 and more from your server, so ad blockers and Safari can't lose it.

Start free

Tracking rules change. We'll tell you.

A short email when Meta, Google or TikTok change a tracking rule that affects stores, and when we add a free tool. A few a year. Unsubscribe in one click.

We use your address only for these emails. Privacy policy.