Tracking Whop, Kajabi, and Digistore24 Sales Back to Your Ads
Whop, Kajabi and Digistore24 each record sales their own way. Here's how to tie those sales back to the ads that drove them, and the matching problems to plan for.
If you sell courses, memberships or communities, there’s a good chance your sales happen on a platform you don’t fully control. Tracking Kajabi sales to ads, attributing Whop purchases to a campaign, or tying a Digistore24 order back to the creative that started it all run into the same basic problem: the checkout lives on someone else’s system, so the ad platform’s pixel only sees part of the story, and your attribution tool only sees what the platform chooses to share.
This post walks through how each of these three platforms fits into an ad attribution setup, the gaps you should expect, and a practical way to get every sale tied back to the campaign that earned it, including the sales that close on a call rather than at checkout.
Why platform sales are hard to attribute
All three platforms share a pattern that makes attribution harder than a store you built yourself:
- Checkout happens on their domain or inside their system. Your tracking scripts may not run on the payment page, or may run in a limited way.
- The buyer’s identity at checkout may not match their identity at opt-in. People opt in with a work email and pay with a personal one all the time.
- Sales arrive asynchronously. Renewals, installment charges, refunds and chargebacks happen days or months after the original purchase.
- Many info businesses sell high-ticket offers on calls, then send the buyer a payment link. The ad drove a lead, the lead booked a call, and the payment happened weeks later.
The fix in every case has the same three parts: track the visitor from the ad click with your own first-party tracking, pull the platform’s sales in through an integration or API, and match each sale to the right person.
Step one: track the visitor before they reach the platform
No platform integration can recover an ad click your tracking never saw. Before worrying about sales data, make sure every page between the ad and the checkout carries your tracking:
- Your landing pages, opt-in pages and VSL pages have your first-party pixel installed.
- UTMs and ad click IDs (fbclid, gclid) are present on every ad URL.
- If the funnel crosses domains, identity carries across. See tracking leads across subdomains and funnel domains.
- The visitor is identified with an email or phone number as early as possible, usually at opt-in. That identifier is what you’ll match sales against later.
If you sell through a call, the booking also needs to carry the source. Without that, you’ll know a sale came in, but not which ad started the journey.
Kajabi: course and membership sales
Kajabi is an all-in-one platform for courses, memberships, coaching products and communities, with its own checkout pages and offers. For attribution, the important part is getting each payment and refund out of Kajabi and onto the right person in your attribution system.
The things to watch:
- Offer pages hosted on Kajabi. If you send ad traffic straight to a Kajabi sales page, install your tracking there too. If you send traffic to your own landing page first, make sure the click carries into the Kajabi checkout.
- Payment plans and subscriptions. Kajabi offers can be one-time, subscription or multi-pay. Decide how you’ll count each so a 3-pay buyer doesn’t look like three customers.
- Refunds. A refunded Kajabi sale should reduce revenue for the campaign that drove it, not quietly sit in your ROAS.
In Callix, Kajabi connects as a payment processor with a Kajabi API key. Payments and refunds sync to the matching prospects, so a Kajabi sale lands on the same record as the ad click, the opt-in and any sales call that came before it.
Whop: digital products and communities
Whop is a marketplace and platform for selling digital products, memberships, software access and communities. Many creators run one or more Whop businesses, sometimes several for different offers.
Things to plan for:
- Multiple businesses. If you run more than one Whop business, decide whether you want reporting split by business or combined. Mixing them makes it hard to see which offer a campaign actually sells.
- Business IDs. Whop identifies businesses by an ID starting with
biz_. When connecting any tool, use the ID itself; pasting the full dashboard URL can break some integrations. Callix, for what it’s worth, keeps just thebiz_ID if you paste the URL. - Recurring memberships. As with Kajabi, renewals shouldn’t be counted as new sales.
In Callix, a dashboard widget narrowed to some of your Whop businesses counts only those businesses’ calls, leads, events, dials and site visits as well as their spend and revenue, so close rate, AOV and cost per call all describe the same businesses. That matters if one Whop business is a $49 community and another is a $3,000 program; blending them makes both look average.
Digistore24: affiliate-driven and reseller sales
Digistore24 is a digital product marketplace and reseller widely used for info products, with a large affiliate network. It handles checkout and payment processing for the vendor, and a lot of its volume comes from affiliates rather than the vendor’s own ads.
That creates two specific attribution questions:
- Is this sale from your ads or from an affiliate? If you run paid traffic and also have affiliates promoting the same product, a sale can have both an affiliate tracking ID and an ad click in its history. Decide upfront how you’ll credit those, and report affiliate sales separately so they don’t inflate your paid ROAS.
- Refunds and chargebacks. Marketplace products often see more of both. Your campaign revenue should reflect them.
In Callix, Digistore24 connects under Settings → Integrations with an API key. Sales sync every 30 minutes and link to the prospects who paid, and refunds and chargebacks update the payment they reverse.
The matching problem: when the buyer’s email doesn’t match
This is the step that quietly breaks most info-product attribution. A prospect opts in as sarah@herbusiness.com, books a call, and then pays on Kajabi as sarahj1987@gmail.com. The payment arrives with an email your system has never seen. Without matching, it shows up as an unattributed sale, and your best campaign looks worse than it is.
Ways to reduce this:
- Pre-fill checkout emails from the opt-in where the platform allows it.
- Send payment links tied to the lead’s record, rather than a generic link, for call-closed sales.
- Match on more than email. Phone number and payer name catch a lot of mismatches. Callix links a payment without a matching email to its contact by phone number or payer name.
- Review unmatched sales weekly and connect them by hand. It’s tedious but often a small number, and each one is real revenue a campaign deserves credit for.
There’s a deeper look at this in payment matching when the emails don’t match.
Splitting revenue by product
Most info businesses sell more than one thing: a low-ticket front end, a core course, a high-ticket coaching program, a community. Attribution that reports “revenue” without splitting by product will tell you a campaign is profitable when it’s actually selling the front end at a loss and relying on a few back-end buyers.
Make sure product names come through from each platform consistently, and filter your campaign reporting by product. In Callix, the Products filter on dashboard widgets lists products from every connected processor, including Whop and Kajabi, not just Stripe. Pair that with a unique sales count so a buyer of two products isn’t double counted when you calculate close rate.
Comparing platform-reported numbers with your own
Every ad platform reports its own revenue figures based on its own pixel and attribution window. You’ll almost always see a gap between what Meta says your campaign earned and what actually landed in Kajabi, Whop or Digistore24.
That’s normal. Use the platform’s reported number as a directional signal, and use revenue from the actual payment processor as the number you make budget decisions on. If the gap is large and growing, check for missing pixels on checkout pages, unmatched sales, or refunds that the ad platform never heard about. Why your attribution data doesn’t match your ad platform’s walks through the common causes.
A setup checklist
| Step | Kajabi | Whop | Digistore24 |
|---|---|---|---|
| First-party tracking on all pre-checkout pages | Yes | Yes | Yes |
| Sales pulled in via integration or API | API key | Business ID | API key |
| Refunds reflected in campaign revenue | Required | Required | Required, plus chargebacks |
| Multiple businesses or stores split in reporting | If applicable | Usually | If applicable |
| Affiliate sales reported separately | If you run affiliates | If you run affiliates | Almost always |
| Payment-plan buyers counted once | Required | Required for memberships | Required |
| Unmatched sales reviewed weekly | Yes | Yes | Yes |
Conversion events for platform sales
Once sales are matched to the original visitor, send them back to the ad platforms as purchase conversions so the algorithm learns from real buyers. A few rules:
- Send one purchase per buyer, not one per installment or renewal.
- Include hashed email and phone, plus the original click ID, to maximize match rates.
- Exclude affiliate-driven sales if you want your paid campaigns optimizing only on buyers they actually drove.
- For high-ticket offers that close on calls, consider optimizing on a qualified call event instead, and use purchases mainly for reporting.
Platform checkouts aren’t going away, and they shouldn’t. They handle payments, access and compliance so you don’t have to. The job is simply to make sure every sale they process finds its way back to the ad that started it.
