Marketing attribution

Know which channels bring customers.

Without cookies or stored IPs.

Sourcetrail records where each visit came from, receives your conversions server-side, and splits the credit across channels with the model you choose. Add ad spend to see cost per acquisition and return on ad spend.

  • 10,000 events / month free
  • No cookies, no fingerprinting
  • Honours Do Not Track and GPC

What you get

From first visit to paid order.

Capture the source of every visit, connect it to the conversions your backend records, and see what each channel and campaign returns.

Light, cookie-free snippet

One script tag. No cookies, no fingerprinting. Browsers with Do Not Track or Global Privacy Control send nothing.

Server-side conversions

Send purchases and sign-ups from your backend with an API key. Idempotent, so retries never double count. Emails are hashed.

Five models, side by side

First touch, last touch, last non-direct, linear and position-based, with your own lookback window.

Editable channel rules

An ordered list like “utm_medium is one of cpc, ppc → Paid search”. Change a rule and past visits are re-classified.

CPA and ROAS

Enter ad spend or import your ad platforms' CSV exports. See cost per acquisition and return on ad spend per channel and campaign.

Consent mode

Turn on “Require consent” and nothing is stored or sent until your consent banner says yes.

Attribution models

See how the credit is split.

Each visit is a touchpoint. A conversion looks back over the visitor's touchpoints inside your lookback window and shares the credit by the model you pick.

  • First touch, last touch and last non-direct
  • Linear: equal shares across every touch
  • Position-based: 40% first, 40% last, 20% for the middle
How the models work

Server-side events

Conversions from your backend.

Post purchases and sign-ups with an API key. Send an idempotency key with each one, so a retried request is recorded once.

  • Up to 100 events per request
  • Emails and user ids are hashed before storage
  • Each event comes back accepted, duplicate or rejected
POST /api/v1/events
Authorization: Bearer <key>

{
  "site_id": "st_…",
  "type": "conversion",
  "name": "purchase",
  "value": "49.90",
  "currency": "USD",
  "idempotency_key": "order-1001",
  "anonymous_id": "…"
}

Honest limits

What attribution can and can't tell you.

We'd rather you know the edges up front.

It is an estimate

Visitors who block scripts, use several devices without logging in, or opt out aren't connected.

You add the spend

We don't pull data from ad platforms automatically yet. Enter spend by hand or import a CSV.

Minimal data, kept briefly

IP addresses are never stored. Raw visit data is deleted after the retention period you set.

How it works

Set up in four steps.

Add your site

Get a site id and a snippet. Paste it into the <head> of every page.

Check visits

The site page shows incoming visits within seconds, so you know the install works.

Send conversions

Create an API key and post purchases or sign-ups from your server.

Read the reports

Add ad spend, pick a model and compare channels and campaigns.

Pricing

Start free. Upgrade when traffic grows.

Free

$0 /month

  • 1 site
  • 10,000 events / month (pageviews + conversions)
  • All attribution models
  • Server-side events API
  • Ad spend entry + CSV import
  • CSV exports
Start free
Most popular

Pro

$99 /month

  • 20 sites
  • 1,000,000 events / month
  • Everything in Free
Start free, upgrade anytime

FAQ

Questions, answered.

Do I need a cookie banner for the snippet?
It sets no cookies and doesn't fingerprint devices. It keeps a random visitor id in your site's localStorage. If your policy needs consent first, turn on Require consent and call sourcetrail('consent', true) from your banner.
What counts as an event?
Every recorded pageview and server-side event counts as one. Duplicates and dropped bot hits don't. At the monthly limit, new events stop being recorded until the 1st or an upgrade. No overage charges.
Does it connect to my ad accounts?
Not yet. Add spend per day, channel and campaign by hand, or import the CSV export your ad platform provides.
How long is data kept?
You set a retention period per site, from 30 to 1095 days. Older raw visit data is deleted daily. You can export everything as JSON at any time.

Spend where customers actually come from.

One snippet, one API call per conversion, and reports you can explain.