Affiliates
The affiliate program tracks the performance of influencer links. You mint a short, branded link for each influencer; it redirects to a destination on your store with UTM tags and a click id. On Shopify, when that click later turns into an order, Zubby matches it back to the influencer and reports clicks, conversions, attributed revenue, and commission owed. On WooCommerce and custom stores, clicks are counted but orders are not matched back yet (see below).
Affiliates vs. referrals
Where it lives
Dashboard → Affiliates. The top of the page is the performance report: a KPI strip (influencers, clicks, orders, attributed revenue) and a per-influencer table covering the last 30 days. Below it, the Affiliate links panel is where you mint, review, and manage the links themselves - everything lives on one page.
Minting a link
- In the Affiliate links panel, enter the influencer’s name and a short slug (letters, numbers, dashes - this becomes the shareable URL, so keep it memorable:
jane10). - Set the destination URL - it must be a page on your own store domain; off-domain redirects are rejected so the link can’t be abused as a phishing redirector.
- Optionally add UTM tags and a commission percentage (0–50%). Setting the commission up front means the report computes what you owe instead of you reconciling it in a spreadsheet later.
- Share the generated
/go/<slug>URL (it carries astoreparameter - share it exactly as shown). Clicks and conversions start reporting in the table above.
How a link works
- Slug - the short path. Links resolve at
/go/<slug>and are unique per store. - Influencer name - who the link belongs to; this is the row label in the report.
- Destination URL - where the click lands on your store.
- UTM source / medium / campaign - optional tags appended to the destination for your own analytics.
- Commission % - optional. When set, the report computes commission owed; when unset, commission columns show a dash.
How attribution works
- A click on
/go/<slug>records a unique click id, then redirects the shopper to the destination with that id appended as asp_clickURL parameter. - On Shopify, the Zubby widget loader on your storefront reads
sp_click, keeps it in the browser’s local storage for up to 30 days, and writes it into the cart’s attributes (sp_click_id). - Cart attributes carry through to the order. When the order reaches Zubby, the click id is read from the order and the matching click is credited: the order’s revenue becomes the link’s attributed revenue and a conversion is counted.
What this does and does not prove
Shopify only today
Reconcile before paying
The report selects clicks made during the last 30 days. The browser relay retains a click for up to 30 days, but the report window and a contractual commission window are different things. A later link visit can replace local storage; the Shopify relay also uses a session guard after writing the cart. Do not assume a universal first-click or last-click policy across competing links.
The current code rounds the received order total to whole units and displays the report in the store currency. It does not perform foreign exchange conversion despite older internal USD field names. Matching writes one order ID and value on the click row, rather than maintaining a full commission ledger. Refunds, cancellations, repeat orders, and missing click IDs need reconciliation with the platform before payment; no automatic clawback or payout should be inferred from this report.
Synthetic example: an eligible order total of 89.60 is stored as 90. At a 10% link rate the rounded estimate is 9 in the displayed currency. Compare that with the agreed commission basis, taxes, shipping, refunds, and order status before paying externally. Keep the order and link IDs with your reconciliation record. This estimate is not an invoice.
Reading the report
The per-influencer table is sorted by conversions and shows:
| Column | Meaning |
|---|---|
| Influencer | The link owner’s name. |
| Slug | The link path, shown as /go/<slug>. |
| Clicks | Clicks in the last 30 days. |
| Orders | Clicks that converted to an order. |
| CVR | Conversion rate = orders ÷ clicks. |
| Revenue | Rounded attributed order value, displayed with the store currency. |
| Comm. % | The commission rate set on the link, or a dash. |
| Commission | Revenue × commission %, rounded - what’s owed. |
When more than one link exists, a totals row sums clicks, orders, revenue, and commission across all influencers. The KPI strip at the top mirrors these totals for the whole window.
Gotchas
- The report window is fixed at 30 days. Older clicks and conversions are not in these numbers.
- Attributed revenue is tracked in whole currency units (no cents) and commission is rounded - treat the commission figure as an estimate for reconciliation, not an invoice.
- Commission only computes when a percentage is set on the link. Links without one still track clicks, orders, and revenue.
- Conversion matching depends on the Zubby widget loader running on the landing page (it is what records the click id), the click id surviving in browser storage until checkout (30 days), and the order reaching Zubby through the store connection. Cleared browser data, private browsing, a different device, or a page without the widget can under-attribute.
- The shareable URL includes a
storequery parameter - a bare/go/<slug>without it won’t resolve, so copy the link exactly as the dashboard shows it.
Related
- Loyalty & referrals - points, tiers, and the reward catalog.
- Cart & browse rescue - Zubby’s own attributed revenue channel.
- Analytics - store-wide performance and attribution.
- Shoppers, lifecycle & VIP - what happens to shoppers an affiliate sends you.