Tapfiliate With Causality Engine: Check the Last-Cookie Sales
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-11-11
The short answer: Tapfiliate's conversions tab lists more affiliate orders than GA4's Affiliates row, and both are right by their own rules. Tapfiliate, affiliate tracking software with a Shopify app and a WooCommerce plugin, credits the last affiliate link clicked within a cookie time of 45 days by default, up to 365 (program settings), and an affiliate's coupon code wins over any click (coupon guide). GA4 sees none of that unless the links carry tags. Once they do, Causality Engine, which reads one GA4 export and estimates what each channel caused, starts with a free first finding at app.causalityengine.ai/start.
Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.
What to settle before the next commission run:
- The window arithmetic. For example, a partner who posts on the 1st and the 15th of each month, with the default 45 days, keeps a buyer who clicked once inside a cookie for 45 days after that click, long enough to span the next two posts and the paydays between them.
- The two switches already in your account. Cookie time in days sits under Programs, General settings. Enable lifetime/recurring commissions sits under Programs, Commission structure, and is off by default in new programs (lifetime commissions).
- The tag GA4 needs. Google files a visit under Affiliates only when its medium is exactly affiliate (default channel group). Check one live partner link for it.
Tapfiliate beside the read
| Tapfiliate | Causality Engine | |
|---|---|---|
| Job | Tracks affiliate, referral and influencer programs for shops and SaaS (entry) | Reads the GA4 Attribution paths CSV (entry) |
| Rule for a sale | Last affiliate link clicked, inside the cookie time; a coupon overrides the click (last cookie rule, attribution rules) | Each channel's caused share next to last-click, with data health from 0 to 100 (how it works) |
| Source of orders | The Shopify app or custom pixel, the WooCommerce plugin, the API (Shopify guide) | GA4's purchase data in the export |
| UTM tags | Optional, typed into the Landing page URL with merge tags (UTM article) | Adds none |
| GA4 channel | Affiliates with medium affiliate; Referral or Direct when untagged (Google) | Any channel in the file |
| Link between the two | None | None (integrations) |
| Cost of the check | Reports included in the plan | First finding free; €99 per read, excluding VAT (pricing, checked on 11 November 2026) |
The rules behind each Tapfiliate conversion
Tapfiliate collects its rules in one help article written for your program terms, Attribution Rules to Cover in Your Affiliate Program Terms. Read in order:
- Last cookie counts. If a buyer clicks affiliate A's blog link, leaves, then buys after clicking affiliate B's post, B is credited (last cookie rule).
- Cookie time. 45 days unless changed; any value up to 365, per program, live as soon as it is saved. After it expires, Tapfiliate does not track the conversion at all.
- A coupon beats a click. An order carrying a code assigned to an affiliate goes to that affiliate, even if another partner's link was clicked first. Coupon attribution needs no cookie, and native coupon tracking covers Shopify, WooCommerce, Wix Stores, PrestaShop and Teachable (coupon guide).
- Lifetime, if switched on. Lifetime commissions tie a customer permanently to the first affiliate and reward all later conversions; the article names ecommerce repeat purchases as the use (lifetime commissions).
- Review, then refunds. Commissions wait for manual approval by default. Refunds and cancellations are not adjusted automatically by the tracking integration, so you void them yourself.
On Shopify, the custom pixel in the Shopify guide sends the checkout subtotal as the order amount, with any discount codes attached. The guide says to use the app or the pixel, never both.
The reporting page then shows affiliate-driven revenue by date, affiliate, referrer, country and landing page, and exports any report as a CSV sent by email.
From partner link to an Affiliates row in GA4
A Tapfiliate link adds a ref parameter to your shop's address, the value that ties the click to an affiliate. GA4 ignores it. Without tags, a click from a partner's site arrives as Referral, which Google defines as non-ad links on other sites, and a click from an app or a PDF lands in (direct) / (none) (direct traffic).
Tagging is one field. The UTM article puts it under Programs, General settings, Landing page URL, where merge tags such as ${affiliate.id} and ${program.title} are filled in per affiliate. Its example sets utm_source and utm_campaign and leaves out utm_medium. Copy it as written and the medium matches neither Affiliates nor Referral on Google's list, which leaves Unassigned. Add the third tag, as Google's URL builder page says to do on every URL:
?utm_source=${affiliate.id}&utm_medium=affiliate&utm_campaign=${program.title}
The article's own warning applies: test a live link in Google Analytics before sending it to partners.
Coupons stay outside this. A buyer who hears a code on a podcast and types the shop's address gets credited to the affiliate in Tapfiliate and to Direct in GA4.
The claim gap: a worked example
For example, using invented numbers to show the arithmetic, not any store's results: a homeware shop on Shopify books 1,846 orders in September.
- Tapfiliate records 212 affiliate conversions: 141 by link, 71 by coupon.
- Meta Ads Manager claims 731 purchases; Google Ads claims 1,029.
- GA4, with partner links now tagged as affiliate, gives the Affiliates row 96 purchases.
The platforms together: 212 + 731 + 1,029 = 1,972 orders, which is 1,972 - 1,846 = 126 more than the shop shipped. On the affiliate line, Tapfiliate's 212 against GA4's 96 is a gap of 116. The 71 coupon orders explain most of it, since GA4 never saw a tagged visit for them. The other 141 - 96 = 45 are buyers who clicked a partner link inside the 45 days and came back through search, an ad or the address bar.
A causal read puts a third figure beside these. The how-it-works page describes it: Direct split back to the channels that sent those buyers, each channel's caused share next to a last-click rebuild from the same file, a data-health score from 0 to 100, and a next step, raise, cut or hold, tested in one region first. It reads Affiliates as one channel and cannot rank individual partners or codes. If its Affiliates share lands well below Tapfiliate's count, change commission rates in one market before the whole program.
Matching orders by hand, free
Tapfiliate documents no holdout for affiliate traffic, so this check is by hand, and it settles the 116 on its own.
- Export September's conversions from the Conversions tab, where each one carries an External id (conversions page); the custom pixel in the Shopify guide sends the order ID there.
- In a GA4 exploration, list Transaction ID against Session default channel group for the same month; both are standard dimensions (GA4 dimensions).
- Check that both lists use the same order reference, match them, and count where each affiliate order landed.
For example, the 212 split as 96 Affiliates, 58 Direct, 31 Organic Search and 27 Paid Search: 96 + 58 + 31 + 27 = 212. Coupon orders that sit under Paid Search were already paid for once, through the ad.
What the read leaves to Tapfiliate
- Partner payouts, commission types per product, fraud review and coupon assignment are Tapfiliate's job. The read has no partner-level view.
- It needs a GA4 purchase on every order and 12 months or more of history (how it works).
- Where spend is too small to show a signal, the home page says it declines, and a channel under 1% of credit on both methods is called too small to act on (pricing for agents).
Tapfiliate prices its plans on volume, 500 conversions a month on Launch and 10,000 on Scale, with overage at $15 or $10 per 1,000 conversions added to the next bill without a prompt (pricing, billing article, checked on 11 November 2026). A longer cookie time and coupon credit both raise the count of conversions Tapfiliate records, and that count is what its meter reads.
With the order match done, the next step costs nothing either: export the Attribution paths report and drop it on the start page, where the preview runs in the browser. Causality Engine, which I founded, charges €99 once for the full read, refundable for 30 days, before VAT (pricing).
See also
- Tapfiliate: plans, limits and the billing complaints
- How to use Tapfiliate: commission rates per WooCommerce category
- Tapfiliate on the marketplace: Tapfiliate's affiliate program terms
- Causality Engine: what the read returns and costs
- How to use Causality Engine: the export, the read, the test
- Causality Engine on the marketplace: the affiliate terms for the read
- Post Affiliate Pro vs Tapfiliate: tracking requests against clicks and conversions
- How to find what Direct traffic is hiding: where coupon buyers often land
FAQ
Is there a Tapfiliate connector for Causality Engine?
No, and the read does not need one. Causality Engine takes a CSV exported from GA4 (integrations page); Tapfiliate's partners appear in it as whatever channel their tagged visits fell into.
Should affiliate coupons be switched off to make the numbers agree?
No. Codes reach buyers that links cannot, which is why Tapfiliate documents them for podcasts and video. Match orders by hand instead, and keep coupon orders as their own line in the comparison.
Does changing the cookie time rewrite past conversions?
The settings article says a change takes effect immediately. It does not say past conversions are recalculated, so note the date of any change and compare months on either side of it.
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.