Skip to content
Hoot Lens.Start free

Where is my traffic coming from?

Open Traffic in Hoot Lens. It counts sessions per day and breaks them down by referrer, campaign source, campaign name, device class, browser, operating system and new or returning visitors, with each goal's conversions for the same range. From any row you can jump to the recordings behind it, so you can watch what visitors from one source actually did.

Markdown copy

What you need

Hoot Lens installed on the site and some recorded sessions. What each session carries depends on the project's privacy preset (see below), and Traffic counts only recorded sessions, so a project that records a sample counts that sample.

Steps

  1. Open Traffic and pick a date range of up to 92 days. Each session is counted once, on the UTC day it began, so a day near midnight can differ from your local calendar.
  2. Read the tables. Referrers are origins of other sites that sent the visit ((direct) means no external referrer). Campaign source and campaign name come from the utm_source and utm_campaign values on the landing page address and are lowercased. Device class, browser and operating system are coarse names, never versions.
  3. Choose Recordings on a row to list the visits it counted. Direct visits, values pooled as Other and values the privacy settings did not record cannot be listed.
  4. To count only sessions that viewed one page, choose a page group. Then device class, language and variant are counted for that page; the referrer, campaign, browser and operating system lists are not, because they are counted once per visit.
  5. In Recordings, open Filters to narrow by campaign, referrer, browser, operating system or new and returning visitors, and choose Save as segment to keep the set of filters. A project keeps up to 50 segments.
  6. Check the goals table. Conversions are counted per day and are not split by referrer or device, so use the recordings of a source to see whether its visitors reached the goal.

Ask your coding agent to do it

With the Hoot Lens connector at https://mcp.hootlens.com/mcp (see how to give your coding agent real user behavior data), these are the exact tool calls. from and to are epoch milliseconds.

list_projects {}
get_traffic { "projectId": "PROJECT_ID" }
get_traffic { "projectId": "PROJECT_ID", "pageGroup": "/pricing" }
list_sessions { "projectId": "PROJECT_ID", "utmSource": "newsletter", "limit": 10 }
list_sessions { "projectId": "PROJECT_ID", "referrer": "news.ycombinator.com", "deviceClass": "mobile", "limit": 10 }
list_segments { "projectId": "PROJECT_ID" }

get_traffic returns sessions per day, the top referrers, campaign sources, campaign names, device classes, browsers, operating systems and languages, how many visitors were new and returning, and each goal's conversions. The recording filters are referrer (an origin or a host name), utmSource, utmCampaign, browser, os and newVisitor, and segmentId applies a saved segment.

What the numbers do not tell you

  • A project's privacy preset decides what is stored. The referrer origin, browser and operating system are kept in every preset. Campaign values are kept as written under full, redacted under balanced, and omitted under strict unless query strings are captured. New and returning is omitted under strict. In the tables, unknown means the privacy settings did not allow the value.
  • Lists hold the top 25 keys. A project keeps at most 100 distinct referrer and campaign keys a day, and the rest are pooled as (other).
  • Traffic also shows where visits come from by country, a channel (a default grouping of the referrer and campaign, such as search or social), the name of the ad network when a click ID was on the landing address, the in-app browser (such as Instagram or Facebook) and the entry page. Country is worked out from the request address once per visit and the address is never stored. Balanced and full projects also keep a region within the country; the strict preset keeps country only. Hoot Lens stores the ad network's name only, never the click ID, and never a city or an IP address. Visits with Global Privacy Control or Do Not Track on, and controlled test visits, carry no location.
  • Channels are Hoot Lens's default grouping, so a source that no rule recognizes can land under a general channel. Check the referrer and campaign rows behind a channel before you act on it.
  • Automated visits (bots, headless browsers, scripted clicking) are flagged and kept out of every count here, and Overview and Traffic show how many there were.
  • Your own test visits count unless you mark them. Push the variant controlled-validation before testing to keep them out.

See it on your own site

Free to start. Add one line, and your first visits show up within minutes.