Features · Analyse

Campaign tracking — UTM, click ids, and what actually converted

Full UTM breakdown by source, medium and campaign, with gclid, fbclid, msclkid and ttclid recognised as paid even when the link carries no utm_medium.

Observation beats assertion

When the referrer host and the utm tag disagree, the referrer wins. The referrer is something we saw; the tag is a claim made by whoever wrote the link.

Paid is detected, not just declared

An ad platform click id is proof the visit was paid, so a mistagged campaign still lands in the right channel.

Campaigns next to outcomes

Sessions per campaign sit beside signups per channel, so you can see which spend produced something.

Only tagged traffic is listed

The campaign table does not pad itself with untagged visits to look busier than it is.

The evidence

Metric utm.campaigns

SELECT utm_source AS source, utm_medium AS medium,
       utm_campaign AS campaign, COUNT(DISTINCT session_id) AS sessions
  FROM events
 WHERE site_id = ? AND ts >= ? AND ts < ? AND bot_kind = ''
   AND (utm_source <> '' OR utm_campaign <> '')
 GROUP BY utm_source, utm_medium, utm_campaign
 ORDER BY sessions DESC LIMIT 15

The last condition is the honesty: untagged sessions are not quietly folded in.

What this does not do

This is not ad attribution. We do not connect to Google Ads or Meta, so there is no spend, no CPA and no ROAS — those numbers require the ad platform's own data, and inventing them from click counts would be exactly the kind of unprovable figure this product exists to refuse.

Documentation

More in analyse

← All features