The short answer
Safari clears cookies set by scripts after 7 days, so a shopper who buys later has no click left to match. Keep the click ID on the server and send the paid order with a match key.
DataCops is a tool that fixes Shopify tracking from a server, so your ads hear about every paid order, not only the ones a browser script managed to report.
How DataCops does it on Shopify:
- Every paid order, server-side. The DataCops Shopify app listens for Shopify's paid-order webhook and sends each order as a Purchase, with value and currency, to Meta, Google Ads, TikTok and LinkedIn. Shop Pay and Apple Pay orders count too.
- The steps before the sale. Its Web Pixel inside Shopify reports add to cart, checkout, payment info and search.
- Counted once. The pixel and the server share the same order ID, so a purchase is not counted twice.
- The click survives Safari. One script and one DNS record collect on your own domain, click IDs are kept on the server for up to 90 days, and a signed server-set cookie lasts up to 400 days where enabled.
- Real people only. Every visit gets a bot verdict, with a Real people only switch per ad platform (off by default).
- Proof. A delivery log shows each send as sent, held, skipped or failed, with the reason.
Best for: Shopify stores that run paid ads and want the ad platforms to see the sales Shopify already recorded.
What Safari does
Safari has a rule: cookies written by JavaScript expire after 7 days. WebKit calls the wider set of rules Intelligent Tracking Prevention. A cookie your ad pixel stored on Monday may be gone on the next Tuesday.
The rule hits the click, not the sale. The order is fine. What is lost is the proof that an ad brought the shopper in.
How to see the loss in your store
- Export your Shopify orders for the last 30 days with the browser if you have it, or use the device share in analytics.
- Note the share of orders from Safari and iPhone.
- Compare it with the share of Meta or Google conversions that came from the same group.
- A big Safari share of orders, and a small share of ad conversions, is the 7 day loss.
Buying cycles matter. A cheap impulse buy on the same day is safe. A considered purchase, a gift or a higher-ticket item that takes a week to decide, is where it hurts.
How to keep the click
- Store the click on the server. A click ID kept server-side is not on the browser's 7 day clock.
- Collect on your own domain. One script and one DNS record, so collection looks like your store.
- Use a server-set cookie. Where enabled, a signed cookie set by the server can last up to 400 days.
- Send the sale with a match key. A hashed email helps when the click is gone.
DataCops does all four. See how it works on Shopify, or the guide on Safari tracking prevention.
When not to use DataCops
- You do not run paid ads. Tracking is for feeding ad platforms; with no ads, a native Shopify setup is enough.
- You only sell in person with Shopify POS. The app sends online paid orders, not POS sales.
- You want refunds taken back out of Meta or TikTok. A refund marks the Purchase refunded in DataCops and is corrected on Google Ads, not on Meta or TikTok.
Sources
- webkit.org/tracking-prevention/
- webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/
- developers.facebook.com/docs/marketing-api/conversions-api
FAQ
How long does Safari keep cookies set by a script?
Safari limits cookies set by browser scripts to 7 days. After that the cookie is cleared, so a delayed purchase cannot be tied back to the ad click.
Does this affect Shopify stores?
Yes. Shopify stores with ad traffic and a buying cycle longer than a few days will lose attribution on Safari and iPhone.
How do I see how much I lose?
Split your Shopify orders by browser. If the Safari share of orders is large and its share of ad-matched orders is small, the click is being lost.
How does DataCops keep the click?
Click IDs are kept on the server for up to 90 days, and a signed server-set cookie lasts up to 400 days where enabled. Collection runs on your own domain.