How tracking works
How a click on an affiliate link becomes a sale with locked commission – and what happens along the way.
The click
Every affiliate link goes through Affilyflow (https://app.affilyflow.com/go/…). The click is recorded there, and the customer is sent on to the store with a click id in the address:
https://yourstore.com/product/shoes?afid=c_Go6eoYsoZA4iThree things happen at the same time:
- The commission is locked on the click. The rate the program had when the customer clicked is the rate the affiliate gets – even if the store changes it later.
- One visit counts as one click. If the same visitor clicks the same affiliate's links to the same program several times within 30 minutes, it counts as one click. An affiliate clicking their own links does not count.
- Bots and fake clicks do not count. Crawlers from search engines and SEO tools, clicks from cloud servers and abnormally many clicks from the same visitor are filtered out. The customer is still sent on to the store.
The store remembers the click
When the customer lands, the store's tracking stores the click id – how depends on the platform:
| Platform | How the click is remembered |
|---|---|
| Shopify | The Affilyflow app's Web Pixel (no code in the theme) |
| WooCommerce | The plugin stores the click on the store's server |
| Everything else | track.js in the page <head> stores the click in a cookie and in the browser's storage |
The click is remembered for up to 90 days. How long a click earns commission is set by the program's cookie window (30 days is the default; 14–90 can be chosen). A new visit never extends the window – it is always counted from the click.
Tracking coverage. The script reports when a customer lands with a click and when the click has been stored – only the click id, the store and the consent state, nothing about the visitor. Under Setup, the store can therefore see how many clicks from affiliates arrive, get stored and turn into a sale, and what could recover the rest. See Testing and troubleshooting.
The sale
When the customer buys, the sale is reported to Affilyflow with the order number and amount:
- Shopify: the pixel reports the purchase on its own.
- WooCommerce: the plugin reports the order from the store's server – refunds too.
- Stripe: the webhook reports the payment, including subscription renewals.
- Custom-built stores, the Danish platforms and Magento 2, PrestaShop and Shopware 6:
track.jsreads the sale from the Google Analytics purchase, from a line on the order confirmation page or from the platform's own code. See Custom-built store.
Personal discount codes. A discount code the store has given a specific affiliate earns that affiliate commission – even without a click, for example when the customer declined cookies or buys on another device. A valid click always wins over a code, and a code shared with all affiliates earns no commission on its own. See Personal discount codes.
The amount commission is calculated on is the goods after discounts, excluding VAT and shipping. The same order only counts once, even if the customer reloads the confirmation page. Sales in another currency are converted into the store's settlement currency at the day's rate, and the rate is locked on the sale.
Approval
A new sale is pending. The store can reject it within the program's approval period (30, 45, 60 or 90 days – set to the store's return period), for example when goods are returned. The period is locked on the sale. Once it has passed, the sale is approved automatically and the commission counts towards the affiliate's balance.
Some sales are never approved on their own: sales that need a human review, for example when the buyer appears to be the affiliate.
Test sales
The store's test link (under Setup) gives a click from Affilyflow's own test affiliate. A purchase through it becomes a test sale: it costs nothing, is not counted anywhere and sends no notifications – but it proves the whole chain works. See Testing and troubleshooting.
What we store
For the click we store the time, the link, the page it came from (address without parameters), the country and a shortened browser description (device, operating system and the browser's major version). The IP address is never stored – abuse counters use a daily key that cannot be traced back to the address. For the sale we store the order number, amount, currency and any order lines – never the customer's name, email or address.
The longer walkthrough – attribution, the cookie window, Safari and what we deliberately do not track – is in the guide to affiliate tracking.
Missing something?
Write to us – we answer quickly, and the page gets fixed.