{"id":3246,"date":"2026-05-20T15:54:38","date_gmt":"2026-05-20T15:54:38","guid":{"rendered":"https:\/\/hyros.com\/updates\/?p=3246"},"modified":"2026-08-03T02:38:50","modified_gmt":"2026-08-03T02:38:50","slug":"server-side-tracking","status":"publish","type":"post","link":"https:\/\/hyros.com\/updates\/server-side-tracking\/","title":{"rendered":"Server-Side Tracking: The Complete Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Server-side tracking isn&#8217;t a &#8220;nice-to-have technical upgrade.&#8221; It&#8217;s the difference between guessing and knowing. If your tracking lives in the browser, you&#8217;re flying blind on a significant chunk of your traffic post-iOS 14, and every budget decision you make on top of that incomplete data is compounding the damage. I built the attribution infrastructure at Hyros specifically because I kept watching advertisers lose money they didn&#8217;t even know they were losing.<\/p>\n\n\n\n<div class=\"tldr\"><h2>TL;DR<\/h2>\n<ul>\n<li><strong>Server-side tracking fires events from your server, not the visitor&#8217;s browser.<\/strong> This means ad blockers, Safari ITP, and cookie restrictions don&#8217;t prevent your conversion data from reaching Meta, Google, or TikTok. Per Meta&#8217;s April 2026 announcement, advertisers with a Conversions API setup for web events saw an average 17.8% lower cost per result compared to those without CAPI (<a href=\"https:\/\/www.facebook.com\/business\/news\/pixel-conversionsapi-updates\" rel=\"noopener nofollow\">Meta for Business, April 15 2026<\/a>).<\/li>\n<li><strong>Client-side pixels now lose 15-40% of conversions on iOS Safari<\/strong> due to ITP 2.3 and later versions that cap cookie lifetimes to 7 days (or 24 hours for some). After iOS 14.5, roughly 96% of US iPhone users initially opted out of app tracking (Flurry Analytics, 2021), though opt-in rates have since climbed to approximately 35-37% as of 2026. Server-side tracking recovers most of that lost signal.<\/li>\n<li><strong>You can build your own server-side pipeline or use a platform like Hyros.<\/strong> Building requires maintaining a server-side Google Tag Manager container or custom API integrations. Hyros ships a server-side tracking layer out of the box and reports tracking 20-50% more sales than ad platforms alone, without you writing or hosting any code.<\/li>\n<\/ul><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Server-Side Tracking?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking is a method of sending user event data (page views, add-to-carts, purchases) from your web server to advertising and analytics platforms through server-to-server API calls. Instead of loading a JavaScript tag in the visitor&#8217;s browser that fires a pixel to Meta or Google, your server collects the event data and sends it directly via HTTP POST request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The concept isn&#8217;t new. Backend event logging has existed since the early days of web development. What changed is that the browser became an unreliable data pipeline. Apple&#8217;s Intelligent Tracking Prevention (ITP), ad blockers used by over 30% of desktop users, and the phaseout of third-party cookies in Chrome made browser-based pixels miss a significant chunk of conversions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When Meta launched Conversions API (CAPI) in 2020, it marked the first time a major ad platform officially supported (and eventually recommended) server-side event transmission as a primary tracking method. Google followed with server-side Google Tag Manager (sGTM), which went into public beta in August 2020 and reached general availability in 2021. TikTok launched its Events API shortly after.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The shift wasn&#8217;t optional. After Apple&#8217;s iOS 14.5 App Tracking Transparency update in April 2021, platforms lost massive amounts of conversion data overnight. Meta projected a $10 billion revenue impact from the changes. I&#8217;ve set up server-side tracking for clients who came to us after iOS 14.5 gutted their pixel data. Reported conversions dropped 30-40% overnight with no change in actual sales. Server-side tracking became the recommended way to recover that signal. In fact, the original reason I built the tracking layer inside Hyros was watching accounts like these. Good businesses with real customers, but attribution so broken they were scaling the wrong campaigns.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a broader look at how tracking fits into the measurement stack, see our guide on <a href=\"https:\/\/hyros.com\/updates\/ad-tracking-vs-analytics\" rel=\"noopener\">ad tracking vs analytics<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Client-Side vs Server-Side Tracking<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-scaled.png\" alt=\"Schematic comparing the client-side pixel path, broken by ITP and ad blockers and reporting 60-70% of conversions, with the server-side Conversions API path reporting 90-95%\" class=\"wp-image-3255\" srcset=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-scaled.png 2560w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-300x167.png 300w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-1024x572.png 1024w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-768x429.png 768w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-1536x857.png 1536w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/client-side-vs-server-side-tracking-2048x1143.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Same conversion, two paths \u2014 one of them leaks.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The difference between client-side and server-side tracking comes down to where the tracking code runs and who controls the data transmission.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Factor<\/th><th>Client-Side (Pixel)<\/th><th>Server-Side (API)<\/th><\/tr><\/thead><tbody><tr><td>Where it runs<\/td><td>Visitor&#8217;s browser<\/td><td>Your server<\/td><\/tr><tr><td>Blocked by ad blockers<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>Affected by ITP\/cookie limits<\/td><td>Yes (7-day or 24-hour caps)<\/td><td>No (uses first-party server calls)<\/td><\/tr><tr><td>Data control<\/td><td>Platform receives raw browser data<\/td><td>You control what data is sent<\/td><\/tr><tr><td>Setup complexity<\/td><td>Copy-paste a script tag<\/td><td>Requires server config or platform<\/td><\/tr><tr><td>Page load impact<\/td><td>Adds JS weight, slows page<\/td><td>Zero browser overhead<\/td><\/tr><tr><td>Conversion accuracy<\/td><td>Loses 15-40% on iOS Safari<\/td><td>Recovers most lost conversions<\/td><\/tr><tr><td>Privacy compliance<\/td><td>Limited (cookie consent gates data)<\/td><td>Easier (you filter PII server-side before sending)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Client-side tracking isn&#8217;t dead. Meta still recommends running the Pixel alongside CAPI for event deduplication. Google Ads Enhanced Conversions works best when the gtag fires in the browser and the server sends a matching event. But the browser-only approach is no longer sufficient as a standalone strategy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s imagine two advertisers running identical campaigns to the same audience. Advertiser A runs a pixel-based pipeline. The browser fires a conversion tag when the customer checks out. On iOS Safari, that tag is blocked by ITP before it lands. The ad blocker on the customer&#8217;s Chrome browser strips it entirely. The fbclid in the URL gets stripped by the landing page&#8217;s CMS. Net result: maybe 60-70% of actual conversions get reported. Advertiser B runs server-side. When the order hits the backend, an HTTP POST goes straight from the server to Meta CAPI. No browser in the loop. No ITP. No ad blockers. No stripped parameters. Typical data preservation jumps from 60-70% up to 90-95%+. Meta&#8217;s algorithm for Advertiser B is learning from nearly complete data. Advertiser A&#8217;s algorithm is optimizing against a dataset with a 30-40% blind spot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The practical difference shows up in your ad account. If your Meta Pixel fires on 70% of actual conversions (because 30% are blocked or expire), Meta&#8217;s algorithm optimizes against an incomplete dataset. It thinks certain audiences and creatives are underperforming when they&#8217;re actually converting. Your tracking just missed it. According to data from the <a href=\"https:\/\/hyros.com\/shopify\" rel=\"noopener\">Hyros Shopify integration page<\/a>, Facebook underreports conversions by approximately 30%, Google by 29%, and TikTok by 33% compared to server-side tracked data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Server-Side Tracking Matters in 2026<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-scaled.png\" alt=\"Specification panel: Safari ITP caps cookies at 7 days or 24 hours if classified as a tracker, Meta attribution window cut from 28 to 7 days, desktop ad blocker use over 30%\" class=\"wp-image-3256\" srcset=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-scaled.png 2560w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-300x167.png 300w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-1024x572.png 1024w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-768x429.png 768w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-1536x857.png 1536w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/what-broke-browser-tracking-2048x1143.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">The privacy changes that degraded browser-based tracking.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the thing most people running ads don&#8217;t want to hear: you&#8217;re probably not in control of your attribution. You think you are. You&#8217;re looking at Meta&#8217;s dashboard, Google&#8217;s dashboard, maybe GA4. And you think those numbers mean something. They don&#8217;t. Not fully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Facebook&#8217;s going to take credit for the sale. Google&#8217;s going to take credit for the sale. And you&#8217;re not even going to see where credit is actually going, because what happens is if Google and Facebook are both saying they got this sale, and you can&#8217;t verify it because it&#8217;s a black box, you&#8217;re optimizing against fiction. Server-side tracking is the only way to break open that black box. It sits outside the platforms and captures the data before they can claim it. That&#8217;s the actual promise. Not more attributed conversions, not better ROAS numbers in your dashboard. Real data, independent of what any platform wants you to believe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Three forces made server-side tracking a requirement, not a nice-to-have.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">iOS Safari ITP and App Tracking Transparency<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Apple&#8217;s Intelligent Tracking Prevention has been restricting cookies in Safari since 2017, but ITP 2.3 and later versions dealt the biggest blow. First-party cookies set via JavaScript (which is how most tracking pixels work) are now capped to 7 days. In some cases, when the referring domain is classified as a tracker, the cap drops to 24 hours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means a visitor who clicks your Meta ad on an iPhone, browses your site, and comes back 8 days later to buy won&#8217;t be attributed to that original click by the Meta Pixel. The cookie expired. The conversion is invisible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On top of ITP, Apple&#8217;s App Tracking Transparency (ATT) framework launched in April 2021. It gave users an explicit opt-in prompt for cross-app tracking. In the months following iOS 14.5&#8217;s launch, roughly 96% of US iPhone users declined tracking (Flurry Analytics, 2021), though opt-in rates have since climbed to approximately 35-37% as of 2026. Meta&#8217;s attribution window collapsed from 28 days to 7 days, a 75% reduction in the conversion data it can report.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking bypasses ITP because the event is sent from your server, not from Safari. The browser&#8217;s cookie policies don&#8217;t apply to server-to-server HTTP requests. The conversion still gets reported to Meta even if the user&#8217;s browser cookie expired a week ago. For a deeper look at how iOS privacy changes affected attribution, see our guide on <a href=\"https:\/\/hyros.com\/updates\/ios-14-attribution\" rel=\"noopener\">iOS 14 attribution<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ad Blocker Adoption<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ad blocker usage has passed 30% of desktop users globally. Users running uBlock Origin, AdGuard, or similar tools block JavaScript tracking pixels from loading entirely. Their purchases never register in your Meta Ads Manager, Google Ads, or GA4 dashboards. They are invisible customers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking is unaffected because the blocking happens in the browser. Your server collects the conversion event from your own application logic (order completed, payment processed) and sends it via API. The user&#8217;s browser extensions have no visibility into your server&#8217;s outbound API calls.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">First-Party Data for Meta, Google, and TikTok<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">All three major ad platforms now prioritize first-party data signals. Meta&#8217;s Conversions API, Google&#8217;s Enhanced Conversions, and TikTok&#8217;s Events API are all server-side endpoints designed to receive hashed customer data (email, phone, IP address) alongside conversion events.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These platforms use that first-party data to improve ad delivery. Per Meta&#8217;s April 15 2026 announcement, advertisers with a Conversions API setup for web events saw an average 17.8% lower cost per result compared to advertisers without CAPI (<a href=\"https:\/\/www.facebook.com\/business\/news\/pixel-conversionsapi-updates\" rel=\"noopener nofollow\">Meta for Business<\/a>). The reason is straightforward: more complete data means better optimization. The algorithm has more conversion signals to learn from, so it gets better at finding similar users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re overspending based on bad attribution data, you&#8217;re going to lose 15 to 20% of your ad spend just in waste, money going to campaigns and audiences that look like winners in the platform dashboard but aren&#8217;t actually driving revenue. That&#8217;s 15 to 20% of your potential scale, gone. In the accounts I&#8217;ve reviewed, the pattern is almost always the same: the platform says one campaign is crushing it, the server-side data says something different, and the budget is weighted wrong. Fix the data feed and fix the spend allocation. According to <a href=\"https:\/\/www.layerfive.com\/\" rel=\"noopener nofollow\">LayerFive<\/a>, nearly half of marketing spend is wasted due to poor attribution. Server-side tracking addresses the data-quality half of that problem by getting accurate conversion data to the platforms making your bid and targeting decisions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Server-Side Tracking Works<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-scaled.png\" alt=\"Four-stage flow: visitor converts on your site, your server captures the event, the server sends it via the Conversions API, the platform matches and attributes it\" class=\"wp-image-3257\" srcset=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-scaled.png 2560w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-300x167.png 300w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-1024x572.png 1024w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-768x429.png 768w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-1536x857.png 1536w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/how-server-side-tracking-works-2048x1143.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">The four stages of a server-side event.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The architecture of server-side tracking follows a five-part flow:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. User event occurs.<\/strong> A visitor lands on your site, adds a product to cart, or completes a purchase. Your application (Shopify, WordPress, custom app) logs the event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Event data is collected server-side.<\/strong> Instead of (or in addition to) a browser pixel capturing the event, your server records it. This includes the event type, timestamp, order value, and any user identifiers (hashed email, phone number, IP address, user agent string, click ID from the URL).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Your server sends the event to the ad platform&#8217;s API.<\/strong> Using the platform&#8217;s server-side endpoint (Meta CAPI, Google Enhanced Conversions API, TikTok Events API), your server makes an HTTPS POST request with the event payload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. The platform matches the event.<\/strong> The ad platform receives the server event and attempts to match it to a user in its system. It uses the hashed identifiers you sent (email, phone, fbclid\/gclid click IDs) to tie the conversion back to the ad click that generated it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Deduplication (if running both Pixel and API).<\/strong> If you&#8217;re sending the same event from both the browser Pixel and the server API, the platform deduplicates them using a shared event ID. This prevents double-counting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This architecture means your tracking isn&#8217;t dependent on browser behavior. The browser can block scripts, expire cookies, or crash after the purchase page, and the conversion still reaches the ad platform because your server sent it independently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Set Up Server-Side Tracking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setting up server-side tracking depends on your platform and technical resources. Here is the general process for implementing Meta&#8217;s Conversions API, which is the most common starting point.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Create a CAPI access token in Meta Events Manager<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to Meta Events Manager, select your Pixel, and open Settings. Under Conversions API, generate an access token. This token authenticates your server&#8217;s API calls. Store it securely. Treat it like a password.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Capture click IDs on your landing pages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When a user clicks a Meta ad, the URL includes an <code>fbclid<\/code> parameter. Your landing page needs to capture this value and store it (in a first-party cookie or your database) so it&#8217;s available at conversion time. For Google, capture the <code>gclid<\/code>. For TikTok, capture the <code>ttclid<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Collect user identifiers at the conversion point<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When a customer completes a purchase or submits a lead form, collect their email address and\/or phone number. Hash these values using SHA-256 before sending them to any ad platform. This is required by Meta, Google, and TikTok for privacy compliance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Build the server-side event payload<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Construct a JSON payload matching the platform&#8217;s API specification. For Meta CAPI, this includes the event name (Purchase, Lead, AddToCart), event time, user data (hashed email, hashed phone, IP, user agent, fbclid), and custom data (value, currency, content IDs).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Send the event via HTTPS POST<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Your server sends the payload to the platform&#8217;s API endpoint. For Meta, the endpoint is <code>https:\/\/graph.facebook.com\/v19.0\/{pixel_id}\/events<\/code>. Include your access token and the event data. Handle errors and retries. Network failures will happen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Verify event matching and set up deduplication<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Meta Events Manager, check the Event Match Quality score. A score below 6.0 means your user data isn&#8217;t matching well and you need to send more identifiers. Set an <code>event_id<\/code> on both the browser Pixel event and the server event so Meta can deduplicate them correctly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Example: Meta CAPI POST<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a working Node.js example that sends a Purchase event to Meta&#8217;s Conversions API:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const crypto = require('crypto');\n\nconst PIXEL_ID = process.env.META_PIXEL_ID;\nconst ACCESS_TOKEN = process.env.META_ACCESS_TOKEN;\n\nfunction hashSHA256(value) {\n  return crypto.createHash('sha256').update(value.trim().toLowerCase()).digest('hex');\n}\n\nasync function sendPurchaseEvent({ email, phone, fbclid, ip, userAgent, value, currency, eventId }) {\n  const payload = {\n    data: &#91;\n      {\n        event_name: 'Purchase',\n        event_time: Math.floor(Date.now() \/ 1000),\n        event_id: eventId,\n        action_source: 'website',\n        user_data: {\n          em: &#91;hashSHA256(email)],\n          ph: phone ? &#91;hashSHA256(phone)] : undefined,\n          fbc: fbclid ? `fb.1.${Date.now()}.${fbclid}` : undefined,\n          client_ip_address: ip,\n          client_user_agent: userAgent,\n        },\n        custom_data: {\n          value: value,\n          currency: currency || 'USD',\n        },\n      },\n    ],\n  };\n\n  const url = `https:\/\/graph.facebook.com\/v19.0\/${PIXEL_ID}\/events?access_token=${ACCESS_TOKEN}`;\n\n  const response = await fetch(url, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\/json' },\n    body: JSON.stringify(payload),\n  });\n\n  const result = await response.json();\n\n  if (!response.ok) {\n    console.error('CAPI error:', result);\n    throw new Error(`CAPI request failed: ${response.status}`);\n  }\n\n  return result;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This code hashes the email and phone using SHA-256 before transmission. The <code>event_id<\/code> parameter should match the ID used in your browser Pixel fire so Meta can deduplicate the two events. If you skip deduplication, every conversion gets counted twice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common Server-Side Tracking Mistakes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Forgetting event deduplication.<\/strong> If you fire both the Meta Pixel and CAPI for the same purchase without matching event IDs, Meta counts it as two conversions. Your reported ROAS doubles overnight. It looks great until you realize your actual revenue did not change. Always set a matching <code>event_id<\/code> on both the client and server event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Sending unhashed PII.<\/strong> Meta, Google, and TikTok all require that email addresses and phone numbers be SHA-256 hashed before transmission. Sending raw PII violates their terms of service and creates regulatory risk under GDPR and CCPA. Hash before you send. Always.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Not capturing click IDs.<\/strong> The <code>fbclid<\/code>, <code>gclid<\/code>, and <code>ttclid<\/code> parameters in your landing page URLs are how platforms match a server event back to the original ad click. If your landing page strips these parameters (some CMS platforms do this by default), your server events arrive without a click ID and the platform can&#8217;t attribute them. Check your landing page URLs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Ignoring Event Match Quality.<\/strong> Meta provides an Event Match Quality score in Events Manager. A score below 6.0 means your server events aren&#8217;t matching well to Meta users. The fix is usually sending more user identifiers. Add phone number, or make sure the fbclid is being captured correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Delayed event transmission.<\/strong> Some implementations batch server events and send them hours later. Meta&#8217;s CAPI documentation recommends sending events within one hour of occurrence. Events sent more than 72 hours late are dropped entirely. Send events as close to real-time as possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Building a custom pipeline without monitoring.<\/strong> Server-side tracking requires infrastructure. Servers go down. APIs change their endpoints. SSL certificates expire. If you build a custom CAPI integration, you need monitoring and alerts. Otherwise, your tracking silently breaks and you don&#8217;t notice until your ad performance craters.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Server-Side Tracking and Privacy Law<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking doesn&#8217;t exempt you from privacy regulations. GDPR, CCPA, and other data protection laws apply to any personal data collection, regardless of whether the collection happens in the browser or on your server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GDPR (Europe)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Under GDPR, you need a lawful basis (typically consent or legitimate interest) to collect and process personal data. Sending hashed email addresses to Meta via CAPI is still processing personal data. Hashed PII is considered pseudonymous, not anonymous, under GDPR. You need consent for this.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The advantage of server-side tracking under GDPR is control. Because the data flows through your server, you can filter it. If a user declines consent via your cookie banner, you can suppress the server event entirely, or send it without user identifiers so the platform receives an anonymous conversion signal. This is harder to do with client-side pixels, which fire automatically when the page loads.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CCPA (California)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Under CCPA, consumers have the right to opt out of the sale or sharing of their personal information. Sending conversion data with user identifiers to an ad platform can qualify as &#8220;sharing&#8221; under CCPA&#8217;s broad definition. You need to honor opt-out requests and suppress user data transmission for users who have opted out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking gives you the infrastructure to do this cleanly. Your server checks the user&#8217;s consent status before deciding what data to include in the API call. Users who opted out get anonymous events (no email, no phone, no click ID). Users who consented get full-fidelity events.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Bottom Line on Privacy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking is neither more nor less compliant than client-side tracking by default. The difference is that it gives you more control over what data leaves your infrastructure. That control makes compliance easier to implement correctly, but you still have to implement it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Build vs Buy: When to Use a Platform Like Hyros<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1429\" src=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-scaled.png\" alt=\"Two figures: 17.8% lower cost per result with the Conversions API, and 20-50% more sales tracked versus ad platforms alone\" class=\"wp-image-3258\" srcset=\"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-scaled.png 2560w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-300x167.png 300w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-1024x572.png 1024w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-768x429.png 768w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-1536x857.png 1536w, https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-measured-impact-2048x1143.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">What server-side tracking measurably changes.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You have two options for server-side tracking: build your own pipeline or use a platform that handles it for you.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Building Your Own<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Building your own server-side tracking pipeline means setting up sGTM (server-side Google Tag Manager), writing custom API integrations for Meta CAPI, Google Enhanced Conversions, and TikTok Events API, and maintaining the infrastructure that runs it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The technical requirements:<br>\n&#8211; A cloud server or container (Google Cloud Run, AWS Lambda, or a dedicated VPS) to host sGTM or your custom code<br>\n&#8211; DNS configuration to route a subdomain (e.g., track.yourdomain.com) through your server for first-party context<br>\n&#8211; Custom code to capture click IDs, hash PII, construct payloads, and handle API errors<br>\n&#8211; Monitoring and alerting for when endpoints change or servers fail<br>\n&#8211; Ongoing maintenance as each platform updates their API versions<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This approach works for teams with dedicated engineering resources. If you have a developer who can own the integration and keep it running, building in-house gives you full control.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using a Platform<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Platforms like Hyros, Elevar, and Stape handle the server-side infrastructure for you. They provide pre-built integrations with major ad platforms, automatic event deduplication, and dashboards to verify data quality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hyros goes beyond basic server-side event forwarding. It builds an independent attribution layer on top of server-side tracking, using deterministic user matching (email, phone) to stitch user journeys across devices and platforms. According to Hyros, their platform tracks 20-50% more sales than ad platforms report on their own, a figure consistent with <a href=\"https:\/\/www.softailed.com\/blog\/hyros-review\" rel=\"noopener nofollow\">independent analysis by Softailed<\/a> showing server-side tracking recovers 18-40% more conversions versus browser-only methods. Most accounts I&#8217;ve reviewed are sitting in that 18-40% recovery range, meaning they&#8217;re making budget decisions on data that&#8217;s missing nearly a quarter of their actual conversions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The tradeoff is cost versus time. Building your own is cheaper in monthly fees but expensive in engineering hours and ongoing maintenance. A platform costs a monthly subscription but eliminates the development and DevOps overhead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Decision Framework<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Build your own if:<\/strong><br>\n&#8211; You have a dedicated developer or DevOps team<br>\n&#8211; You only need to send events to one or two platforms<br>\n&#8211; You want full control over the data pipeline<br>\n&#8211; Your business has low conversion volume (under 500\/month)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use a platform like Hyros if:<\/strong><br>\n&#8211; You spend $50,000+ per month on ads and need accurate cross-platform attribution<br>\n&#8211; You run ads across Meta, Google, TikTok, and other channels simultaneously<br>\n&#8211; You need independent attribution data that doesn&#8217;t rely on platform self-reporting<br>\n&#8211; You don&#8217;t have engineering bandwidth to build and maintain custom integrations<br>\n&#8211; You need phone call attribution tied back to specific ad clicks<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a comparison of <a href=\"https:\/\/hyros.com\/updates\/hyros-vs-triple-whale\" rel=\"noopener\">Hyros vs Triple Whale<\/a> and <a href=\"https:\/\/hyros.com\/updates\/hyros-vs-northbeam\" rel=\"noopener\">Hyros vs Northbeam<\/a>, see our dedicated comparison guides. For a general overview of how ad attribution works across all these tools, read <a href=\"https:\/\/hyros.com\/updates\/what-is-ad-attribution\" rel=\"noopener\">What Is Ad Attribution?<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hyros ships a server-side tracking layer out of the box, no GTM container to maintain. See how it compares to building your own. <a href=\"https:\/\/hyros.com\/demo\" rel=\"noopener\">Book a demo<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is server-side tracking legal under GDPR?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, server-side tracking is legal under GDPR, but it doesn&#8217;t exempt you from compliance requirements. You still need a lawful basis (consent or legitimate interest) for collecting and processing personal data. Hashed email addresses and phone numbers are pseudonymous data under GDPR, not anonymous data, so the regulation applies. The advantage of server-side tracking is that you control the data pipeline. You can suppress PII for users who decline consent and send only anonymous conversion signals. This level of control is harder to achieve with browser-based pixels that fire automatically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does server-side tracking fix iOS 14.5 tracking issues?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Server-side tracking reduces the data loss caused by iOS 14.5, but it doesn&#8217;t eliminate it entirely. ATT affects in-app tracking and cross-app measurement, which server-side tracking can&#8217;t fully replace. What server-side tracking does is bypass Safari&#8217;s ITP cookie restrictions, recover conversions that the Pixel misses when cookies expire, and send first-party data that helps Meta match conversions it would otherwise lose. Client-side pixels lose 15-40% of conversions on iOS Safari due to ITP. Server-side tracking recovers most of that gap. But users who opted out of ATT still have limited cross-app tracking, and SKAdNetwork attribution for iOS app installs remains aggregated and delayed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I still need the Meta Pixel if I use Conversions API?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Meta recommends running both the Pixel and CAPI together, not replacing one with the other. The Pixel captures browser-side signals like pageview behavior, scroll depth, and time-on-site. CAPI captures the high-value conversion events (purchases, leads) server-side. Running both with event deduplication (matching event IDs) gives Meta the most complete dataset for optimization. Per Meta&#8217;s April 15 2026 announcement, advertisers with a Conversions API setup for web events saw an average 17.8% lower cost per result compared to those without CAPI (<a href=\"https:\/\/www.facebook.com\/business\/news\/pixel-conversionsapi-updates\" rel=\"noopener nofollow\">Meta for Business<\/a>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is event deduplication and why does it matter?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Event deduplication is the process of preventing the same conversion from being counted twice when you send it from both the browser (Pixel) and the server (CAPI). You achieve this by assigning a unique <code>event_id<\/code> to each conversion event and including that same ID in both the Pixel fire and the CAPI POST request. When Meta receives two Purchase events with the same <code>event_id<\/code>, it counts them as one conversion. Without deduplication, every conversion gets double-counted. Your reported ROAS appears twice as high as reality. Your CPA appears half of what it actually is. You make budget decisions based on numbers that are fiction. Always implement deduplication when running Pixel and CAPI simultaneously.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How much does server-side tracking cost?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cost depends on whether you build or buy. Building your own sGTM setup on Google Cloud typically costs $50-150\/month for the server infrastructure, plus the engineering time to build, test, and maintain the integrations. For a custom CAPI implementation without sGTM, costs are similar: server hosting plus development hours. Platform solutions vary. Stape (sGTM hosting) starts around $20\/month for low volume. Elevar starts around $200\/month for Shopify-focused implementations. Hyros pricing starts at $230\/month for paid traffic tracking, scaling up based on ad spend and features. The right comparison isn&#8217;t just the monthly cost but the total cost including the developer time you save and the additional revenue from more accurate attribution data. An <a href=\"https:\/\/checkthat.ai\/brands\/hyros\/reviews\" rel=\"noopener nofollow\">independent review by CheckThat.ai<\/a> aggregating 601 Trustpilot reviews found user-reported tracking improvements of 29-33% more conversions versus native platform reporting, gains that typically far exceed the platform cost for businesses spending $50,000+ per month on ads.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can server-side tracking work with Shopify?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Shopify supports server-side tracking through multiple paths. You can use Shopify&#8217;s built-in webhooks to capture order events and forward them to Meta CAPI or Google Enhanced Conversions via a custom app or middleware. Platforms like Elevar and Hyros offer pre-built Shopify integrations that handle this automatically. For Shopify-specific attribution strategies, see our guide on <a href=\"https:\/\/hyros.com\/updates\/shopify-attribution\" rel=\"noopener\">Shopify attribution<\/a>.<\/p>\n\n\n\n<div class=\"standalone-summary\"><h2>Standalone Summary<\/h2>\n<p>Server-side tracking sends conversion events from your web server directly to ad platforms via API, bypassing the browser-based pixel pipeline that&#8217;s now degraded by ad blockers, Safari ITP, and iOS 14.5 App Tracking Transparency. Client-side pixels lose 15-40% of conversions on iOS Safari alone. Server-side tracking recovers most of that lost data by making first-party HTTP requests that aren&#8217;t subject to browser restrictions. Meta&#8217;s Conversions API, Google&#8217;s Enhanced Conversions, and TikTok&#8217;s Events API are the three primary server-side endpoints. Per Meta&#8217;s April 15 2026 announcement, advertisers with a Conversions API setup for web events saw an average 17.8% lower cost per result compared to advertisers without CAPI. Implementation requires capturing click IDs, hashing user identifiers, constructing API payloads, and managing deduplication between client and server events. Businesses can build custom integrations or use platforms like Hyros, which provides server-side tracking with independent attribution across channels and reports tracking 20-50% more sales than ad platforms alone.<\/p>\n<hr>\n<p><strong>See how Hyros tracks every ad dollar across every channel<\/strong> <a href=\"https:\/\/hyros.com\/demo\" rel=\"noopener\">Book a demo<\/a><\/p>\n<hr><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Related in This Series<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Silo: Ad Attribution Fundamentals<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More from the Ad Attribution Fundamentals series:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/hyros.com\/updates\/ad-tracking-vs-analytics\" rel=\"noopener\">Ad Tracking vs Analytics: What&#8217;s the Difference?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hyros.com\/updates\/ios-14-attribution\" rel=\"noopener\">How iOS 14.5 Changed Ad Attribution Forever<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hyros.com\/updates\/shopify-attribution\" rel=\"noopener\">Attribution for Shopify Stores: What Actually Works<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hyros.com\/updates\/info-product-tracking\" rel=\"noopener\">How Info-Product Businesses Track Ad Revenue<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also explore:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/hyros.com\/updates\/hyros-vs-triple-whale\" rel=\"noopener\">Hyros vs Triple Whale: Ad Attribution Comparison (2026)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/hyros.com\/updates\/best-attribution-tools\" rel=\"noopener\">The 7 Best Ad Attribution Tools in 2026 (Honest Breakdown)<\/a><\/li>\n<\/ul>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"headline\": \"Server-Side Tracking: The Complete Guide\",\n      \"description\": \"Server-side tracking sends conversion events from your server to ad platforms via API, bypassing browser limits. Architecture, setup, build vs buy.\",\n      \"author\": {\n        \"@id\": \"https:\/\/hyros.com\/#alex-becker\"\n      },\n      \"datePublished\": \"2026-05-20\",\n      \"dateModified\": \"2026-05-20\",\n      \"publisher\": {\n        \"@id\": \"https:\/\/hyros.com\/#organization\"\n      },\n      \"mainEntityOfPage\": {\n        \"@type\": \"WebPage\",\n        \"@id\": \"https:\/\/hyros.com\/updates\/server-side-tracking\"\n      },\n      \"image\": \"https:\/\/hyros.com\/images\/server-side-tracking-guide.png\",\n      \"keywords\": [\n        \"server-side tracking\",\n        \"server-side attribution\",\n        \"CAPI\",\n        \"conversions API\",\n        \"cookieless tracking\",\n        \"iOS 14 tracking fix\"\n      ]\n    },\n    {\n      \"@type\": \"HowTo\",\n      \"name\": \"How to Set Up Server-Side Tracking with Meta Conversions API\",\n      \"description\": \"Step-by-step guide to implementing server-side tracking using Meta's Conversions API.\",\n      \"step\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 1,\n          \"name\": \"Create a CAPI access token\",\n          \"text\": \"Go to Meta Events Manager, select your Pixel, open Settings, and generate a Conversions API access token. Store it securely.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 2,\n          \"name\": \"Capture click IDs on landing pages\",\n          \"text\": \"Capture the fbclid parameter from Meta ad URLs and store it in a first-party cookie or your database for use at conversion time. Also capture gclid for Google and ttclid for TikTok.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 3,\n          \"name\": \"Collect user identifiers at conversion\",\n          \"text\": \"When a customer completes a purchase or submits a lead form, collect their email and phone number. Hash these values using SHA-256 before sending to any ad platform.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 4,\n          \"name\": \"Build the server-side event payload\",\n          \"text\": \"Construct a JSON payload matching Meta's CAPI specification, including event name, event time, hashed user data, click IDs, and custom data like value and currency.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 5,\n          \"name\": \"Send the event via HTTPS POST\",\n          \"text\": \"Send the payload to https:\/\/graph.facebook.com\/v19.0\/{pixel_id}\/events with your access token. Implement error handling and retry logic.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 6,\n          \"name\": \"Verify event matching and set up deduplication\",\n          \"text\": \"Check your Event Match Quality score in Meta Events Manager. Set matching event_id values on both browser Pixel events and server CAPI events to prevent double-counting.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Is server-side tracking legal under GDPR?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Yes, server-side tracking is legal under GDPR, but it does not exempt you from compliance requirements. You still need a lawful basis for collecting and processing personal data. Hashed email addresses and phone numbers are pseudonymous data under GDPR, not anonymous data. The advantage is that you control the data pipeline and can suppress PII for users who decline consent.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Does server-side tracking fix iOS 14.5 tracking issues?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Server-side tracking reduces the data loss caused by iOS 14.5 but does not eliminate it entirely. It bypasses Safari ITP cookie restrictions and recovers conversions the Pixel misses when cookies expire. Client-side pixels lose 15-40% of conversions on iOS Safari. Server-side tracking recovers most of that gap, but users who opted out of ATT still have limited cross-app tracking.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Do I still need the Meta Pixel if I use Conversions API?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Yes. Meta recommends running both the Pixel and CAPI together with event deduplication. The Pixel captures browser-side signals while CAPI captures high-value conversion events server-side. Per Meta's April 15 2026 announcement, advertisers with a CAPI setup for web events saw an average 17.8% lower cost per result compared to those without (Meta for Business).\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"What is event deduplication and why does it matter?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Event deduplication prevents the same conversion from being counted twice when sent from both the browser Pixel and server CAPI. You assign a unique event_id to each event and include it in both transmissions. Without deduplication, every conversion gets double-counted, making your ROAS appear twice as high as reality.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"How much does server-side tracking cost?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Building your own sGTM setup costs $50-150\/month for server infrastructure plus engineering time. Platform solutions range from $20\/month for basic sGTM hosting to $230+\/month for full attribution platforms like Hyros. The right comparison includes developer time saved and additional revenue from more accurate attribution data.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Can server-side tracking work with Shopify?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Yes. Shopify supports server-side tracking through webhooks that capture order events and forward them to Meta CAPI or Google Enhanced Conversions. Platforms like Elevar and Hyros offer pre-built Shopify integrations that handle this automatically.\"\n          }\n        }\n      ]\n    },\n    {\n      \"@type\": \"BreadcrumbList\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 1,\n          \"name\": \"Home\",\n          \"item\": \"https:\/\/hyros.com\"\n        },\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 2,\n          \"name\": \"Learn\",\n          \"item\": \"https:\/\/hyros.com\/updates\"\n        },\n        {\n          \"@type\": \"ListItem\",\n          \"position\": 3,\n          \"name\": \"Server-Side Tracking: The Complete Guide\",\n          \"item\": \"https:\/\/hyros.com\/updates\/server-side-tracking\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"Organization\",\n      \"@id\": \"https:\/\/hyros.com\/#organization\",\n      \"name\": \"Hyros\",\n      \"url\": \"https:\/\/hyros.com\",\n      \"description\": \"Ad tracking and attribution platform providing server-side tracking, cross-device attribution, and independent revenue reporting for digital advertisers.\",\n      \"sameAs\": [\n        \"https:\/\/www.linkedin.com\/company\/hyros\"\n      ]\n    },\n    {\n      \"@type\": \"Person\",\n      \"@id\": \"https:\/\/hyros.com\/#alex-becker\",\n      \"name\": \"Alex Becker\",\n      \"jobTitle\": \"Founder and CEO\",\n      \"worksFor\": {\n        \"@id\": \"https:\/\/hyros.com\/#organization\"\n      },\n      \"sameAs\": [\n        \"https:\/\/www.linkedin.com\/in\/alexbecker\",\n        \"https:\/\/x.com\/zssbecker\",\n        \"https:\/\/www.youtube.com\/channel\/UCKQvGU-qtjEthINeViNbn6A\",\n        \"https:\/\/www.youtube.com\/@alexbeckerbusiness\"\n      ],\n      \"knowsAbout\": [\n        \"ad attribution\",\n        \"server-side tracking\",\n        \"ROAS optimization\",\n        \"performance marketing\",\n        \"DTC marketing\",\n        \"SaaS growth\"\n      ]\n    },\n    {\n      \"@type\": \"SpeakableSpecification\",\n      \"cssSelector\": [\n        \".tldr\",\n        \".standalone-summary\"\n      ],\n      \"xpath\": [\n        \"\/html\/body\/\/*[contains(@class, 'tldr')]\",\n        \"\/html\/body\/\/*[contains(@class, 'standalone-summary')]\"\n      ]\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Server-side tracking isn&#8217;t a &#8220;nice-to-have technical upgrade.&#8221; It&#8217;s the difference between guessing and knowing. If your tracking lives in the browser, you&#8217;re flying blind on a significant chunk of your traffic post-iOS 14, and every budget decision you make on top of that incomplete data is compounding the damage. I built the attribution infrastructure at [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":3254,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[45,44],"tags":[87,88,89,90,56,86],"class_list":["post-3246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ad-attribution","category-hyros","tag-capi","tag-conversions-api","tag-cookieless-tracking","tag-ios-14-tracking-fix","tag-server-side-attribution","tag-server-side-tracking"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Gregory\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/hyros.com\/updates\/server-side-tracking\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"HYROS\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Server-Side Tracking: The Complete Guide - HYROS\" \/>\n\t\t<meta property=\"og:description\" content=\"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/hyros.com\/updates\/server-side-tracking\/\" \/>\n\t\t<meta property=\"article:tag\" content=\"capi\" \/>\n\t\t<meta property=\"article:tag\" content=\"conversions api\" \/>\n\t\t<meta property=\"article:tag\" content=\"cookieless tracking\" \/>\n\t\t<meta property=\"article:tag\" content=\"ios 14 tracking fix\" \/>\n\t\t<meta property=\"article:tag\" content=\"server-side attribution\" \/>\n\t\t<meta property=\"article:tag\" content=\"server-side tracking\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-20T15:54:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-03T02:38:50+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Server-Side Tracking: The Complete Guide - HYROS\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.\" \/>\n\t\t<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t\t<meta name=\"twitter:data1\" content=\"Gregory\" \/>\n\t\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t\t<meta name=\"twitter:data2\" content=\"22 minutes\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#article\",\"name\":\"Server-Side Tracking: The Complete Guide - HYROS\",\"headline\":\"Server-Side Tracking: The Complete Guide\",\"author\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/author\\\/gregorydigitalrooftop-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/server-side-tracking-cover-scaled.png\",\"width\":2560,\"height\":1429,\"caption\":\"Technical schematic cover for Server-Side Tracking: The Complete Guide, showing a browser to server to ad platform API data path\"},\"datePublished\":\"2026-05-20T15:54:38+00:00\",\"dateModified\":\"2026-08-03T02:38:50+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#webpage\"},\"articleSection\":\"Ad Attribution, Hyros, CAPI, conversions API, cookieless tracking, iOS 14 tracking fix, server-side attribution, server-side tracking\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hyros.com\\\/updates\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/category\\\/hyros\\\/#listItem\",\"name\":\"Hyros\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/category\\\/hyros\\\/#listItem\",\"position\":2,\"name\":\"Hyros\",\"item\":\"https:\\\/\\\/hyros.com\\\/updates\\\/category\\\/hyros\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#listItem\",\"name\":\"Server-Side Tracking: The Complete Guide\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#listItem\",\"position\":3,\"name\":\"Server-Side Tracking: The Complete Guide\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/category\\\/hyros\\\/#listItem\",\"name\":\"Hyros\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/#organization\",\"name\":\"HYROS\",\"description\":\"Blog\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/author\\\/gregorydigitalrooftop-com\\\/#author\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/author\\\/gregorydigitalrooftop-com\\\/\",\"name\":\"Gregory\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#authorImage\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/Screen-Shot-2020-08-05-at-5.19.03-AM-150x150.png\",\"width\":96,\"height\":96,\"caption\":\"Gregory\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#webpage\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/\",\"name\":\"Server-Side Tracking: The Complete Guide - HYROS\",\"description\":\"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/author\\\/gregorydigitalrooftop-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/author\\\/gregorydigitalrooftop-com\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/server-side-tracking-cover-scaled.png\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#mainImage\",\"width\":2560,\"height\":1429,\"caption\":\"Technical schematic cover for Server-Side Tracking: The Complete Guide, showing a browser to server to ad platform API data path\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/server-side-tracking\\\/#mainImage\"},\"datePublished\":\"2026-05-20T15:54:38+00:00\",\"dateModified\":\"2026-08-03T02:38:50+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/#website\",\"url\":\"https:\\\/\\\/hyros.com\\\/updates\\\/\",\"name\":\"HYROS\",\"description\":\"Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/hyros.com\\\/updates\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Server-Side Tracking: The Complete Guide - HYROS","description":"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.","canonical_url":"https:\/\/hyros.com\/updates\/server-side-tracking\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#article","name":"Server-Side Tracking: The Complete Guide - HYROS","headline":"Server-Side Tracking: The Complete Guide","author":{"@id":"https:\/\/hyros.com\/updates\/author\/gregorydigitalrooftop-com\/#author"},"publisher":{"@id":"https:\/\/hyros.com\/updates\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-cover-scaled.png","width":2560,"height":1429,"caption":"Technical schematic cover for Server-Side Tracking: The Complete Guide, showing a browser to server to ad platform API data path"},"datePublished":"2026-05-20T15:54:38+00:00","dateModified":"2026-08-03T02:38:50+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#webpage"},"isPartOf":{"@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#webpage"},"articleSection":"Ad Attribution, Hyros, CAPI, conversions API, cookieless tracking, iOS 14 tracking fix, server-side attribution, server-side tracking"},{"@type":"BreadcrumbList","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates#listItem","position":1,"name":"Home","item":"https:\/\/hyros.com\/updates","nextItem":{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates\/category\/hyros\/#listItem","name":"Hyros"}},{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates\/category\/hyros\/#listItem","position":2,"name":"Hyros","item":"https:\/\/hyros.com\/updates\/category\/hyros\/","nextItem":{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#listItem","name":"Server-Side Tracking: The Complete Guide"},"previousItem":{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#listItem","position":3,"name":"Server-Side Tracking: The Complete Guide","previousItem":{"@type":"ListItem","@id":"https:\/\/hyros.com\/updates\/category\/hyros\/#listItem","name":"Hyros"}}]},{"@type":"Organization","@id":"https:\/\/hyros.com\/updates\/#organization","name":"HYROS","description":"Blog","url":"https:\/\/hyros.com\/updates\/"},{"@type":"Person","@id":"https:\/\/hyros.com\/updates\/author\/gregorydigitalrooftop-com\/#author","url":"https:\/\/hyros.com\/updates\/author\/gregorydigitalrooftop-com\/","name":"Gregory","image":{"@type":"ImageObject","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#authorImage","url":"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2020\/08\/Screen-Shot-2020-08-05-at-5.19.03-AM-150x150.png","width":96,"height":96,"caption":"Gregory"}},{"@type":"WebPage","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#webpage","url":"https:\/\/hyros.com\/updates\/server-side-tracking\/","name":"Server-Side Tracking: The Complete Guide - HYROS","description":"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/hyros.com\/updates\/#website"},"breadcrumb":{"@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#breadcrumblist"},"author":{"@id":"https:\/\/hyros.com\/updates\/author\/gregorydigitalrooftop-com\/#author"},"creator":{"@id":"https:\/\/hyros.com\/updates\/author\/gregorydigitalrooftop-com\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/hyros.com\/updates\/wp-content\/uploads\/2026\/08\/server-side-tracking-cover-scaled.png","@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#mainImage","width":2560,"height":1429,"caption":"Technical schematic cover for Server-Side Tracking: The Complete Guide, showing a browser to server to ad platform API data path"},"primaryImageOfPage":{"@id":"https:\/\/hyros.com\/updates\/server-side-tracking\/#mainImage"},"datePublished":"2026-05-20T15:54:38+00:00","dateModified":"2026-08-03T02:38:50+00:00"},{"@type":"WebSite","@id":"https:\/\/hyros.com\/updates\/#website","url":"https:\/\/hyros.com\/updates\/","name":"HYROS","description":"Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/hyros.com\/updates\/#organization"}}]},"og:locale":"en_US","og:site_name":"HYROS","og:type":"article","og:title":"Server-Side Tracking: The Complete Guide - HYROS","og:description":"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.","og:url":"https:\/\/hyros.com\/updates\/server-side-tracking\/","article:tag":["capi","conversions api","cookieless tracking","ios 14 tracking fix","server-side attribution","server-side tracking"],"article:published_time":"2026-05-20T15:54:38+00:00","article:modified_time":"2026-08-03T02:38:50+00:00","twitter:card":"summary_large_image","twitter:title":"Server-Side Tracking: The Complete Guide - HYROS","twitter:description":"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.","twitter:label1":"Written by","twitter:data1":"Gregory","twitter:label2":"Est. reading time","twitter:data2":"22 minutes"},"aioseo_meta_data":{"post_id":"3246","title":null,"description":"Server-side tracking sends conversions from your server to ad platforms via API, bypassing ad blockers and Safari ITP. How it works and how to set it up.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":"https:\/\/hyros.com\/updates\/server-side-tracking\/","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-08-02 05:51:04","updated":"2026-08-03 02:47:32","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/hyros.com\/updates\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/hyros.com\/updates\/category\/hyros\/\" title=\"Hyros\">Hyros<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tServer-Side Tracking: The Complete Guide\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/hyros.com\/updates"},{"label":"Hyros","link":"https:\/\/hyros.com\/updates\/category\/hyros\/"},{"label":"Server-Side Tracking: The Complete Guide","link":"https:\/\/hyros.com\/updates\/server-side-tracking\/"}],"_links":{"self":[{"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/posts\/3246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/comments?post=3246"}],"version-history":[{"count":3,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/posts\/3246\/revisions"}],"predecessor-version":[{"id":3362,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/posts\/3246\/revisions\/3362"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/media\/3254"}],"wp:attachment":[{"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/media?parent=3246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/categories?post=3246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hyros.com\/updates\/wp-json\/wp\/v2\/tags?post=3246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}