What this validator catches
Server-side tracking fails quietly: a bad field often means the event is dropped or lands without its value, and you only notice in reports weeks later. This tool checks a JSON request body against the documented rules for the GA4 Measurement Protocol and the Meta Conversions API before you send it, and lists each problem with the exact field path so you can fix it.
GA4 Measurement Protocol checks
- client_id or app_instance_id present, and not both.
- Up to 25 events per request, with event names up to 40 characters that start with a letter and avoid reserved or google_, ga_ and firebase_ prefixes.
- Up to 25 parameters per event, parameter names up to 40 characters, and numeric values for value and price.
- purchase and refund events carrying transaction_id and currency, and item arrays whose items have an item_id or item_name.
- User property name and value length limits, timestamp format and overall payload size.
Meta Conversions API checks
- Required fields: event_name, event_time in whole seconds, and a valid action_source.
- Website events with event_source_url and client_user_agent.
- At least one customer identifier, with email, phone and name fields hashed using SHA-256, while IP address, user agent, fbc and fbp stay unhashed.
- Purchase events with value and currency, and events no older than seven days.
- An event_id so the server event can be de-duplicated against the browser Pixel.
Limits of a format check
Passing here means the payload matches the rules this tool knows. It cannot confirm that your IDs, access tokens or measurement secrets are correct, that your consent setup allows sending, or that a platform has not changed a rule since this tool was written. For a final check, use the platforms' own test tools: the GA4 Measurement Protocol validation server and the Test Events tab in Meta Events Manager. Nothing you paste here is sent anywhere.