{"version":"1.0","provider_name":"Lukas Wojcik - Blog","provider_url":"https:\/\/www.lukaswojcik.com\/blog","author_name":"luky","author_url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/","title":"GA4 Measurement Protocol JSON Validator: see every fault at once - Lukas Wojcik - Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"VJlom6fv67\"><a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/ga4-measurement-protocol-json-validator\/\">GA4 Measurement Protocol JSON Validator: see every fault at once<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/ga4-measurement-protocol-json-validator\/embed\/#?secret=VJlom6fv67\" width=\"600\" height=\"338\" title=\"&#8220;GA4 Measurement Protocol JSON Validator: see every fault at once&#8221; &#8212; Lukas Wojcik - Blog\" data-secret=\"VJlom6fv67\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.lukaswojcik.com\/blog\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"Reads a Measurement Protocol payload against the documented rules and reports every fault in one pass: reserved names, silent length limits, timestamps in the wrong unit, personal data in parameters, item sums that disagree with value. The same payload also goes to Google\u2019s own validation server twice \u2014 strict and the way production treats it \u2014 so the gap between the three verdicts is visible side by side.","thumbnail_url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","thumbnail_width":1200,"thumbnail_height":630}