How to see which ad creative drove each Shopify order

Tag every Meta, Google and TikTok ad with its campaign, ad set and ad, capture the tags on the visit, and tie each Shopify order back to the creative that brought it, under the attribution model you choose.

Updated November 13, 2026 · 6 min read

To see which ad creative drove each Shopify order, you need three things: every ad's landing URL tagged with its campaign, ad set and ad, a first-party pixel that records those tags on each visit, and a report that ties the visits to the Shopify order under one attribution model. Meta, Google and TikTok fill the tags themselves through dynamic URL parameters, so you set them once per account. Zalify Attribution then reads them on every visit and lets you drill down from channel to campaign, ad set and ad, with five models to compare and email revenue in the same report.

Why the ad platforms can't answer it

Each ad platform reports the orders it can link to its own ads: Meta with its click and view windows, Google with its own, TikTok with its own. None of them sees the others, so a shopper who clicked a Meta ad on Monday and a Google ad on Thursday is a conversion in both reports. Added together, the platforms usually claim more orders than the store took.

Two things follow:

  • Platform ROAS can't rank creatives across platforms. A Meta creative and a TikTok creative are judged by different rules.
  • Your own record is the referee. Attribution on first-party data credits each order once, under a model you choose, against the orders Shopify actually recorded. The total across channels then matches your revenue, which is also how you get your MER: total revenue over total marketing spend.

Step 1: Tag every ad with its campaign, ad set and ad

Add these parameters once at the account or ad level. Each platform replaces the placeholders with the real names or IDs when it serves the ad.

PlatformWhere it goesParameters
Meta (Facebook, Instagram)Ad level → Destination → URL parametersutm_source={{site_source_name}}&utm_medium=paid&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&utm_id={{campaign.id}}
Google AdsAccount or campaign settings → Final URL suffixutm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={adgroupid}&utm_content={creative}
TikTok AdsAd → Destination URL → URL parametersutm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_NAME__&utm_term=__AID_NAME__&utm_content=__CID_NAME__

A few rules keep the report clean:

  • utm_term is the ad set, utm_content is the ad. Keep that order on every platform, so the levels line up when you compare them.
  • Names read better than IDs, but must stay URL-safe. Ad names with & or # break the query string. Google's ValueTrack only offers IDs in the URL suffix, so Google rows show IDs.
  • Keep Google's auto-tagging on. The gclid it adds still matters to Google; the suffix only adds the UTMs.
  • Click through once. Preview an ad, open the landing page, and check that the parameters arrived in the address bar with real values.

Step 2: Record the tags on every visit

The tags only exist in the landing URL, so something on your store has to read them the moment the shopper arrives and keep them with the visit. A first-party pixel does this: it stores the UTM parameters, the click IDs (fbclid, gclid, ttclid) and the referrer for each session, and links later sessions from the same shopper.

On Shopify, that pixel also has to see the checkout, which runs outside your theme. Zalify Pixel runs as a Shopify customer events pixel for that reason, so the checkout and the order belong to the same visit history as the ad click.

Step 3: Tie each order to its visits, then pick a model

When the order arrives from Shopify, it is matched to the shopper's visits before it: first visit, last visit, and everything between. An attribution model decides how the order's revenue is split across them:

ModelCreditsUse it to see
Last clickThe last visit before the orderWhat closed the sale
Last non-direct clickThe last visit that wasn't DirectThe last marketing touch
First clickThe first visitWhat found the customer
LinearEvery visit equallyThe whole path, evenly
Any clickEvery channel that appeared, in fullWhether a creative appeared at all

Any click gives each channel the full order value, so its totals add up to more than you sold. Use it to see reach, not to split revenue.

Step 4: Read the report down to the ad

In Zalify Attribution, the performance table starts at GA4's channel groups and drills down one level at a time:

Channel group → source / medium → campaign → ad set (utm_term) → ad (utm_content)

At the ad level you see each creative's attributed orders and revenue under the model you picked, for any window up to 90 days, with the top 25, 50 or 100 rows and an export of the rest. Open any order to see the visits behind it: the UTM parameters, click IDs and landing pages, in order.

Two comparisons are worth making every week:

  • Switch between first click and last click. A creative that leads under first click but not last click finds customers that other channels close. Cutting it can lower orders elsewhere.
  • Put new creatives next to proven ones. Compare by attributed orders, not by the platform's own conversions.

What to check in any attribution tool

QuestionWhy it matters
Does it go down to the ad, not just the campaign?Creative decisions are made at the ad level
Can you switch models on the same data?One model hides introducers or closers
Can you open an order and see its clicks?You can audit a number before acting on it
Is email revenue in the same report?Repeat orders from flows otherwise look like Direct
How is it priced?Some tools charge a share of revenue; Zalify charges US$0.05 per attributed order

Limits to know

  • Clicks only. UTM attribution needs a click. An ad the shopper only saw isn't credited; the order goes to what they clicked later, or to Direct.
  • Untagged links read as Direct. Influencer posts, organic posts and old ads without parameters lose their source.
  • It isn't an incrementality test. Attribution shows which creative the converting shoppers clicked, not how many of those orders would have happened anyway. Zalify doesn't offer media-mix modelling or holdout tests.

Sources

Frequently asked questions

Which attribution tools show the ad creative behind each Shopify order?

Any tool that captures the ad's UTM parameters on the visit and joins the visit to the Shopify order can. Zalify Attribution does this for Meta, Google, TikTok and email in one report, and drills down from channel to campaign, ad set and ad.

Why do Meta and Google both claim the same order?

Each platform counts the orders it can link to its own ads, with its own click and view windows, and doesn't know about the others. A shopper who clicked a Meta ad and later a Google ad is a conversion in both reports. Attribution on your own data credits each order once under one model.

Which UTM parameters do I need for creative-level attribution?

utm_source, utm_medium and utm_campaign identify the channel and campaign; utm_term carries the ad set and utm_content the ad. Fill them with each platform's dynamic parameters so every ad tags itself.

Does this include view-through conversions?

No. UTM-based attribution needs a click: the tags arrive on the landing URL. Orders influenced by an ad the shopper only saw are credited to whatever they clicked later, or to Direct.

Can I see ad attribution and email revenue in one report?

Yes, if the same tool records both. Email sent from Zalify is attributed with the same model as Meta, Google and TikTok, so ads that brought a customer in and flows that brought them back sit in one report.

What does Zalify Attribution cost?

US$0.05 per attributed order. Zalify Attribution is part of the Zalify platform, from US$249 a month for stores under US$1M GMV with a 3-day free trial: a fixed fee by store size, never a percentage of revenue.

Track ChatGPT Ads with the rest of your ads

Start a 3-day free trial, or book a demo with our team.