Docs · Getting started
From zero to first attributed conversion.
Plan for ten minutes. If you stall, the chain has exactly three breakable links and we'll show you how to debug each one.
Create a workspace
Sign up at decisa.ai/register. The first workspace is on the free tier — 100 tracked orders per month, forever.
Once inside, copy your workspace ID from the URL (/workspaces/<slug>) and your site key from Settings → API keys. Keep the site key out of client-side code.
Drop the pixel into your site
Add a single line to the <head> of every page you want to track:
<script src="https://api.decisa.ai/pixel.js"
data-workspace="WORKSPACE_ID" async></script>The pixel sets a first-party dcs_vid cookie, captures UTM parameters, and forwards gclid, fbclid, and ttclid to /collect. No third-party cookies. No fingerprinting.
Send your first conversion
From your backend — on signup, trial start, subscription, or purchase — POST to /v1/conversions. Below is the canonical curl shape; idiomatic Node, Python, PHP, and Ruby snippets live in the API reference.
curl -X POST https://api.decisa.ai/v1/conversions \
-H "Authorization: Bearer YOUR_SITE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "signup",
"external_id": "user-1234",
"visitor_id": "VALUE_OF_dcs_vid_COOKIE",
"customer_email": "[email protected]"
}'external_id is whatever your system already uses to identify the record. Decisa dedupes by (workspace_id, external_id) so safe retries are free.
Verify the chain
Open the Install page in your workspace and click Send test event. You should see the click and the conversion appear in the live activity feed within ~2 seconds. If the click never appears, the pixel didn't load or your CSP blocks api.decisa.ai. If the click appears but the conversion doesn't join, your visitor_id doesn't match the cookie value — check that you're reading req.cookies.dcs_vid, not a session-scoped derivative.
Look at the ROAS dashboard the next morning
Once your real traffic flows through the pixel, the ROAS page groups attributed revenue by source, campaign, medium, and content. Switch attribution models from the filter bar — previous results stay queryable, so your historic reports don't silently change.
Next up
- API reference — every field, every error code.
- Integrations — Shopify, Stripe, Kiwify webhooks.
- Methodology — how attribution numbers are computed.