All articles

Attribution

How to Track Influencer Sales on Shopify

Wiring codes and links into Shopify takes an afternoon, and every guide walks you through it. None of them mention that the wiring only reads the posts it is attached to, and almost none of the posts are.

· 7 min read

Photo by Rifki Kurniawan on Unsplash

Ask how to track influencer sales on Shopify and every answer you get is a wiring diagram: give each creator a discount code, hand out UTM-tagged links, install an affiliate app, read the dashboards. The wiring is real and you should build it, and the first half of this guide builds it properly. But search this exact phrase and one of the first results is a store owner asking how to track sales from influencers without a coupon code, and the ranking guides answer that question by recommending a different shape of coupon. Nobody answers the question as asked, because the honest answer is uncomfortable: every tracking method you can install observes an artifact, not a sale, and most influencer posts carry no artifact at all.

So this guide does both halves. First the artifacts, wired so the numbers are readable. Then the part the setup guides skip: what those numbers actually count, and how to measure the posts that carry nothing.

What "tracking a sale" means on Shopify

Every method on the standard list is the same move: place a marker in advance, then count the orders that touch it. A discount code is a marker the shopper types at checkout. A tracked link is a marker the shopper clicks. Each observes something narrower than "this creator sold this order," and each fails differently.

The code

Counts redemptions

Every order that types it at checkout lands on the creator. The shopper who saw the post and paid full price does not, and the coupon-site order that never saw a post does.

The link

Counts click-throughs

The session that arrives through it is attributed while the attribution window lasts. Watched on TikTok, searched on desktop three days later reads as organic search.

The bare post

Counts nothing

No code in the caption, no link to click. Whatever it sells arrives looking like direct or organic traffic. Most creator posts are this one.

Every tracking method on Shopify is an artifact placed in advance, and each one observes something narrower than a sale. The third column is the one no setup guide budgets for.

Keep the three columns in mind, because the whole discipline of influencer tracking is knowing which column each number in your admin comes from. Now build the first two properly.

Step 1: One code per creator, never per campaign

Create a unique discount code for every creator you work with, named so the creator is legible in the name itself. MAYA15, not SUMMER15. The moment two creators share a code, their results are permanently blended and nothing downstream can unblend them.

Shopify reads codes natively: the sales-by-discount view in your analytics gives you orders and revenue per code with nothing else installed. That native read is the reason codes are the right floor for a small program. Three rules keep the floor solid:

  • Name codes for creators, not campaigns. The campaign is an attribute you add in your spreadsheet later; the creator is the thing you are measuring.
  • Make the discount real. A 5% token gets skipped at checkout by shoppers who were sent by the creator anyway, and every skip is a sale that silently leaves the creator's column.
  • Check the coupon-site leak before you celebrate. Search your own code names in an incognito window monthly. Once a code hits the aggregator sites, its redemptions include shoppers who never saw a post, and the number starts flattering the creator instead of measuring them.

Codes catch checkout. Links catch arrival. You want both, because they fail on different orders.

ArtifactWhere you read itWhat it counts
Discount codeSales by discount, nativeOrders that redeem it at checkout
UTM-tagged linkMarketing reports / analyticsSessions that arrive through it, within the window
Affiliate app linkThe app's dashboardClick-throughs it can cookie, at its own window
Shopify Collabs referralCollabs dashboardCode and link orders on your store

The mechanics: give every creator a link with UTM parameters that name them (utm_medium=influencer plus utm_campaign=maya-glow), or let an affiliate app or Shopify Collabs generate per-creator links that do the same with commissions attached. Two things the setup guides gloss over:

  • Shopify's marketing attribution defaults to last non-direct click with a 30 day lookback. A shopper who clicks the creator's link, leaves, and comes back three days later through a Google search for your brand name gets credited to search, not to the creator. Link numbers are systematically low on exactly the behavior short-video shopping produces: watch on the phone, buy later on another device with no click at all.
  • Links mostly live in bio, not in the post. On TikTok a caption cannot carry a working link, so the click-through depends on the viewer detouring to the profile. Most never do.

At this point you have the standard setup, wired properly, in an afternoon. Every guide ranking for this keyword stops here. The rest is why you should not.

Step 3: Understand what your dashboard now counts

Here is the wiring you just built, held against real posting behavior. Our tracking index surfaces creator posts about brands by scanning the platforms directly, which means it catches the posts no dashboard reports. Across the brands it watches, this is how often the artifact is even present to be counted.

84 of 4,690

detected creators ever put a code or a link CTA in a caption

Those 84 creators' own posts, without any artifact

114 of 211 · 54%

Share of their views sitting on those bare posts

972K of 1.4M · 67%

Even the creators you instrumented post mostly bare. The code travels with one post, not with the creator.
UGCSignal's tracking index, queried August 2026: 6,187 posts by 4,690 creators, surfaced by scanning the platforms rather than by anyone reporting them. Codes and links measure the bottom bar and nothing else.

Two numbers in that figure deserve a slow read. Of 4,690 creators the scans surfaced posting about tracked brands, 84 ever put a discount code or a "link in bio" in a caption. That is under 2%, and it is not a compliance failure; most of those creators were never in a program at all. They posted because they liked the product, which is precisely the content that converts, and it arrives carrying nothing your admin can read.

The second number is worse for the dashboard's self-esteem. Even the 84 instrumented creators, the ones who demonstrably had a code and used it, posted without it more than half the time, and those bare posts held 67% of their views. The code travels with one post, not with the creator. Your sales-by-discount report is not a report on the creator's impact. It is a report on the minority of their output that happened to carry the coupon.

So treat the wired numbers as what they are: a verified floor. Real orders, correctly attributed, understated by an amount your admin cannot show you. The error always points the same direction, which is why programs that look mediocre in the discount report keep selling product nobody can explain. That unexplained remainder is the thing ROI measurement is actually about.

Step 4: Track posts, then attribute orders

The fix is a change of unit. Stop tracking codes and start tracking posts: every post about your brand, tracked or bare, in one roster. The workflow is the same one I recommend at any scale, and it runs in a spreadsheet until it doesn't.

  1. Build the roster. One row per post: creator, date, platform, views, and which artifact it carried, if any. Tagged posts and code posts are easy. The bare majority is the work: weekly searches of your brand name and product names on TikTok and Instagram, plus a watch list of every creator who has posted about you before, because their next post will probably carry nothing either.
  2. Attribute the floor. Code redemptions and link-attributed orders from your Shopify reports land on their creator rows. This column is verified and you defend it to the penny.
  3. Estimate the remainder, in its own column. When a bare post spikes and your unattributed orders spike the same day, that is evidence, not attribution. Log it against the post as an estimate. Never let estimated revenue and attributed revenue share a column; the report loses all credibility the first time someone audits a blended number.
  4. Read results at the creator level. Sum both columns per creator. A creator with modest redemptions sitting on top of repeated view spikes is your program working; the code alone would have told you to cut them.
app.ugcsignal.com/analytics

Last 30 days · by post

5 of 61 posts shown

PostAttributedManual
  • @maya.glow

    MAYA15 · tracked link

    $3,180
  • @sam.reviews

    No code, no link

    $740
  • @dana.cooks

    DANA10

    $610
  • @theo.fit

    Tracked link only

    $0
  • @nia.styles

    No code, no link

Attributed and manual stay in separate columns. A blank means unmeasured, not zero.
An illustrative weekly report at post grain, with the zeros and the blanks left in. The row that matters most is the last one: 1.1M views and no signal attached, which is a measurement problem to fix rather than a number to quietly drop.

The two-column shape is the entire trick. It survives scrutiny because it never claims more than it can prove, and it stops undercounting because the bare posts finally have somewhere to land.

When the spreadsheet stops being enough

The manual version of this genuinely works for a store working with a handful of creators. It breaks where the roster does: the weekly searches stop finding everything, the watch list outgrows the Sunday pass, and order-to-post matching by eyeball stops being defensible. That is the point where attribution software earns its slot, doing the same three things without you: scanning the platforms daily for the posts that carry nothing, tying your Shopify orders to creators through codes and clicks, and keeping attributed and estimated revenue in separate columns per creator and per post. Same workflow, same honesty rules, minus the Sunday evening.

The short version

  • Every Shopify tracking method observes an artifact: codes count redemptions, links count click-throughs inside a 30 day window, and the bare post counts nothing.
  • Wire the floor properly anyway: one real-discount code per creator named for the creator, UTM or affiliate links per creator, coupon-site checks monthly.
  • Then hold the floor against posting reality: of 4,690 creators our index caught posting about tracked brands, 84 ever carried a code or link CTA, and even those 84 posted bare 54% of the time, with 67% of their views on the bare posts.
  • Change the unit from codes to posts: one roster of every post about your brand, attributed Shopify orders on their rows, estimated revenue from bare-post spikes in a separate column, results read per creator.
  • Go manual until the roster outgrows the weekly search, then hand the same workflow to software that runs it daily.

Nora EllisUGCSignal

Nora writes about creator programs and the numbers behind them, drawing on the posts, views, and revenue UGCSignal tracks every day.

Share this guide

Close the spreadsheet. Keep the receipts.

Count the sales your codes never see.

UGCSignal finds every post about your brand, tagged or not, and ties your Shopify orders back to creators instead of coupons.

30 days free. Money-back guarantee on your first paid month. No contracts, cancel anytime.