Sellfy With Causality Engine: Check the Traffic Sources Report
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-11-11
The short answer: Sellfy's Overview will tell you which sites sent visitors and how many orders the store took. It will not tell you which of those sites caused the orders, and neither will any of the ad or affiliate dashboards pointing at it. Sellfy, the store builder for creators selling downloads, subscriptions and merch (entry), files each visit under its referring domain unless the link carries a utm_source, which replaces it (analytics article). For the cause, connect GA4, make sure a completed order arrives there as a key event, and give the export to Causality Engine, a causal read of one GA4 file whose first finding is free on the start page.
Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.
Before trusting a traffic source:
- Take tax and fees out of revenue. Sellfy's revenue figure includes tax and transaction fees (analytics article). For example, $7,240 of revenue holding $1,086 of VAT and $244 of processor fees is 7,240 - 1,086 - 244 = $5,910 that is yours to divide among channels.
- Start from the order export you already have. Its columns include Date, Subtotal, Discount, Tax, Total and Coupon code (export article), which is enough for every sum on this page.
- Check GA4 for the order itself. Place a real order and look for it in GA4 before reading any channel report there. The reason is the next section.
The tool, the read, and where each fact lives
| Fact | Source | |
|---|---|---|
| Sellfy | A store for digital products, subscriptions and print-on-demand | Sellfy entry |
| Its source report | Referring domain by default; a utm_source replaces it; visits counted once per source per day | Analytics article |
| Its crediting rule | Affiliates: a sale inside the cookie length you set after a partner's link click | Affiliate program article |
| Its GA connection | Measurement ID under Integrations, Apps, Google Analytics; events described in Universal Analytics terms | Google Analytics article |
| GA4 channel | Google's rules on source and medium; most paid channels need a medium | Default channel group |
| The read | GA4 Attribution paths CSV, 12 months or more; caused share beside last-click | How it works |
| Integration between them | None; the read takes the channels GA4 recorded | Integrations |
| What checking costs | Free first finding; €99 per full read, excluding VAT (checked on 11 November 2026) | Pricing |
Sellfy's own count
The analytics article, updated on 2 November 2026, defines the Overview figures plainly:
- Visits are product page plus store page visits, unique per traffic source and date. Two clicks from Twitter on one day are one visit; a Facebook click the same day is another.
- Purchases count transactions, so four products in one checkout are one purchase.
- Conversion rate is purchases over visits.
- Revenue includes tax and transaction fees, in UTC.
- Traffic sources group referrers into direct, social, search and others, with Direct meaning a source that cannot be specified: a typed address, a bookmark, or a link opened from a mail or social app.
The article's advice on campaigns is to add a utm_source, such as Instagram-Ad1 for an ad and Instagram-bio for the profile link, so that both stop collapsing into instagram.com. That works for Sellfy's report.
Sellfy does credit sales to someone in one place: the affiliate program on Business, Premium and Custom plans. A partner's link click starts a cookie whose length you choose, and any sale inside it earns the commission; the article calls 30 days a very common period (affiliate program article). It is a payout rule, chosen by you, and it pays for a sale whether or not the click changed anything.
What GA4 needs that Sellfy's guide does not spell out
Sellfy's Google Analytics article, last updated on 27 March 2025, asks for a GA4 measurement ID. The rest of it describes the older product: events listed by category, action and label (ec-ecommerce-send, product, download when a buyer completes a purchase), and an Enhanced Ecommerce switch under Admin, View, Ecommerce Settings. Those are Universal Analytics terms, and Shopify's help centre, for one, records that Universal Analytics stopped processing new data on 1 July 2023 (migration page). The same Sellfy article lists a purchase action among the data it collects. Whether that reaches a GA4 property as an event named purchase is something to check, not assume.
So check it. After a real order, open Admin, Events in GA4. If an event that fires on a completed order is there, mark it as a key event with the star icon (key events help). A read cannot work on a store whose orders never reach GA4.
Two more details decide the channel:
- Source alone is not enough for GA4. Sellfy's examples set only utm_source. Google's channel rules put a visit in Paid Social only when the medium matches a paid pattern such as cpc or paid, so Instagram-Ad1 with no medium cannot land there. Add utm_medium=paid_social to ad links and utm_medium=social to the bio link; Sellfy's report still reads the source.
- Embedded stores cross domains. Sellfy says cross-domain measurement is unnecessary on a Sellfy-based store and needed when you sell from your own website through its embed, and the domain goes in the same Google Analytics settings (Google Analytics article). Google explains what happens without it: one person on two root domains counts as two users and two sessions (cross-domain help).
A worked example: one merch drop, five ledgers
For example, invented for this page and not from any store: a creator's November merch drop sells 268 orders. The figures around it:
| Ledger | Orders claimed or counted |
|---|---|
| Meta Ads Manager | 117 |
| Sellfy affiliate partners, 30-day cookie | 58 |
| YouTube description link, the creator's estimate from Sellfy's source report | 74 |
| Sellfy email campaign, the creator's estimate | 49 |
| GA4 purchases recorded | 231 |
| Sellfy order export | 268 |
The claims sum to 117 + 58 + 74 + 49 = 298, which is 298 - 268 = 30 orders that two parties both think are theirs. GA4 recorded 231 of 268, so 268 - 231 = 37 buyers are missing from the file any GA4 tool reads, and of the 231, 64 sit under Direct.
What a causal read adds is set out on its how-it-works page: Direct split back to the channels that sent those buyers, each channel's caused share next to a last-click rebuild, a data-health score from 0 to 100, and a next step of raise, cut or hold with a one-region test first. The read will not divide the 298 claims fairly. It replaces them with one estimate per channel, and a disagreement with Meta's 117 is the cue for a test, not for a cut.
Count it by hand first: one coupon per channel
Sellfy builds the free check into its coupons. A minus and the code added to the end of a product URL gives a link with the discount already applied, and the article suggests the same codes as a simple way to see one partner's sales in the Orders list (coupons article). Make one code per channel, at the same small discount, and put each pre-applied link only in its own channel. After the drop, filter the Coupon code column of the order export.
For example, 41 orders carrying the YouTube code, against the 74 the creator had credited to that link, say the link drove at least 41 orders directly. They say nothing about buyers who watched the video and typed the store's address later. That limit is real. The check is still free, and enough to settle an argument about one link.
Where this pairing gives out
The read needs 12 months or more of GA4 history and a purchase key event, per the how-it-works page, so a store whose GA4 never received orders starts from the day that is fixed. It runs under GA4's consent and browser limits. It works per channel, so one video or one coupon stays outside it. And a channel holding under 1% of credit on both methods is called too small to act on (how it works).
Sellfy does what the read does not: it takes the payment, prints and ships the merch, and keeps the order record everything here is checked against.
Sellfy charges 0% transaction fees and sells plans by sales per year instead, up to $10,000 on the first tier (pricing, checked on 11 November 2026). A store that grows past its cap moves to the next plan whichever channel did the selling, so a report that names sources but never weighs them costs Sellfy nothing. The affiliate cookie is the same in miniature: its length is yours to set, and every extra day of it is paid for by the creator.
Then the full read
When the coupon test has settled one link and the question is the whole mix, export GA4's Attribution paths report and put it on the start page. The first finding is computed in your browser and costs nothing. Causality Engine, which I founded, sells the full read of that file for €99 once, excluding VAT, with a refund inside 30 days (pricing, checked on 11 November 2026).
See also
- Sellfy: the store, its plans and sales caps
- How to use Sellfy: a print-on-demand merch launch, step by step
- Sellfy on the marketplace: Sellfy's affiliate program terms
- Causality Engine: the read, its price and its limits
- How to use Causality Engine: from the export to one regional test
- Causality Engine on the marketplace: the program terms, stated as the owner's
- Sellfy vs Shopify: a creator store against a full platform
- How to export GA4 data for attribution: the file the read needs
FAQ
Is there a Sellfy app for Causality Engine?
No. The two never exchange data. Causality Engine's integrations page describes a read of the channels in a GA4 export, so Sellfy matters only through what it sends to your GA4 property.
Why does Sellfy show more Direct than I expect?
Its analytics article counts links opened from mail or social apps as Direct when the source cannot be specified (analytics article). A utm_source on every link you post moves those visits to a named source.
Do I need cross-domain measurement on Sellfy?
Only when the store is embedded on your own website. On a Sellfy-based store the Google Analytics article says it is not needed.
ABOUT THE AUTHOR
I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.
I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.
The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.
With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.