How to Track Orders From Your Shopify Mobile App in GA4 and Your Ad Platforms

|Dan Giura
How to Track Orders From Your Shopify Mobile App in GA4 and Your Ad Platforms

TL;DR

A native mobile app puts your own Shopify checkout on the phone, extensions and all, and still no pixel event leaves it: Shopify passes the events to the app, and the app builder decides what happens next [2][3]. The order is credited to the app's sales channel by default [5], so WeltPixel Conversion Tracking files it with marketplace and POS orders rather than storefront ones. On the free plan those orders aren't sent anywhere. On Plus they go out server-side unless you exclude them per channel, and Google Ads skips them unless the no-click upload is on. Place one test order from your app before the Black Friday push campaigns start.

Key Takeaways

  • Filter Orders by sales channel [10] and open one app order. Anything other than Online Store (your app's name, the builder's channel or Headless) means it was credited elsewhere.
  • Shopify's Checkout Kit relays pixel events to the host app through lifecycle callbacks [2]. The Swift README says those events "will not be sent from inside the checkout" [3].
  • On WeltPixel Conversion Tracking's free plan, orders credited to your app's channel aren't sent to any destination, GA4 included. They count as Skipped on its Conversion tracking card, not as failures.
  • On Plus ($39/month [13]), app orders go server-side to your connected destinations (Google Ads only with the no-click upload) unless that channel's Exclude Admin/API Orders setting is on, which also removes renewals and POS.
  • If your app builder forwards purchase events to Meta, pick one sender. Meta deduplicates on a shared event_name and event_id [11], and WeltPixel Conversion Tracking's copy won't carry the builder's ID.
  • Shopify's successor SDK, also called Checkout Kit, is an alpha preview as of October 2026 [12]. Run the test order again if your app moves to it.

Your checkout, the app's order

Shopify built its mobile checkout so the shopper never notices a handoff. Checkout Kit is an open-source SDK for Swift, Android and React Native. Pass it a checkoutUrl "and buyers get the same checkout they see on the web", while "Shopify processes the payment, applies tax and regulatory rules, and creates the order" [1]. The Android README says the embedded checkout "preserves all of the store customizations: Checkout UI extensions, Functions, Web Pixels, and more" [4].

Two things change underneath, and neither shows on the screen.

The first is where pixel events go. Checkout Kit "relays standard and custom web pixel events through the lifecycle callbacks", and Shopify's docs tell app developers they can forward those events to an analytics provider [2]. The Swift README spells out the consequence: the event "must be handled by the consuming app, and will not be sent from inside the checkout" [3]. The checkout still produces its pixel events. The app receives them, and whatever the app builder wired up decides where they go next.

The second is who gets credit for the sale. A native app builds its cart with a Storefront API access token from the Headless channel [6], and Shopify's attribution docs say "By default, Shopify attributes these orders to your app in the channel filter in the Shopify admin, analytics, and GraphQL Admin API" [5]. A Shopify staff member on the developer forum confirmed that headless sales channels get their own numeric source on the order [9].

Put together, an app order looks like a web order at checkout and behaves like a marketplace order in your tracking.

Which kind of app do you have?

"Our app" covers three different builds, and each one gives a different answer.

How the app checks out Order credited to Browser events from the checkout Ad click IDs on the order
Native app: Storefront API cart, then Checkout Kit The app's sales channel [5] Handed to the app, "not sent from inside the checkout" [3] None
Native app opening Checkout Kit on a Shopify cart permalink with no access token [6] Undocumented; most likely your online store, as Shopify ties channel credit to a token on the link [7] Handed to the app, as above None from the browser
Wrapper app showing your mobile site in a web view Your online store Not documented by Shopify Only if the app opens your links with their parameters intact

The middle row is the odd one. If its order lands in Online Store (step 2 below tells you), WeltPixel Conversion Tracking treats it as a storefront order and sends it on every plan, with nothing from the browser attached.

The wrapper row is the one Shopify's docs don't cover. Pixel behavior inside an app's web view isn't documented anywhere we could find, and the agentic-commerce guide runs into the same gap for AI agents that render a checkout inside their own web view. One tagged test order settles it for your app.

To tell which build you have, filter your orders by sales channel [10] and open a recent app order. The API's Order.app field is "The application that created the order. For example, 'Online Store', 'Point of Sale', or a custom app name" [8]. An order showing anything other than Online Store sits in the first row.

A few neighbors sound similar and aren't this. Shopify's own Shop app is a separate channel, and its orders already sit with marketplace orders in the guide to TikTok Shop and other off-site orders. Staff keying orders into the Shopify admin app on a phone create admin orders, covered in the admin and POS orders guide. A headless web storefront is different again: as the headless and cross-domain tracking guide explains, pixels skip the headless pages and fire on the Shopify-hosted checkout. In a Checkout Kit app, even the checkout's events stay with the app.

What reaches GA4 and each ad platform?

WeltPixel Conversion Tracking splits orders into the ones your online store took and everything else, and app-channel orders are in everything else. The off-site orders guide linked above explains that split per plan; here is what it means for app orders.

On the free plan, nothing is sent for them. GA4 never hears about the sale, and the home page's Conversion tracking card counts it under Skipped. If your app takes a real share of Black Friday orders, your GA4 revenue will sit below Shopify's by that share.

On Plus, the order goes server-side to each destination you've connected, carrying only what the order itself knows. GA4 gets the revenue with no source, medium or campaign, so it lands among unattributed purchases. Meta, TikTok, Reddit, Pinterest, Snapchat and OpenAI Ads get a website purchase matched on hashed customer details. Google Ads skips the order, since there's no Google click ID, unless you've turned on Enhanced Conversions and "Import all events that have user-provided data, even those without GCLID", both covered in the Enhanced Conversions settings guide.

A push notification has no ad click behind it. When the app sends "Black Friday starts now" and a buyer taps through, no ad platform has a click to claim, and that's simply what the order is. The choice you do have is whether your ad platforms should learn from app orders at all, and it's made per channel with Exclude Admin/API Orders. Leaving it off keeps app buyers in the purchase data Meta and the others optimize on. Turning it on keeps that channel's purchases to orders your online store took, which also drops subscription renewals, POS sales and staff-made drafts. The BFCM readiness checklist covers what that setting removes on a subscription store.

Could the same order reach Meta twice?

Yes, if your app builder already forwards purchase events to Meta, either by passing on the checkout events Checkout Kit relays or by sending purchases from its own SDK.

Meta merges two copies of an event when both carry the same event_name and event_id, "within 48 hours of when we receive the first event with a given event_id" [11]. Its other method matches on fbp or external_id, and Meta says "Generally, it only works for deduplicating events sent first from the browser and then through the server" [11]. The purchase WeltPixel Conversion Tracking sends from the order carries an event ID of its own, and nothing hands it the ID the app builder used. Two copies of one order would arrive unrelated. The deduplication guide covers how matching works when both copies come from your store.

We haven't measured how often this happens, and we know of no published figure, so treat it as a question for your app builder. Ask which events the app sends to which ad platforms, and with which event IDs. If the answer includes a purchase to Meta or TikTok, you have two clean options: ask the builder to stop sending purchases there and keep the server-side copy, or, if step 2 shows the app's orders outside Online Store, keep theirs and turn on Exclude Admin/API Orders for that channel, knowing renewals and POS leave it too.

Check one app order before the push goes out

It takes about fifteen minutes to track one app order end to end.

  1. On a phone, place an order through your app the way a customer would. Pick a low-price product you can refund afterwards.
  2. In your Shopify admin, open Orders, filter by sales channel [10], and open the order. Note whether it shows Online Store or another channel.
  3. A few minutes later, open the home page of WeltPixel Conversion Tracking, refresh the Conversion tracking card and read it. On the free plan, an app-channel order shows as Skipped for GA4. On Plus, it shows as sent to each destination except Google Ads, unless the no-click upload is on.
  4. If your app is a wrapper, put UTM tags on the push notification or in-app link you use for step 1. If GA4 later shows the order under that campaign, the browser layer ran inside the web view; if it lands unattributed, assume it didn't.
  5. Ask your app builder three things: does checkout run in Checkout Kit or a web view, does the app forward pixel events or its own purchase events to any ad platform, and with which event IDs.
  6. Set Exclude Admin/API Orders for each channel based on steps 2 and 5.

The only timing that matters is your own. The Black Friday freeze guide puts checkout, theme and app changes at about November 13 and tracking configuration at about November 16, and settling this before then keeps your season's numbers counted one way.

Shopify's Checkout Kit SDK is changing

Everything above describes Shopify's mobile checkout as of October 2026. The current kit's repositories are still named Checkout Sheet Kit [3][4], and Shopify has published a successor, also called Checkout Kit, that "is in early preview and isn't generally available yet". Its SDKs "ship as alpha releases", add a Web SDK, and move the transport to the Embedded Checkout Protocol [12]. Its overview page doesn't yet say what happens to pixel events.

FAQ

Do Shopify web pixels run inside a mobile app's checkout?

Shopify's docs say the checkout produces pixel events and relays them to the app [2], and that they "will not be sent from inside the checkout" [3]. Whether they reach GA4 or an ad platform depends on what the app builder forwards.

Why don't my mobile app orders show up in GA4?

A Checkout Kit checkout doesn't send its pixel events itself [3]. On WeltPixel Conversion Tracking's free plan, app-channel orders aren't sent server-side either, and on Plus they reach GA4 with their revenue and no campaign.

Are Shop app orders the same as orders from my own app?

No. The Shop app is Shopify's own shopping app and a separate sales channel. Both kinds of order sit outside your online store in WeltPixel Conversion Tracking's classification, so the same plan rules and the same exclude setting apply.

Can Google Analytics track mobile apps?

For a Shopify store's app orders, only through a route the app or a server provides. In a Checkout Kit app the checkout's pixel events are handed to the app and "will not be sent from inside the checkout" [3], so GA4 sees the order only if the app builder forwards those events or a server-side send reports it. With WeltPixel Conversion Tracking that's the Plus plan, where app orders reach GA4 with their revenue and no campaign.

Count your app's orders on purpose

If your app takes a real share of your orders, WeltPixel Conversion Tracking on Plus sends them server-side to GA4 and your ad platforms with the order's revenue, and lets you keep them out of any one channel with one setting. GA4 is on the free plan for storefront orders; Plus is $39/month [13].

Sources

  1. Shopify developer documentation, "Checkout Kit", shopify.dev/docs/storefronts/mobile/checkout-kit, accessed October 6, 2026
  2. Shopify developer documentation, "Monitor the checkout lifecycle" (Checkout Kit), shopify.dev/docs/storefronts/mobile/checkout-kit/monitor-checkout-lifecycle, accessed October 6, 2026
  3. Shopify on GitHub, checkout-sheet-kit-swift README (web pixel events "will not be sent from inside the checkout"), github.com/Shopify/checkout-sheet-kit-swift, accessed October 6, 2026
  4. Shopify on GitHub, checkout-sheet-kit-android README (store customizations preserved, pixel events relayed to the app), github.com/Shopify/checkout-sheet-kit-android, accessed October 6, 2026
  5. Shopify developer documentation, "Order attribution" for sales channels, shopify.dev/docs/apps/build/sales-channels/order-attribution, accessed October 6, 2026
  6. Shopify developer documentation, "About mobile storefronts" (Headless channel token; checkout URL from a cart permalink), shopify.dev/docs/storefronts/mobile/about-mobile-storefronts, accessed October 6, 2026
  7. Shopify developer documentation, "Create cart permalinks" (access_token for sales channel attribution), shopify.dev/docs/apps/build/checkout/create-cart-permalinks, accessed October 6, 2026
  8. Shopify developer documentation, GraphQL Admin API Order object (app field), shopify.dev/docs/api/admin-graphql/latest/objects/Order, accessed October 6, 2026
  9. Shopify Developer Community, staff answer on source_name for headless storefront orders, August 6, 2025, community.shopify.dev/t/orders-create-source-name-value-for-headless-storefront-orders/20588, accessed October 6, 2026
  10. Shopify Help Center, "Viewing orders" (filters by sales channel), help.shopify.com/en/manual/fulfillment/managing-orders/viewing-orders, accessed October 6, 2026
  11. Meta for Developers, "Handling duplicate pixel and Conversions API events", developers.facebook.com/documentation/ads-commerce/conversions-api/deduplicate-pixel-and-server-events, accessed October 6, 2026
  12. Shopify developer documentation, "Checkout Kit" (early preview successor to Checkout Sheet Kit), shopify.dev/docs/agents/carts-and-checkout/checkout-kit, accessed October 6, 2026
  13. WeltPixel Conversion Tracking, Shopify App Store listing (free plan; Plus $39/month), apps.shopify.com/weltpixel-conversion-tracking, accessed October 8, 2026

Ready to upgrade your tracking?

Server-side tracking for Magento and Shopify — accurate data, better attribution, full privacy compliance.