Sources & attribution

How DataBull decides where a visit came from, and which visit gets credit for a sale.

Channels

Every visit gets a channel from its referrer, UTM tags or ad click id: Organic Search, Organic Social, AI (ChatGPT, Perplexity, Claude…), Referral, Email, Paid, Affiliate or Direct. utm_source and ?ref= win over the referrer, so tag links you control.

In-app browsers

Instagram, Facebook, TikTok, LinkedIn, Threads, Snapchat, Pinterest, Reddit, Telegram, Discord, Slack, WeChat and the Google app often hide the referrer. DataBull recognises them from the browser and credits the app. (The X app on iPhone can't be told apart from Safari; add ?ref=x to links you post.)

Direct, made readable

BucketMeaning
Direct · typed or bookmarkReturning visitors, or new desktop visitors who landed on your home page.
Direct · shared linkNew visitors on a deep page or a phone with no referrer: a link from a chat, email, notes or an app that hides its origin.
Checkout returnBuyers coming back from the payment page. Never credited for a sale when the buyer had an earlier visit.

Attribution models

Set per website in Settings:

  • Last non-direct (default): the most recent visit with a real source.
  • First touch: the visitor's first visit ever.
  • Last touch: the last visit before buying.

When a sale arrives without its visitor

A sale is linked to its buyer by, in order: the visitor id in the checkout metadata, the thank-you page (?payment_id=… and similar), an email the visitor gave you through identify, and, as a last resort, checkout timing: if exactly one visitor clicked a checkout link for that provider (or completed a checkout / buy goal) in the 3 hours before the sale, the sale is credited to them. When several people clicked, DataBull waits 30 minutes and credits the only one who came back from the payment page, or the only one who clicked in the last 30 minutes. Otherwise the sale stays unattributed, with a note saying why.

Timing matches are marked estimated on the Revenue page, in Telegram alerts and for AI agents, and checkout metadata or a thank-you page visit replace them when they arrive. Visitors whose click is explained by a sale of their own are left out. Turn it off per website under Settings → Revenue attribution; that removes every estimate. Match unattributed sales again on the Revenue page re-checks older sales.

Campaign links

Settings → Campaign links builds tagged links for the places you post (X, LinkedIn, Reddit, Hacker News, newsletters, ads…). Name each post and DataBull shows it as its own campaign, with its visits and sales, even where the referrer is hidden. The builder previews the source and channel exactly as DataBull will record them.

New sales and renewals

Every payment is a one-time purchase, a subscription's first payment (with a free trial, the first charge after it), an upgrade (a plan change or more seats), or a renewal (the scheduled charges after that, usage billing included). Renewals are credited to the visitor who bought the subscription. A $0 payment, such as a free trial's sign-up or a 100% discount, isn't a sale.

Most of your revenue renewing on its own? Turn off Count subscription renewals in revenue (Settings → Revenue attribution) to see what your traffic brings in. Revenue, sales, customers, conversion, the chart, sources, goals, funnels, the Sites page, the daily digest and AI agents then count new sales only: first payments, one-time purchases and upgrades. Renewals still show on the Revenue page, marked as not counted, and lifetime value keeps every payment. Nothing is deleted, so you can turn it back on any time.

Lifetime value

The Revenue page groups customers by the source of their first attributed payment and adds everything they've paid since: renewals, upgrades, repeat purchases. A customer is the provider's customer id, else their email.

Privacy modes

Each website picks how visitors are identified (Settings → Privacy). No code change is needed to switch.

ModeWhat happens
Cookies (default)First-party cookies on your domain. A sale weeks later still links to the visit that produced it.
CookielessNothing is stored in the browser. Visitors are recognised by a hash of a random daily salt, IP and browser; salts are deleted after two days. Sales link to visits from the same day only.
Cookieless until consentCookieless until your banner calls datacheap('consent', true); datacheap('consent', false) removes the cookies again.

Bots

Crawlers, headless browsers, scripts and data-centre traffic are dropped before they're stored, and counted separately.

The bigger picture: revenue attribution, explained.