TL;DR
The Channel performance report is Shopify's own answer to "which marketing channel is actually selling." It builds channel rows from your UTM parameters and from data shared by connected marketing apps, then assigns every attributed order to one channel using a last non-direct click model with a 30-day lookback [1][2]. Both of those defaults matter. Because the model is click-based, Meta's view-through conversions will never match it, and because Shopify picks a single winner per order while each ad platform counts its own conversion, the platform dashboards will always sum to more orders than Shopify shows. The report is also three weeks into a new home: since June 17, 2026 it sits under the Growth tab, not Marketing [3]. Most guides you will find still point at the old location.
Key Takeaways
- Find the report at Growth → View channel report in Shopify admin. The Marketing tab became the Growth tab on June 17, 2026, so pre-June guides point to a tab that no longer exists [3].
- Channel rows are built from UTM parameters plus connected marketing-app activity data; organic search, direct, and referral traffic are bucketed from the referrer without UTMs [1][7].
- Attribution is last non-direct click with a 30-day lookback [1][2]. Shopify provides no setting to change the window.
- Every available model is a click model. Shopify has no view-through attribution, so any platform counting view-through (Meta does by default) will claim orders this report assigns elsewhere [1].
- The Growth page and the Analytics report builder use different default models: last non-direct click on Growth surfaces, last click in custom reports. Compare them without checking the model and you manufacture your own discrepancy [1][2].
- Shopify ships two reconciliation tools most merchants never open: the Any click model, and the partner row in the Campaigns report that shows Shopify's numbers next to Google's [1].
- Ad spend from connected apps syncs up to 24 hours late, so same-day ROAS in the report runs high before costs catch up [1].
The report moved on June 17, 2026
Shopify renamed the Marketing tab to Growth on June 17, 2026, and the marketing reports moved with it [3]. The report family now sits at admin.shopify.com/growth: a Marketing summary with headline KPIs, a Top channel performance card covering your five biggest channels, and the full Channel performance report behind the "View channel report" link [1]. Click any channel row and you get the Campaigns report for that channel; click a campaign and you get the Campaign attribution report with per-campaign cost, CAC, conversion rate, funnel, and product breakdowns [1].
This sounds like trivia. It is the fastest way to date any advice you are reading, including Shopify's own older blog posts: if a guide tells you to open the Marketing section, it predates June 2026, and its screenshots and menu paths are unreliable. A separate set of marketing reports (Sales attributed to marketing, Performance by referring channel, Performance by UTM campaign) still lives under Analytics → Reports, in the Marketing category [2]. Two surfaces, one attribution engine underneath.
The report family itself is older. Channel performance launched in February 2023 with three attribution models, gained Linear and Any click in June 2023, and has included cross-device data since March 2023 [4][5][6]. Shopify has since retired the older conversion-by-interaction reports in its favor [2].
How does Shopify decide which channel gets an order?
The report is, in Shopify's own words, "based on your UTM parameters and connected app activities to your online store" [1]. Three inputs feed a channel row. Tagged traffic lands under whatever your utm_source and utm_medium say. Connected marketing apps report their activities directly, and those show up whether or not the URL carried UTMs. Everything else falls to referrer detection, which buckets sessions into Direct, Search, Email, Social, or Unknown, so organic Google traffic still shows as Search with zero tagging effort [2][7].
If you have ever tagged one campaign utm_source=IG and the next utm_source=instagram, you have already met the main failure mode: Shopify takes your parameters literally, and the two spellings become two channels.
Attribution then runs on the order, not the session. When a customer converts, Shopify walks back through their sessions and credits the most recent non-direct click within the past 30 days [1]. A journey that is entirely direct visits gets attributed to Direct. If a visitor buys nothing within 30 days of a session, the stored first-interaction referrer resets [2]. Sessions themselves are cookie-based, end after 30 minutes of inactivity, and are also cut at midnight UTC [2]. Cross-device journeys have been stitched since March 2023, so an Instagram ad clicked on a phone can still get credit for a laptop purchase when Shopify can connect the identity [6]. When it cannot, the order lands in Direct, a failure mode big enough that we wrote why logged-in and cross-device orders show as Direct separately. What feeds the engine mechanically is the order's landing site and referrer data, not any cookie you can inspect, which we unpack in what _shopify_sa_p and _shopify_sa_t actually are.
Which attribution model is the report using?
Last non-direct click, unless you change it. Shopify documents it as the default for viewing marketing activity data [1]. The report's model picker offers last click and first click as alternatives, and Shopify's marketing reports also support Linear and Any click [1][5]. For what each model does to your numbers, how Shopify attribution works walks the full set; the short version is that they only reassign credit between your own channels. No model adds orders the click data never saw.
There is one genuinely confusing split. Growth-page surfaces default to last non-direct click, but when you build a custom report in the Analytics report builder and add a sales metric with a marketing dimension, the Attribution menu defaults to last click instead [2]. The same order can legitimately sit in different channel rows on the two surfaces. Before you compare a Growth-page number to a custom report, check both model selectors, or you will spend an afternoon investigating a discrepancy you created.
Why do Meta and Google claim more orders than the report shows?
Because every platform grades its own homework, and Shopify picks one winner per order. Shopify's help docs use exactly this example: a customer clicks your email, then clicks a Google Shopping ad, then buys. The email tool records a conversion, Google records a conversion, and Shopify credits only the most recent click within 30 days [1]. Two platforms claimed the order; the report gave it to one.
Three structural gaps stack on top of that:
| Counting rule | Shopify Channel performance | Typical ad platform |
|---|---|---|
| Credit basis | One winning click per order | Every platform counts its own touch |
| View-through | Never counted [1] | Counted by default on Meta |
| Windows | 30-day click lookback [1] | Platform-configurable, click and view windows differ |
| Spend freshness | Syncs up to 24h late [1] | Live |
View-through is the biggest one. Every Shopify model is a click model, so a purchase that follows an ad impression with no click exists for Meta and simply does not exist for this report. Window mismatches do the rest, and attribution windows and reporting delays covers how they interact. On top of the order counts, the money columns lag: connected-app ad spend can take up to 24 hours to sync [1], so your ROAS can look better than reality until costs arrive. Also know that Facebook and Google campaigns do not display cost, ROAS, CPA, or CTR metrics on the Growth page at all; Shopify points you back to the platforms for those [1]. For the arithmetic of reconciling return figures across platforms, how to calculate Shopify ROAS owns that ground.
Reconcile the report against your ad dashboards in five steps
Shopify built reconciliation tooling into this report, and in support threads you can watch merchants argue about discrepancies without ever opening it. Here is the sequence worth running once a month:
- Open Growth → View channel report. Confirm the model selector says last non-direct click, the default [1].
- Note the orders per channel, then switch the model to Any click (both channel reports support the documented model set [1]). Any click credits every channel that had a click in the window, which mimics how the ad platforms count for themselves. Shopify documents this model specifically for reconciling per-channel claims [1].
- The gap you see per channel between last non-direct click and Any click is roughly what multi-touch journeys cost that channel. What remains unexplained after that is mostly view-through and window differences.
- Click your Google channel to open its Campaigns report and find the partner row, which shows Shopify's attributed numbers and Google's own numbers side by side for the same campaigns [1].
- Check the date range honestly. Spend syncs up to 24 hours late [1], GA4 and the platforms settle on their own schedules, so reconcile a completed window, not yesterday.
If the Any click number for a channel is far below what the platform claims, the platform is counting conversions Shopify's click data never saw: view-through, expired windows, or tracking the report's inputs missed entirely.
What the report will not tell you
The limitations are documented, just scattered. Canceled, pending, and unpaid orders are included in marketing report counts; test and deleted orders are not [2]. Referrer source can come back Unknown when the source cannot be determined [2], and the channel table carries an explicit unattributed row [1]. Sessions cut at midnight UTC, which slightly inflates session counts for stores whose evening traffic straddles UTC midnight [2]. And nothing in the report validates your inputs. If your UTM taxonomy is inconsistent, the report faithfully reports the inconsistency.
The report answers one question well: given the clicks Shopify observed, which channel most recently earned each order. Your ad platforms answer a different question with different data, and your bidding runs on theirs. WeltPixel Conversion Tracking feeds that side of the ledger. It sends Shopify purchases server-side to GA4, Meta, TikTok, Google Ads, and Reddit, carrying the session's campaign parameters through to the server-side GA4 purchase, so the platforms optimizing your spend and the analytics property you audit both see orders attributed to the campaigns that drove them. Install WeltPixel Conversion Tracking and compare its numbers against the Channel performance report with this article's table in hand.
FAQ
Where is the Channel performance report in Shopify admin?
Under the Growth tab: open Growth in Shopify admin, then click "View channel report" under the Top channel performance section. The Marketing tab was renamed to Growth on June 17, 2026, so older guides pointing at Marketing are out of date. A related set of marketing reports also lives under Analytics → Reports in the Marketing category.
What attribution model does the Channel performance report use?
Last non-direct click with a 30-day lookback by default: the order is credited to the most recent non-direct click within the past 30 days. You can switch the report to last click or first click, and Shopify's marketing reports also support Linear and Any click models. All of them are click models.
Why does Facebook show more conversions than Shopify's channel report?
Meta counts view-through conversions by default and credits itself for every conversion it touched, while Shopify counts clicks only and picks a single winning channel per order. Both are working as documented. Use Shopify's Any click model to approximate platform-style counting when you reconcile.
Can I change the attribution window in Shopify?
No. Shopify provides no setting for it: the lookback is 30 days, and the first-interaction referrer resets after 30 purchase-free days. If you need different windows, you have to do that analysis in GA4 or the ad platforms, then keep the window difference in mind when comparing back.
Does the report include orders from canceled or unpaid checkouts?
Canceled, pending, and unpaid orders are included in marketing report metrics. Test orders and deleted orders are excluded. This alone can put the report's order counts above what you consider real sales, before any attribution difference enters the picture.
Sources
- https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/marketing-performance (accessed 2026-07-10)
- https://help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/default-reports/marketing-reports (accessed 2026-07-10)
- https://changelog.shopify.com/posts/the-marketing-tab-is-now-the-growth-tab (June 17, 2026)
- https://changelog.shopify.com/posts/new-marketing-reports-on-channel-performance-and-attribution (February 9, 2023)
- https://changelog.shopify.com/posts/new-attribution-models-available-in-marketing-reports (June 9, 2023)
- https://changelog.shopify.com/posts/cross-device-data-now-included-in-marketing-reports (March 2023)
- https://growth-services.shopify.com/blogs/blog/how-to-set-up-your-utm-parameters-for-shopify-reporting (accessed 2026-07-10)