{"id":959,"date":"2026-04-29T15:03:13","date_gmt":"2026-04-29T13:03:13","guid":{"rendered":"https:\/\/www.sabatka.net\/en\/?p=959"},"modified":"2026-04-29T15:14:50","modified_gmt":"2026-04-29T13:14:50","slug":"is-ga4-data-accurate","status":"publish","type":"post","link":"https:\/\/www.sabatka.net\/en\/is-ga4-data-accurate\/","title":{"rendered":"Is GA4 Data Accurate?"},"content":{"rendered":"\n<p>No, buddy.<\/p>\n\n\n\n<p>Let&#8217;s break it down.<\/p>\n\n\n\n<p>I&#8217;m not saying GA4 is useless. Having GA4 data is still better than having none. But you need to know where the limits are. And how much those limits cost you.<\/p>\n\n\n\n<p>I&#8217;ll assume your GA4 is technically set up correctly \u2014 no duplicate events, no missing tags, no broken triggers. Even then, GA4 doesn&#8217;t show you accurate data. And there are more reasons than you&#8217;d expect.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">How GA4 counts users and sessions<\/h2>\n\n\n\n<p>GA4 doesn&#8217;t count users one by one. It uses a probabilistic algorithm called <a href=\"https:\/\/developers.google.com\/analytics\/blog\/2022\/hll\" target=\"_blank\" rel=\"noopener\"><strong>HyperLogLog++<\/strong><\/a> (HLL++), which estimates the number of unique values without storing every single record.<\/p>\n\n\n\n<p>It&#8217;s a smart trade-off: instead of storing millions of unique IDs in memory, GA4 gets by with 12 KB of data and 16,384 &#8220;buckets.&#8221; The result? An estimate with a margin of error:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Users (Total Users, Active Users):<\/strong> \u00b11.6% (95% confidence interval)<\/li>\n\n\n\n<li><strong>Sessions:<\/strong> \u00b13.3%<\/li>\n<\/ul>\n\n\n\n<p>So 100,000 users in GA4 actually means somewhere between 98,400 and 101,600 in reality. For most decisions, that&#8217;s fine. For statistical tests on large samples (over 12,000 users per variant), it starts to matter.<\/p>\n\n\n\n<p>Important clarification: HLL++ only affects <strong>unique counts<\/strong> \u2014 users and sessions. Event counts (pageviews, clicks, conversions) are exact. But watch out: when you calculate a <strong>conversion rate<\/strong> with users in the denominator, the HLL++ imprecision carries over.<\/p>\n\n\n\n<p>This is the smaller deviation, though. Let&#8217;s move to the bigger ones.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What GA4 doesn&#8217;t see at all<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ad blockers and tracking prevention<\/h3>\n\n\n\n<p>Safari (ITP), Brave, Firefox (ETP), and DuckDuckGo block Google Tag Manager by default. Add uBlock Origin and other ad blockers on top.<\/p>\n\n\n\n<p>Result: <strong>GA4 misses roughly 10% of your visitors<\/strong> due to ad blockers and browser tracking prevention. For a tech-savvy audience, it can be more. Some international sources report up to 30%, but in my experience on European projects, it&#8217;s typically around 10%.<\/p>\n\n\n\n<p>A solution exists: <a href=\"https:\/\/www.sabatka.net\/en\/co-to-je-server-side-mereni-sgtm\/\">server-side tracking<\/a> can recover a significant portion of this data because your server sends the data, not the user&#8217;s browser. You can also serve GTM from your own domain (careful \u2014 don&#8217;t use CNAME, use something like Cloudflare Routes instead) and send data to your own domain. This bypasses most blocking rules.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Consent and cookie banners<\/h3>\n\n\n\n<p>If your cookie banner is set up correctly (and <a href=\"https:\/\/www.sabatka.net\/en\/5-most-common-bugs-in-cookie-bar-configuration\/\">a third of companies don&#8217;t have theirs right<\/a>), GA4 only measures visitors who clicked &#8220;Accept.&#8221;<\/p>\n\n\n\n<p>Opt-in rates typically range between 40\u201370%. That means <strong>30\u201360% of visitors<\/strong> GA4 either doesn&#8217;t see at all (Basic Consent Mode) or tries to model (Advanced Consent Mode \u2014 more on that shortly).<\/p>\n\n\n\n<p>This is, in practice, <strong>the biggest source of inaccuracy<\/strong> in GA4 \u2014 yet many people focus on ad blockers instead of checking their opt-in rate.<\/p>\n\n\n\n<p>By the way, I described <a href=\"https:\/\/www.sabatka.net\/en\/what-is-opt-in-rate\/\">how to calculate opt-in rate<\/a> in a separate article.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What GA4 hides or distorts<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Sampling<\/h3>\n\n\n\n<p>In Explorations, GA4 processes a maximum of <strong>10 million events per query<\/strong> (free version). Anything above that gets sampled. Average error is around 5%, but for small data ranges it can be <strong>up to 30%<\/strong>.<\/p>\n\n\n\n<p>Standard reports aren&#8217;t sampled \u2014 they&#8217;re pre-calculated. But they have a different problem.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Cardinality \u2014 the &#8220;(other)&#8221; row<\/h3>\n\n\n\n<p>Standard reports have a limit of <strong>500 unique dimension values per day<\/strong>. Everything above that falls into the &#8220;(other)&#8221; row.<\/p>\n\n\n\n<p>Running an e-commerce store with 2,000 products and want to see revenue by product in a standard report? Most of them will be in &#8220;(other).&#8221; Solution: Explorations (higher limit) or BigQuery (no limit).<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Thresholding<\/h3>\n\n\n\n<p>If your reports use demographic dimensions or Google Signals data, GA4 may <strong>silently hide rows<\/strong>. It doesn&#8217;t want anyone to identify individual users from the data.<\/p>\n\n\n\n<p>Google doesn&#8217;t say exactly when. From experience: typically at 30\u201350 users or events. Solution: switch reporting identity to &#8220;Device-based.&#8221;<\/p>\n\n\n\n<p>Note: Google removed Google Signals from reporting identity in 2024 \u2014 Signals are still used for remarketing and demographic data, but they no longer affect reporting identity itself. Thresholding still applies when using demographic dimensions.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Reporting identity<\/h3>\n\n\n\n<p>GA4 offers three modes: Blended, Observed, and Device-based. Each gives <strong>different numbers for the same data<\/strong>. Blended uses modeling, Device-based uses only cookies. Differences in user counts can be in the tens of percent.<\/p>\n\n\n\n<p>And that brings us to modeling.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Data modeling \u2014 a safety net with holes<\/h2>\n\n\n\n<p>Consent Mode v2 in Advanced mode sends anonymous pings even from users who haven&#8217;t consented. GA4 uses these to model missing data.<\/p>\n\n\n\n<p>Sounds great. The catch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modeling only activates with <strong>1,000+ daily events<\/strong> with consent, over 7 consecutive days<\/li>\n\n\n\n<li>It works <strong>only in the UI and API<\/strong> \u2014 BigQuery exports don&#8217;t include modeled data<\/li>\n\n\n\n<li>Basic Consent Mode = tags don&#8217;t fire at all = zero modeling<\/li>\n\n\n\n<li>Accuracy depends on the ratio of consented vs. non-consented users<\/li>\n<\/ul>\n\n\n\n<p>Recovery estimates: 30\u201350% of lost conversions can be recovered. That&#8217;s not nothing. But it&#8217;s not 100%.<\/p>\n\n\n\n<p>And most importantly: <strong>modeling on vs. off dramatically changes your numbers.<\/strong> We&#8217;ll come back to this.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Attribution \u2014 a black box<\/h2>\n\n\n\n<p>GA4 uses different attribution models depending on the report type. In standard reports: <strong>User Acquisition<\/strong> uses first-click, <strong>Traffic Acquisition<\/strong> uses last non-direct click. Data-Driven Attribution (DDA) only applies to Key Events reports and Explorations \u2014 and even there, only if you have enough data.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DDA is a black box.<\/strong> Google doesn&#8217;t reveal how it assigns credit.<\/li>\n\n\n\n<li><strong>Silent fallback.<\/strong> If you don&#8217;t have at least 400 conversions in 28 days for a given key event, GA4 silently switches to last-click \u2014 without any notification. You&#8217;ll still see &#8220;Data-driven&#8221; in your settings, but last-click is actually running.<\/li>\n\n\n\n<li><strong>Incrementality?<\/strong> Neither DDA nor last-click answers the key question: how many of those conversions would have happened without the ad?<\/li>\n<\/ul>\n\n\n\n<p>Why does GA4 show a different traffic source in User Acquisition, a different one in Traffic Acquisition, and yet another in Explorations? Exactly for this reason \u2014 each report uses a different attribution model. More on this <a href=\"https:\/\/www.sabatka.net\/en\/why-does-traffic-source-have-different-names\/\">in my article about traffic sources in GA4<\/a>.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Data latency<\/h2>\n\n\n\n<p>One more thing that doesn&#8217;t get discussed enough: GA4 has a latency of <strong>24\u201348 hours<\/strong>. Universal Analytics was significantly faster. On larger websites, I often see data appearing in reports only by the next afternoon. Some data (offline events, late pings) can arrive up to <strong>72 hours<\/strong> after the event \u2014 anything later gets discarded by GA4. And there&#8217;s no SLA.<\/p>\n\n\n\n<p>For analysis, this doesn&#8217;t matter. For real-time decision-making, it does.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What to do about it<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Having data is better than having none<\/h3>\n\n\n\n<p>This needs to be said out loud. GA4 isn&#8217;t perfect, but it&#8217;s still <strong>the most accessible and widely used tool<\/strong> for web measurement. Having no measurement at all is incomparably worse.<\/p>\n\n\n\n<p>The key is to <strong>know how accurate your data is and how much you can trust it<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">For trends, GA4 is enough<\/h3>\n\n\n\n<p>For tracking trends and comparing periods, GA4 works well. The deviation is consistent, so even though absolute numbers aren&#8217;t precise, <strong>relative changes are<\/strong>. Campaign A performs better than Campaign B? GA4 will tell you that reliably.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">For absolute numbers, watch the modeling<\/h3>\n\n\n\n<p>Once you need absolute numbers, it&#8217;s a different story. <strong>For calculating CPA or ROAS, it makes a massive difference whether you have modeling turned on or not.<\/strong><\/p>\n\n\n\n<p>With modeling, GA4 reports tens of percent more conversions \u2014 and your ROAS suddenly looks great. Without modeling? Same campaign, but the numbers tell a different story. And you&#8217;re making budget allocation decisions based on this.<\/p>\n\n\n\n<p>This isn&#8217;t an academic problem. This is a problem that costs real money.<\/p>\n\n\n\n<p>If you&#8217;re comparing <a href=\"https:\/\/www.sabatka.net\/en\/revenue-in-ga4-do-you-know-what-you-are-looking-at\/\">revenue in GA4 with your e-commerce backend numbers<\/a>, you need to know exactly which reporting method you&#8217;re using \u2014 otherwise you&#8217;re comparing apples to oranges.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">BigQuery: accurate data, but at a cost<\/h3>\n\n\n\n<p>BigQuery export from GA4 contains:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Every single event<\/strong> \u2014 no sampling, no thresholding, no cardinality limits<\/li>\n\n\n\n<li><strong>Raw data<\/strong> without modeling (consent mode models aren&#8217;t in BQ)<\/li>\n\n\n\n<li>Event counts are <strong>perfectly accurate<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Even in BigQuery, though, you need to consider how much precision you actually need. Aggregation functions like <code>APPROX_COUNT_DISTINCT<\/code> (yes, the same HLL++ as in GA4) can <strong>dramatically reduce query costs<\/strong> in BQ \u2014 at the cost of that same \u00b11.6% deviation.<\/p>\n\n\n\n<p>If knowing &#8220;roughly 98,000 users&#8221; instead of &#8220;exactly 97,842&#8221; is good enough, you&#8217;ll save money. And <a href=\"https:\/\/www.sabatka.net\/en\/lean-analytics-dont-need-to-measure-everything-just-what-watters\/\">as I wrote in my Lean Analytics article<\/a>, you don&#8217;t need to measure everything \u2014 just what matters.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know.png\" alt=\"\" class=\"wp-image-936 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-300x300.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-150x150.png 150w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-768x768.png 768w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/1024;\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Scientific note<\/h3>\n\n\n\n<p>It&#8217;s the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Coastline_paradox\" target=\"_blank\" rel=\"noopener\">Coastline Paradox<\/a> \u2014 the more precisely you measure a coastline, the longer it gets. Same with web data: the closer you get to &#8220;accurate&#8221; numbers, the more complications emerge. Sometimes it&#8217;s wiser to measure with reasonable precision and invest the saved resources into what you actually do with the data.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Wait, it might get better<\/h3>\n\n\n\n<p>In November 2025, the European Commission published the <a href=\"https:\/\/www.sabatka.net\/en\/digital-omnibus-in-digital-analytics\/\">Digital Fairness Omnibus<\/a> package \u2014 and in February 2026, it officially withdrew the stalled ePrivacy Regulation proposal. Cookie and tracking rules are now being moved directly into the GDPR (new Article 88a).<\/p>\n\n\n\n<p>The key change: the Digital Omnibus introduces a consent exemption for &#8220;audience measurement.&#8221; If a website operator collects aggregated visitor data exclusively for their own use, without sharing it with third parties, user consent won&#8217;t be required. The conditions are strict: data must be processed by the controller, exclusively for their own service and own purposes.<\/p>\n\n\n\n<p>A similar approach already exists in France (CNIL), Spain (AEPD), and Italy (Garante). The Digital Omnibus would extend this principle across the entire EU.<\/p>\n\n\n\n<p>Timeline-wise, this is more of a late 2026 matter, realistically 2027 \u2014 the proposal must pass through the European Parliament and the Council of the EU.<\/p>\n\n\n\n<p>And crucially: <strong>this won&#8217;t apply to Google Analytics 4.<\/strong> GA4 processes data on Google&#8217;s shared infrastructure, and Google uses it for product development and its advertising ecosystem. This doesn&#8217;t meet the definition of &#8220;the operator&#8217;s own analytics.&#8221; The exemption will likely be usable for tools like Matomo (self-hosted), Piwik PRO, or Plausible \u2014 solutions where data stays fully under the website operator&#8217;s control.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--50)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Deviation summary<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Source of inaccuracy<\/strong><\/th><th><strong>Deviation<\/strong><\/th><th><strong>Solution<\/strong><\/th><\/tr><\/thead><tbody><tr><td>HLL++ (users)<\/td><td>\u00b11.6%<\/td><td>BigQuery with COUNT DISTINCT<\/td><\/tr><tr><td>HLL++ (sessions)<\/td><td>\u00b13.3%<\/td><td>BigQuery with COUNT DISTINCT<\/td><\/tr><tr><td>Ad blockers and tracking prevention<\/td><td>~10%<\/td><td>Server-side tracking, custom domain<\/td><\/tr><tr><td>Consent (missing consent)<\/td><td>30\u201360%<\/td><td>Consent Mode v2 Advanced + modeling<\/td><\/tr><tr><td>Sampling (Explorations)<\/td><td>5\u201330%<\/td><td>BigQuery, shorter date range<\/td><\/tr><tr><td>Thresholding<\/td><td>hidden rows<\/td><td>Device-based reporting identity<\/td><\/tr><tr><td>Cardinality<\/td><td>grouped into &#8220;(other)&#8221;<\/td><td>Explorations, BigQuery<\/td><\/tr><tr><td>Modeling (consent)<\/td><td>tens of % difference on\/off<\/td><td>Know what you have turned on<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>No, buddy. Let&#8217;s break it down. I&#8217;m not saying GA4 is useless. Having GA4 data is still better than having none. But you need to know where the limits are. And how much those limits cost you. I&#8217;ll assume your GA4 is technically set up correctly \u2014 no duplicate events, no missing tags, no broken [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":967,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,28],"tags":[],"class_list":["post-959","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitalni-analytika","category-google-analytics-4"],"_links":{"self":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/comments?post=959"}],"version-history":[{"count":15,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/959\/revisions"}],"predecessor-version":[{"id":977,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/959\/revisions\/977"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media\/967"}],"wp:attachment":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media?parent=959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/categories?post=959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/tags?post=959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}