Skip to main content
Shopify → Apple Search AdsIntegration guide

Connecting Shopify to Apple Search Ads

Shopify is the system of record for the order, and its admin numbers are the ones the business runs on. Apple Search Ads sells App Store placement, which means it lives entirely inside Apple's privacy framework and behaves unlike every other destination here. The join between them succeeds or fails on one thing: whether no user-level click identifier reaches the Shopify order before the conversion happens, because Apple Search Ads can only match a conversion it can tie back to a click it recognizes.

Free30 minutesNo obligation

Specific to this pair

Shopify and Apple Search Ads: web orders cannot be attributed

No Shopify web order can be credited to Apple Search Ads, because Safari purchases never pass through Apple's attribution. The pair is real only with a branded shopping app: your measurement partner ties Apple's attribution token to the app user, and you flag app-channel Shopify orders and report revenue per campaign in aggregate. Exclude Shop app orders.

Apple Search Ads advertises apps in the App Store. A Shopify storefront purchase in Safari never passes through Apple's attribution, so no website order can be credited to an Apple Search Ads campaign, whatever an integration claims. The pair is only real for merchants who launched a branded shopping app on top of their Shopify store and want to know whether App Store ads paid off in orders.

In that case the chain is: Apple's attribution token at first app open, read by the app or your mobile measurement partner and tied to the app user; the user checks out in the app, which still creates a normal Shopify order. The join you build is your own. Flag orders whose sales channel is your app, link them to the attributed install inside your MMP, and report revenue per campaign in aggregate. Apple never receives the order, and nothing you send from Shopify changes what Apple reports.

The usual wasted effort is a web Purchase event wired somewhere in the hope that Apple Search Ads will count it. Also keep orders placed through Shopify's own Shop app out of the analysis: that is Shopify's app, not yours, and its installs were not driven by your App Store campaigns. Without a branded app, the sane setup for this pair is nothing at all.

Shopify → Apple Search Ads · what breaks

Why this join usually fails — Shopify → Apple Search Ads

  1. 01

    No user-level click identifier never reaches Shopify

    Shopify's checkout is locked down. Custom scripts on the checkout steps are not permitted on standard plans, and the old additional-scripts route is gone, so the identifier has to be captured on the storefront and carried into the order through cart or order attributes rather than read at the checkout itself.

  2. 02

    Checkout extensibility hides what you need

    Shopify deliberately restricts what runs during checkout. Setups that assumed free rein there broke when the platform moved to Checkout Extensibility, and many stores have been quietly under-reporting since.

  3. 03

    Expecting per-user attribution that does not exist

    Teams arrive expecting a click ID to join against and there is not one. Apple's framework is aggregate by design, with thresholds and delays, and no vendor can engineer around it.

  4. 04

    Nothing reconciles afterwards

    Apple Search Ads reports at campaign level with built-in delay and privacy thresholds. Reconciling it per user against your own records is not possible by design; compare install and post-install volumes at aggregate level over a settled window instead.

Shopify → Apple Search Ads · the fix

What working looks like — Shopify → Apple Search Ads

  • No user-level click identifier on every order

  • Conversions arriving in Apple Search Ads

    Results appear in Apple Search Ads reporting at campaign or keyword level, aggregated and delayed by design rather than by fault.

  • Reconciled against the source

Shopify → Apple Search Ads · architecture

How Shopify and Apple Search Ads actually connect

  1. 1

    Shopify holds the truth

    The order carries line items, discounts, shipping, tax, currency and the customer. Note which figure you intend to report — total, subtotal, or net of shipping and tax — because most mismatches between Shopify and an ad platform turn out to be two people comparing two different numbers.

  2. 2

    Apple Search Ads needs a click to match

    Apple Search Ads needs the install and post-install events reported through its supported attribution path. There is no offline conversion upload in the sense the other platforms mean it, and expecting one is the usual source of wasted effort.

  3. 3

    The identifier is the bridge

    No user-level click identifier, captured at the visit and carried into the Shopify order.

  4. 4

    The event source decides reliability

    Send when Shopify says the order is paid, from your server. This also covers draft orders, POS, and the customer who closes the tab on the thank-you page — none of which a pixel on the order-status page will ever see.

  5. 5

    Deduplication at the destination

    Deduplication is largely not your problem here, because you are not sending duplicate user-level events — Apple aggregates. What matters instead is not double-counting an install across your own MMP and Apple's reporting.

Shopify → Apple Search Ads · normal or broken

Working vs. broken, side by side — Shopify → Apple Search Ads

Normal, not a fault

  • No user-level click identifier present on the order

  • Sent from the orders/paid webhook

  • Deduplicated correctly

    Deduplication is largely not your problem here, because you are not sending duplicate user-level events — Apple aggregates. What matters instead is not double-counting an install across your own MMP and Apple's reporting.

  • Reconciles with the source

Actually broken

  • No user-level click identifier missing on most records

    Shopify's checkout is locked down. Custom scripts on the checkout steps are not permitted on standard plans, and the old additional-scripts route is gone, so the identifier has to be captured on the storefront and carried into the order through cart or order attributes rather than read at the checkout itself.

  • Sent from the browser

    Shopify deliberately restricts what runs during checkout. Setups that assumed free rein there broke when the platform moved to Checkout Extensibility, and many stores have been quietly under-reporting since.

  • Counted twice, or not at all

    Teams arrive expecting a click ID to join against and there is not one. Apple's framework is aggregate by design, with thresholds and delays, and no vendor can engineer around it.

  • Nobody has reconciled it

Shopify → Apple Search Ads · diagnose

Diagnostic order — Shopify → Apple Search Ads

  1. 01

    Count orders carrying no user-level click identifier

  2. 02

    Follow one real conversion end to end

  3. 03

    Open a recent paid order and read its note attributes

    If the identifier is not on the order, nothing downstream can attribute it. Check ten orders, not one — partial coverage is the normal failure, not total absence.

  4. 04

    Check whether your reporting expectations match Apple's framework

    If someone has promised per-user joins on App Store installs, that is the problem — not the implementation.

  5. 05

    Read the match rate, not the success message

    Apple Search Ads reports at campaign level with built-in delay and privacy thresholds. Reconciling it per user against your own records is not possible by design; compare install and post-install volumes at aggregate level over a settled window instead.

Shopify → Apple Search Ads · prove

How it gets proven — Shopify → Apple Search Ads

Source of truth

Shopify Admin → Orders, for the same window, in the same currency and on the same timezone.

  • No user-level click identifier confirmed present on a live order.
  • Aggregate install and post-install volumes reconciled over a settled window, with the framework's delay stated.
  • Order totals in Shopify Admin reconciled per order, not on the summed total, over a closed window.

Shopify → Apple Search Ads · free audit

What we check in the free audit

  • Count orders carrying no user-level click identifier
  • Follow one real conversion end to end
  • Open a recent paid order and read its note attributes
  • Check whether your reporting expectations match Apple's framework
  • Read the match rate, not the success message

Checked against

Shopify Admin → Orders, for the same window, in the same currency and on the same timezone.

Get my free conversion tracking audit

Free30 minutesNo obligation

Shopify → Apple Search Ads · when not to buy

When you don't need this — Shopify → Apple Search Ads

  • Measure identifier coverage yourself first — pull your last hundred orders and count how many carry no user-level click identifier.
  • Shopify's own native channel integrations already cover simple single-currency stores adequately. If your admin numbers and platform numbers already agree, you do not need this.
  • If you have no iOS app, this destination does not apply at all — and if you do, budget for aggregate reporting rather than the per-order joins the rest of this library describes.

Shopify → Apple Search Ads · what we deliver

What gets built — Shopify → Apple Search Ads

  • Identifier capture into Shopify

    Capture the click identifier on the storefront, write it to a cart attribute so it becomes an order note attribute, and read it back server-side from the order. That path survives the checkout domain hop that breaks cookie-based approaches.

  • Event source: the orders/paid webhook

    Send when Shopify says the order is paid, from your server. This also covers draft orders, POS, and the customer who closes the tab on the thank-you page — none of which a pixel on the order-status page will ever see.

  • Dispatch to Apple Search Ads

    Attribution through Apple's own APIs, with post-install events reported through your mobile measurement partner where you use one.

  • Reversals where they exist

    refunds/create fires with the original order reference, so refunds and cancellations can be reversed at the destination.

Written guarantee

95%+ tracking accuracy

Measured against Shopify Admin → Orders, for the same window, in the same currency and on the same timezone.. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Shopify → Apple Search Ads questions, answered

Only if the sale happens inside your own iOS app, and then only at campaign level through Apple's attribution and your MMP. Website orders cannot be attributed to Apple Search Ads.

Free · 30 min

Get Shopify and Apple Search Ads joined properly

Free30 minutesNo obligation