How it works
Twelve steps,
click to settlement.
Brand sign-up to monthly payout, with the technical guts in between. Last-click attribution, 30-day cookie window (industry standard with Impact / CJ / Rakuten), idempotent server postback, real-time dashboards, monthly USD settlement.
Phase 1 — Brand onboarding
Sign up, get approved, build your first program.
01
Apply for a brand account
Sign up at spidercps.com/signup/brand with company name, contact email, niche, and a one-line pitch of what you sell. We do not do automated approvals — every brand passes a human review (~1 business day) so the publisher pool stays high signal.
02
Receive API key + activation email
On approval our notification worker emails you from [email protected] with your unique brand
api_key (format pc_live_<32-hex>). This key is the only thing that authenticates conversion postbacks — keep it server-side, never embed in client JS. You can also access it any time at /dashboard/brand/profile/.03
Create your first program
In
/dashboard/brand/programs/new/ specify the offer:- dest_url — the URL we redirect users to (e.g.
https://yourshop.com/landing; we append the click id automatically) - commission_type —
flat_cpa(fixed $) orpercentage(% of order) - commission_value — the amount or percent
- cookie_window_days — 30 default, can extend up to 90 (Impact: 30, CJ: 30-90, Rakuten: 7-30)
- network_fee_pct — locked at 20%, never changes
Phase 2 — Publisher matching
AI surfaces qualified publishers; brand approves.
04
Publishers apply or are matched
Two paths into your program:
- Self-application — publishers browse open offers at
/dashboard/publisher/offers/and apply - AI-driven match — our matching engine ranks publishers in our network on six signals (audience overlap, channel velocity, prior conversion, brand-safety, language match, niche fit) and surfaces a shortlist for human review at
/admin/matches/
pc_program_publishers row with a unique tracking_slug — the publisher gets their personal link https://spidercps.com/go/<slug> to share.Phase 3 — On every click
Click tracking, attribution cookie, redirect.
05
Publisher shares the tracking link
The publisher drops their unique link in their channel — WeChat group post, Xiaohongshu profile, newsletter, podcast show notes, YouTube description, anywhere. The link points to our worker:
https://spidercps.com/go/<slug>.06
User clicks → Cloudflare worker redirects
Our edge worker takes the request and:
- Resolves the slug → joins program + publisher + dest_url
- Validates program is active + publisher application is approved
- Generates a
click_id(UUID v4) — used as cookie, URL param, and database PK - Async-inserts a
pc_click_eventsrow (User-Agent, referrer, UTM params, hashed IP) - 302 redirects to the brand's
dest_urlwith?pcps_click=<click_id>appended (andutm_medium=affiliate&utm_source=spidercps)
ctx.waitUntil, so even if the database is slow the redirect ships.07
Brand landing page captures the click_id
On your landing page, read
?pcps_click from the URL and persist it through checkout. One line of JS:// Persist the click attribution into a 30-day first-party cookie
const cid = new URLSearchParams(location.search).get("pcps_click");
if (cid) {
document.cookie = `pcps_click=${cid}; path=/; max-age=2592000; samesite=lax`;
}At checkout, read the cookie back (or pass pcps_click through hidden form fields, session storage, your cart object — whatever survives until the order completes).Phase 4 — On every conversion
Server postback, attribution, commission split.
08
User completes the purchase
Whatever your conversion event is — order placed, lead form submitted, signup completed — record it in your own system as you normally would. Capture the
pcps_click cookie value alongside the order so it survives to step 09.09
Brand server posts to /api/conv
From your backend (server-side only — never browser), POST a JSON payload to the conversion endpoint:
curl -X POST https://spidercps.com/api/conv \
-H "Authorization: Bearer pc_live_<your-32-hex-key>" \
-H "Content-Type: application/json" \
-d '{
"program_id": "uuid-of-program-from-dashboard",
"brand_order_ref": "ORDER-2026-0001",
"order_value": 99.00,
"order_currency": "USD",
"pcps_click": "uuid-from-cookie"
}'Node.js example:await fetch("https://spidercps.com/api/conv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SPIDERCPS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
program_id: PROGRAM_ID,
brand_order_ref: order.id,
order_value: order.subtotal_usd,
order_currency: "USD",
pcps_click: order.metadata.pcps_click,
}),
});10
SpiderCPS attributes + calculates commission
On postback our worker:
- Validates the API key, matches the program to your brand
- Looks up the latest
pc_click_eventsrow for thisclick_id+ program within the cookie window (default 30 days) - Found → credits the click's
publisher_id; not found → conversion still inserted as “unattributed” - Commission calc:
flat_cpa→ fixed value;percentage→ order_value × rate - Network fee = commission × 20%, publisher payout = commission − fee
- Idempotency check on
(program_id, brand_order_ref)— duplicate postback returnsstatus: "duplicate"
Phase 5 — Real-time + settlement
Dashboards update instantly; payouts ship monthly.
11
Conversion appears in real-time dashboards
Supabase Realtime streams the new conversion event to:
- Brand dashboard —
/dashboard/brand/conversions/— all your programs' conversions - Publisher dashboard —
/dashboard/publisher/earnings/— just their credited conversions - Admin review queue —
/admin/conversions/— approve pending, reverse fraud
12
Monthly settlement
On the 1st of each month, approved conversions from the prior month roll into:
- Publisher payouts — aggregated per publisher, paid by their chosen method (USD wire / ACH / Wise / PayPal / USDT / WeChat Pay / Zelle) on the 15th
- Brand invoices — PDF invoice for gross commission + 20% network fee, Net 30 payment terms, USD wire or ACH to FULLHOUSE ASSET Management LLC
Attribution rules
The rules of the game.
Last-click wins within cookie window
If a user clicks publisher A's link day 1, then publisher B's day 3, then converts day 5 → publisher B gets credit (30-day default; brand-configurable up to 90 per program).
Unattributed conversions still recorded
If the postback arrives without a matching cookie (user cleared cookies / ad-blocker stripped the URL param / conversion outside cookie window), the conversion is inserted with publisher_id=null. Network fee still applies; no publisher payout.
Idempotent deduplication
A brand can never double-charge via the same (program_id, brand_order_ref) pair. The second postback returns status: 'duplicate' without inserting. Safe to retry on network errors.
Reversals for refunds + fraud
Brand or admin can reverse a conversion within 30 days of insert (refunds, chargebacks, suspected fraud). Reversed conversions don't pay out — if a payout already shipped, the next cycle nets out.
Abuse guards on /api/conv
Rate limit 60 conversions / 60s per program; order_value ceiling $100k; commission ceiling $5k. Hits trigger 429 / 400 with retry-after. Designed to protect the network from leaked-API-key abuse.
Ready to see it run on your numbers?
15-min discovery call → 1-page MSA → program live in 3-7 days. We model unit economics on your existing CPS spend before any paperwork.