Server-side tracking

Paid orders are sent
from the server.

iOS, ad blockers, Safari: the browser pixel doesn't see everything. As soon as a Shopify order is paid, we send the purchase to the ad platforms, with the order ID as the event_id.

Paid order

Example

event_id

1842

Numeric Shopify ID. Not the #1001 shown to the customer, not the gid.

  • MetaConversions APIPurchase
  • TikTokEvents APICompletePayment
  • Google AdsEnhanced ConversionsorderId

Google receives the same 1842 in orderId. If the pixel fires, it carries 1842 too.

The gap

The pixel saw 61. The server reports 102.

Browser pixel

61

Sales seen by the pixel. iOS, ad blockers and Safari removed some of them before they were sent.

Server

102

Paid orders sent from the server. Same example as the homepage, not a customer case.

Illustrative example. The 61 / 102 sales show the pixel's blind spot. We don't publish a percentage: it depends on the store, the country and the blockers.

The browser

Four reasons the pixel goes quiet.

  1. 01iOS and ATT

    If the visitor declines tracking, the pixel doesn't fire. The paid order, however, is already in Shopify.

  2. 02Ad blockers

    The pixel request is cut off in the browser. The server-side event doesn't go through that page.

  3. 03Safari and ITP

    Pixel cookies are capped. The order ID doesn't depend on a cookie.

  4. 04Private browsing

    The session is isolated. We don't need it to report a purchase that's already been paid.

Sending

One purchase. Three ad platforms. One ID.

  1. 01

    The order is marked paid

    We start from the Shopify payment, not from a click in the browser.

    • Paid order
    • Not a browser click
  2. 02

    One numeric ID

    event_id = Shopify order ID. The same number for all three ad platforms.

    • Not the displayed #1001
    • Not the gid
  3. 03

    The server sends the purchase

    Each ad platform gets its own format. Google takes that ID in orderId.

    • Purchase
    • CompletePayment
    • Google orderId
  4. 04

    The platform drops the duplicate

    If the pixel fires too, it carries the same ID. The platform counts only one.

    • Same 1842
    • One conversion

What's sent, what stays

Emails are hashed before they're sent.

SHA-256

Email and phone are normalized, then hashed. The ad platform receives the hash, not the plain-text address — and only if consent allows it.

Encrypted tokens

Meta, TikTok and Google tokens are encrypted at rest with AES-256-GCM. Disconnecting deletes them.

Shopify first

Today, orders come from Shopify. WooCommerce and PrestaShop aren't connected.

Frequently asked questions

The ID, the three ad platforms, the email.

Your next paid order is sent from the server too.

14-day free trial, no card required. The profit on those orders shows up on the net profit page.

Start 14-day free trial

No credit card requiredHow we get to the example's €21,000