Features · Analyse
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.
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.
An ad platform click id is proof the visit was paid, so a mistagged campaign still lands in the right channel.
Sessions per campaign sit beside signups per channel, so you can see which spend produced something.
The campaign table does not pad itself with untagged visits to look busier than it is.
The evidence
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.
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.