Free Setup · No Code · Under 20 Minutes · Meta + Google + TikTok

Recover 20–40% of invisible
Shopify conversions — free

Your Shopify dashboard shows 68 orders. Meta shows 41. Google Ads shows 29. TikTok shows 18. The gap is real revenue your ad algorithms are optimising blind on. This guide fixes it free in under 20 minutes using Make.com — no code, no app, no agency.

Meta CAPI Google Enhanced Conversions TikTok Events API
20–40%Conversions recovered
19%TikTok avg lift
£0Cost vs £500/mo Elevar
18 minSetup time
TL;DR — 6 Key Points
01Server-side tracking sends purchase events from Shopify's backend directly to Meta, Google and TikTok — bypassing browsers, ad blockers and iOS ATT.
02iOS 17/18 App Tracking Transparency and Safari ITP now block 30–40% of browser pixel events. Server-side is the only reliable fix.
03The Make.com webhook method costs £0/month. Elevar charges £400–£2,000/mo for the same result. Triple Whale starts at £100/mo.
04Setup takes 18 minutes: one Shopify webhook, three Make.com HTTP modules, zero code. No developer needed.
05Always run browser pixel AND server events simultaneously. Use matching event_id values for deduplication so you count one purchase, not two.
06TikTok requires CompletePayment not “Purchase”. Include hashed email, phone, IP and user agent to achieve Event Match Quality score 8+.
DEFINITION

What is Shopify Server-Side Tracking?

Server-side tracking (also called Conversions API, server-to-server tracking, or S2S tracking) sends conversion events directly from your web server to advertising platforms — completely bypassing the customer’s browser. Instead of relying on a JavaScript pixel in the browser to fire when a purchase completes, a webhook fires from Shopify’s backend the moment payment is confirmed, routing event data directly to Meta’s Conversions API, Google’s Enhanced Conversions endpoint, and TikTok’s Events API.

The key distinction is where the event originates. A browser pixel depends on the customer’s device: their browser settings, installed extensions, network conditions, and whether they accepted your cookie banner. A server event originates from Shopify’s infrastructure — it fires regardless of what the customer’s browser does, making it immune to ad blockers, iOS privacy restrictions, and Safari’s Intelligent Tracking Prevention.

Server-side vs browser pixel: the architecture

✕ Browser pixel only
1Customer completes purchase
2Thank-you page loads in browser
3Pixel JavaScript tries to fire
4Ad blocker / ITP / ATT blocks it
5Conversion never recorded
✓ Server-side tracking
1Customer completes purchase
2Shopify backend fires webhook instantly
3Make.com receives full order payload
4HTTP module POSTs to Meta/Google/TikTok
5Conversion recorded every time

Server-side tracking does not replace your browser pixel — it runs in parallel with it. The pixel handles upper-funnel events (ViewContent, AddToCart, InitiateCheckout) that server webhooks cannot capture since they only fire on confirmed payment. Together, the two methods give each ad platform the most complete signal possible.

WHY IT MATTERS IN 2026

Why Server-Side Tracking Is Non-Negotiable in 2026

The browser tracking environment has degraded dramatically since 2021 and continues to worsen. iOS 14.5 introduced App Tracking Transparency (ATT), requiring explicit opt-in for cross-app tracking — approximately 62% of iOS users decline. iOS 17 added Link Tracking Protection, which strips UTM and click-ID parameters from URLs in Safari Private Browsing and Mail. Safari’s Intelligent Tracking Prevention deletes first-party cookies after 7 days and blocks all third-party cookies. Firefox Enhanced Tracking Protection blocks third-party cookies by default. Chrome’s Privacy Sandbox continues its phased rollout despite delays.

The cumulative effect: on a typical Shopify store with normal UK or US traffic mix, 30–40% of actual purchases are invisible to your browser pixel. Your ad platforms are optimising delivery on incomplete data — which means higher CPAs, suppressed ROAS, and budget allocated to audiences that look unprofitable but aren’t.

How much data are you actually losing?

Estimated browser pixel loss by platform (2026 UK/US traffic mix)
Meta
~35%
Google
~28%
TikTok
~22%
iOS 17/18 specific impact

Safari’s Link Tracking Protection in iOS 17+ strips fbclid and gclid parameters from URLs, breaking click-attribution for users who tap your ads in Safari. Server-side CAPI with hashed email matching is the only way to attribute these conversions. If your store has more than 40% iOS traffic, this alone justifies implementing CAPI.

Server-side tracking does not recover every lost event — it recovers the events that were lost due to browser restrictions, not events from users who genuinely did not convert. The 20–40% recovery figure represents real purchases that happened but were invisible to your pixel.

PREREQUISITES

What You Need Before Starting

You need four things before you begin. All are free. None require a developer.

  • A Make.com account — free plan covers 1,000 operations/month, sufficient for stores up to ~300 orders/month. Sign up free here.
  • Meta Pixel ID and Conversions API Access Token — found in Meta Events Manager → your pixel → Settings → Conversions API → Generate access token.
  • Google Ads Conversion ID and label — found in Google Ads → Tools → Measurement → Conversions → your purchase conversion → Tag setup.
  • TikTok Pixel ID and Events API Access Token — found in TikTok Events Manager → your pixel → Settings → Events API → Generate access token.

Keep all four credentials in a secure note — you will paste them into Make.com HTTP modules during setup. Never share your access tokens publicly or commit them to GitHub.

7-STEP SETUP

Complete Setup: The Make.com Webhook Method

This method fires directly from Shopify’s backend on payment confirmation — no browser dependency, no thank-you page required, no Shopify app to install. Total time: 18 minutes.

1
Create your free Make.com account
Sign up at Make.com — no credit card required. The free plan gives you 1,000 operations/month. One Shopify order = 3 operations (one per platform), so the free plan covers ~330 orders/month. Create a new scenario and name it “Shopify Server-Side Tracking”.
⏱ 2 minutes
2
Add a Webhooks trigger module
In your new scenario, click the empty module circle. Search for WebhooksCustom webhook. Click Add, name it “Shopify order webhook”, save. Make.com generates a unique webhook URL — copy it now. This URL is your secure endpoint that Shopify will POST order data to.
⏱ 2 minutes
3
Add the Shopify Order Payment webhook
In Shopify Admin → Settings → Notifications → Webhooks, click Create webhook. Set:
Event: Order payment • Format: JSON • URL: paste your Make.com webhook URL Save. Shopify will POST the full order payload to Make.com every time a payment is confirmed — not on order creation, not on fulfilment, on confirmed payment only.
⏱ 2 minutes
4
META Add Meta CAPI HTTP module
Add an HTTP → Make a request module. Configure:
URL: https://graph.facebook.com/v18.0/YOUR_PIXEL_ID/events?access_token=YOUR_TOKEN
Method: POST • Body type: Raw • Content type: JSON
In the body, map: event_name = Purchase, event_id = order ID, event_time = Unix timestamp, value = order total, currency = currency code. In user_data: SHA-256 hash email and phone before sending.
⏱ 5 minutes
5
GOOGLE Add Google Enhanced Conversions module
Add a second HTTP → Make a request module branching from the same webhook trigger. Google Enhanced Conversions matches server data to logged-in Google accounts using hashed user data. Send SHA-256 hashed email, phone, first_name, last_name alongside the conversion value and order ID. This improves match rate significantly above email-only matching.
⏱ 4 minutes
6
TIKTOK Add TikTok Events API module
Add a third HTTP module. POST to https://business-api.tiktok.com/open_api/v1.3/event/track/.
Critical: use event_name = CompletePayment, not “Purchase”. TikTok’s algorithm only recognises CompletePayment as a purchase event. Include hashed email, hashed phone, customer IP address, and user agent from the Shopify order payload. These four signals together drive Event Match Quality above 8/10.
⏱ 4 minutes
7
Activate and verify all three platforms
Switch the Make.com scenario On. Place a test order on your store. Check within 60 seconds:
Meta: Events Manager → Test Events → look for Purchase, source: server
Google: Ads → Conversions → Diagnostics → Enhanced conversions status
TikTok: Events Manager → Test Events → look for CompletePayment
All three should show green. If any shows yellow, see the Troubleshooting section below.
⏱ 3 minutes

Ready to start? Create your free Make.com account

No credit card. Free plan covers 330 orders/month. Setup takes 18 minutes.

Start Free →
META CAPI

Meta Conversions API: Complete Configuration

Meta’s Conversions API (CAPI) is the server-side counterpart to the Meta Pixel. It was introduced after Apple’s iOS 14.5 ATT update and has since become Meta’s primary recommended tracking method for e-commerce. When your browser pixel fires and your CAPI event fires for the same purchase, Meta deduplicates them using the event_id field — so you see one conversion, not two.

The exact Meta CAPI payload

Every field below improves your Event Match Quality score. The more fields you send, the better Meta can match the event to a real user in its database and attribute the conversion correctly.

Full Meta CAPI payload structure

Endpoint: POST https://graph.facebook.com/v18.0/{PIXEL_ID}/events?access_token={TOKEN}

Required: event_name Purchase • event_time Unix timestamp • action_source website • event_id Shopify order ID (must match browser pixel)

User data (all SHA-256 hashed): em email • ph phone • fn first name • ln last name • ct city • zp zip code • country 2-letter code • client_ip_address raw IP • client_user_agent raw UA

Custom data: currencyvalueorder_idcontent_ids array of SKUs • num_items quantity

Deduplication: the most important step

Without deduplication, every purchase generates two “Purchase” events in Meta Events Manager — one from your browser pixel and one from CAPI. This inflates your reported ROAS and causes Meta’s algorithm to optimise on false data. The fix is simple: set the same event_id value in both events. In your browser pixel, pass eventID: '{{order.id}}' in the Purchase event parameters. In Make.com, pass the same order ID as event_id. Meta matches them and counts one conversion.

Testing Meta CAPI

In Meta Events Manager, navigate to Test Events. You will see a Test Event Code. Add this as a test_event_code parameter in your Make.com HTTP module during testing. Place a real test order. Within 60 seconds you should see a Purchase event appear with source labelled “Server”. Once confirmed, remove the test_event_code from your production scenario.

GOOGLE ENHANCED CONVERSIONS

Google Enhanced Conversions: Setup & Verification

Google Enhanced Conversions improves conversion measurement accuracy by sending hashed first-party customer data alongside your conversion tags. When a customer who is logged into a Google account makes a purchase on your store, Google can match the hashed data to their Google profile and attribute the conversion even if no cookie was set — including cross-device conversions where the customer first clicked your ad on desktop but purchased on mobile.

There are two implementation approaches: via Google Tag Manager Server-Side container, or via the Google Ads Enhanced Conversions for Web feature. For Make.com users, the simplest approach is to configure Enhanced Conversions for Web in Google Ads and send the hashed data in your existing conversion tag, then complement this with an order-level upload via the Make.com HTTP module.

Data fields that improve Google match rate

High impact
Email (SHA-256)
Primary match signal. Must be lowercase, trimmed, then hashed.
High impact
Phone (SHA-256)
E.164 format (+447911123456) then hashed. Significantly improves mobile attribution.
Medium impact
First + Last Name
Lowercase, trimmed, SHA-256 hashed. Improves match for users without email history.
Medium impact
Postal address
Street, city, postal code, country. Useful for cross-device attribution.
SHA-256 hashing in Make.com

In Make.com, use the built-in sha256(lowercase(trim(email))) function to hash customer data. Apply this to every user data field before sending. Never send raw PII to any advertising platform — all platforms require SHA-256 hashing as a condition of their API terms.

Verifying Google Enhanced Conversions

In Google Ads, navigate to Tools → Measurement → Conversions. Click your purchase conversion action, then Diagnostics. The Enhanced conversions tab shows your match rate percentage. A match rate above 40% is good; above 60% is excellent. If your rate is below 20%, check that you are hashing email correctly (lowercase and trimmed before hashing) and that phone numbers are in E.164 format.

TIKTOK EVENTS API

TikTok Events API: Maximising Event Match Quality

TikTok’s Events API uses an Event Match Quality (EMQ) score to measure how well your server events can be matched to TikTok users. Scores range from 0–10. A score above 7 is considered good; above 9 is excellent. The EMQ score directly affects TikTok’s ability to attribute conversions and optimise delivery — a higher score means more conversions attributed and better ROAS.

The single most important difference between TikTok and Meta/Google: TikTok requires the event name CompletePayment, not “Purchase”. If you send “Purchase” to TikTok’s Events API, it will appear in your Events Manager but will not be used for purchase campaign optimisation. This is the most common TikTok setup mistake.

TikTok EMQ signal hierarchy

Critical (+3 EMQ)
Email (SHA-256)
Strongest matching signal. Send as lowercase SHA-256 hash.
Critical (+3 EMQ)
Phone (SHA-256)
E.164 format, then SHA-256. Essential for mobile-first TikTok audience.
High (+2 EMQ)
External ID
Your internal customer ID from Shopify. Hashed SHA-256.
Medium (+1 EMQ)
IP + User Agent
Raw IP address and full user agent string. Send unhashed from Shopify order payload.
TikTok API endpoint

POST https://business-api.tiktok.com/open_api/v1.3/event/track/
Headers: Access-Token: YOUR_TOKENContent-Type: application/json
Required body fields: pixel_codeevent CompletePayment • timestamp ISO 8601 • event_id order ID • context.user with hashed signals • context.ip • context.user_agent • properties.currency • properties.value

Sending all four high-impact signals (email, phone, external_id, IP/UA) typically achieves an EMQ score of 8–9/10. TikTok’s own published data shows that stores achieving EMQ 7+ see a 19% average increase in attributed events compared to browser-pixel-only measurement. Check your EMQ score in TikTok Events Manager → your pixel → Overview → Event Match Quality.

FREE VS PAID COMPARISON

Make.com Free vs Elevar vs Triple Whale vs Analyzify

Server-side tracking is a solved problem. The question is whether you need to pay £400–2,000/month for a managed solution or whether the free Make.com method gives you equivalent tracking quality. Here is the honest comparison.

SolutionCost/monthPlatformsSetupReliabilitySupport
Make.com (this guide)£0Meta + Google + TikTok18 min, no code✓ ExcellentCommunity + this guide
Elevar£400–2,000Meta + Google + TikTok + moreManaged onboarding✓ ExcellentDedicated account manager
Triple Whale£100–400Meta + Google + TikTokShopify app install✓ GoodEmail + chat
Analyzify£300–700Google Analytics 4 focusedManaged setup✓ GoodDedicated support
Shopify native CAPI£0Meta onlySettings toggle✗ Partial (browser-dependent)Shopify Help Centre

The tracking quality difference between Make.com and paid solutions like Elevar is minimal for stores sending the same data fields. Elevar’s premium justifies itself primarily through managed GTM setup, data layer configuration, and attribution reporting dashboards — not through superior API access. Both hit the same Meta CAPI and TikTok Events API endpoints with the same payload structure. The key advantage of paid solutions is that they handle edge cases automatically (order edits, refunds, subscription renewals). If your store processes over 1,000 orders/month, Make.com’s paid plan at £9/month is still dramatically cheaper than any managed alternative.

Our recommendation: Start with Make.com free. If you grow to 300+ daily orders or need refund/edit tracking and multi-currency handling, evaluate Elevar at that point. Until then, the Make.com method gives you 95% of the tracking quality at 0% of the cost.

TROUBLESHOOTING

Troubleshooting Common Server-Side Tracking Issues

Events not appearing in Meta Events Manager

Check in this order: (1) Is your Make.com scenario switched On? Scenarios default to Off. (2) Did you place a test order on a published product, not a draft? Shopify’s Order payment webhook only fires for real checkout orders, not test orders placed via the Shopify admin. (3) Is your access token correct and unexpired? Meta access tokens generated via Events Manager do not expire, but tokens generated via the Graph API Explorer expire after one hour. (4) Is your Pixel ID correct? The Pixel ID in your Make.com URL must match the pixel you are viewing in Events Manager.

Double-counting conversions (seeing 2x purchases)

This means deduplication is not working. Both your browser pixel and CAPI are firing but with different event_id values. Fix: ensure your browser pixel Purchase event passes eventID set to the Shopify order ID. In Make.com, ensure event_id is mapped to the same order ID field from the webhook payload. Both values must be identical strings.

TikTok events show but EMQ score is low (<5)

Low EMQ almost always means missing user data fields. Check: (1) Is email being sent and SHA-256 hashed? It must be lowercase before hashing. (2) Is phone in E.164 format (+447911123456) before hashing? (3) Are IP address and user agent mapped from the Shopify order payload? In Make.com, map browser_ip from the order webhook for IP and client_details.user_agent for user agent.

Google Enhanced Conversions match rate below 20%

The most common cause is incorrect email hashing. Google requires: lowercase the email → trim whitespace → SHA-256 hash → send. If any step is skipped, the hash will not match Google’s database. In Make.com use: sha256(lowercase(trim(email))). Also verify you are sending phone in E.164 format before hashing.

Make.com scenario fails with HTTP 400 error

A 400 error from any platform API means your payload is malformed. The most common causes: (1) Missing required fields — check the platform’s API docs for required vs optional fields. (2) Incorrect data types — value must be a number, not a string. (3) Invalid timestamp — event_time must be a Unix timestamp (seconds since epoch), not a date string. In Make.com, use the toUnix(now) function to generate the correct timestamp format.

Want the Make.com scenario pre-built?

CAPI Shield is our free pre-configured server-side tracking setup for Shopify stores. Zero configuration required.

Get CAPI Shield Free →
FAQ

Frequently Asked Questions

What is Shopify server-side tracking and how does it work?

Shopify server-side tracking sends purchase events directly from your server to ad platforms (Meta, Google, TikTok) without going through the customer’s browser. When a Shopify order is paid, a webhook fires to Make.com which routes the event to each platform’s API endpoint — bypassing iOS restrictions, ad blockers, and cookie limitations. It works alongside your existing browser pixel, not instead of it.

Do I need to remove my browser pixel when setting up server-side tracking?

No — keep your browser pixel running alongside server-side tracking. The pixel captures upper-funnel events (ViewContent, AddToCart, InitiateCheckout) that server webhooks don’t cover since they only fire on confirmed payment. Set a matching event_id in both your pixel and server events so each platform deduplicates and you see one conversion, not two.

How much of my lost Shopify conversion data will server-side tracking recover?

Most Shopify stores recover 20–40% of previously invisible conversions after deploying server-side tracking. TikTok’s own data shows a 19% average increase in attributed events. The exact figure depends on your traffic mix — stores with high iOS and mobile traffic typically see higher recovery rates. The gap between your Shopify dashboard and ad platform reports should narrow significantly within 24–72 hours.

Is server-side tracking GDPR compliant?

The data flows through your own Make.com workspace — you control what is sent and can delete the scenario at any time. All personally identifiable information (email, phone) is SHA-256 hashed before transmission as required by each platform’s API specification. Ensure your store privacy policy discloses server-side conversion data sharing with advertising platforms. For GDPR-specific advice consult a legal professional.

How long before I see results after setting up server-side tracking?

Server events start flowing immediately after your first paid order. More conversions will appear in your ad platform reporting within 24–48 hours. Meaningful CPA and ROAS improvement typically takes 7–14 days as ad platform algorithms recalibrate delivery optimisation using the more complete conversion signal.

What is the difference between Meta CAPI and Shopify’s native data sharing?

Shopify’s native Maximum data sharing setting enables their own CAPI integration, but it is still partially browser-triggered — if the thank-you page pixel fails to execute, the server event may not fire. The Make.com webhook method fires directly from Shopify’s backend on payment confirmation with zero browser dependency, making it more reliable.

Can I set up Shopify server-side tracking without a developer?

Yes. The Make.com webhook setup requires no code. You configure a Shopify webhook in Settings, build an HTTP module in Make.com’s visual drag-and-drop interface, and paste your API credentials. Most store owners complete the setup in under 20 minutes. No developer, no agency, no Shopify app installation required.

Does server-side tracking work with Shopify’s native Maximum data sharing?

Yes — the Make.com webhook method works independently of and alongside Shopify’s native data sharing. You do not need to disable native CAPI. Running both adds redundancy: if one delivery method has a transient failure, the other ensures the event still reaches the platform. Use matching event_id values in both so platforms deduplicate correctly.

RELATED GUIDES

More Free Shopify Tracking & Automation Guides