/v1/track call — Affixo evaluates a chain of
attribution methods in precedence order and stops at the first one that
matches. A conversion is never credited to two affiliates, and the match is
recorded on the conversion as match_method + match_confidence.
The six methods
Listed in the default precedence (strongest, most explicit signal first). The order and which methods are enabled are configurable per workspace and per campaign under Admin → Attribution.No method depends on a third-party cookie, so none of this breaks when a
browser blocks them. Methods 1, 2, 4, 5 and 6 need nothing stored in the
browser at all, and survive ad blockers and cookieless renewals outright.Method 3 is the one with a shelf life: it needs the visitor’s browser to still
remember them. Safari and every iOS browser clear that storage after roughly
7 days without a return visit, so a click-based referral older than about a
week falls through to the identity signals below on those browsers. Chrome,
Edge and Firefox keep it for the full window you configure.
Identity signals (beneath stored identity)
Two signals re-identify a returning visitor whose browser no longer remembers them, so the click method can still find their original click:- Device fingerprint — a SHA-256 hash of stable device characteristics.
- IP address — matched within the attribution window.
Precedence, idempotency, and reversals
- First match wins. The chain runs in the configured order; the first enabled method that resolves an affiliate credits the sale and the rest are skipped.
- Idempotent. Conversions dedupe on the Stripe event id (webhook) or your
external_id(/v1/track) — safe to retry. - Reversals claw back automatically. A refund (
charge.refunded) and a chargeback (charge.dispute.created) reverse the conversion and the commission it generated.