Skip to main content
Traffic Analytics shows how many real people visit, how many are new, and how risky each traffic source is, counted by identity instead of cookies. It lives on the dashboard Overview tab and answers the question cookie analytics gets wrong: how many real humans visited, and how much of that traffic is masked? Every number here is computed server-side and read-only. The dashboard renders results. It never blocks, challenges, or decides anything. Your own code owns the allow / challenge / review / block decision using the Risk Score and signals you receive over webhooks and the Management API. Traffic Analytics has three parts:
  • Visitors and New Visitors - real and new headcounts, counted by a durable identity, not a cookie.
  • Traffic Sources - every channel, referrer, and campaign ranked by the risk it delivers.
  • Traffic Risk and the Data table - the average risk gauge and the per-request records behind it.

Visitors and New Visitors

Two metrics sit at the top of the Visitor Insights card. These are the exact product tooltips:
MetricTooltip
Visitors”Estimated unique visitors using cookies, browser info, and device info.”
New Visitors”Visitors first seen in the selected period.”
“Estimated” is deliberate. ShieldLabs does not promise an exact headcount. It reports a confident estimate of real people, built from a stable identity rather than a single cookie. New Visitors is the subset first seen inside the selected window, so the determination moves with the date filter.

Why the count is more accurate

ShieldLabs does not count by a single cookie. It counts by the durable DeviceID, an identity derived from dozens of stable browser and device characteristics, not stored. Because nothing is stored, there is nothing to clear. A returning person on the same browser reproduces the same environment, so the server derives the same DeviceID and keeps them recognized as returning. Cookie-based tools count differently, and that decides whether the same person is counted once or many times:
DimensionGoogle AnalyticsVercel AnalyticsShieldLabs
Counts byFirst-party cookie (client id)First-party client id (per-visit, partly IP-derived)Durable DeviceID, derived not stored
Cleared cookiesNew userNew userSame person, stays recognized
Incognito / private windowNew userNew userSame person, stays recognized
IP rotationSame user (cookie persists)New user (id is partly IP-based)Same person (DeviceID is not IP-based)
The pattern: GA and Vercel count by a first-party cookie, so cleared cookies, incognito, and IP rotation each mint a brand-new user and inflate new-visitor counts. A loyal user who clears cookies weekly looks like dozens of new people a year. ShieldLabs counts by the durable DeviceID, so that same person stays one identity and is not miscounted as new.
The boundary, stated plainly. DeviceID is browser-bound. The same person in a different browser produces a different DeviceID and is counted separately. There is no cross-browser recognition today. The count is also an estimate, not an audited 1:1 tally. Pair the durability with that honesty.
The card also breaks the same visitors down by top countries, browsers, operating systems, device types, and connection types. The connection-types list classifies each visit as Direct, Mobile, VPN, Proxy, Tor, Privacy Relay, or Unknown, which is an early read on how anonymous your audience is.

Traffic Sources

Traffic Sources ranks every acquisition channel, referrer, and campaign by the risk it delivers, not the volume it sends. Two channels with identical request counts are not equal if one runs Clean and the other runs High. That delta is the difference between paying for real visitors and paying for masked traffic. The card holds two tables side by side: Channels on the left, Source details on the right.

Channels

The Channels table groups every request into one acquisition channel and scores the channel as a whole. Each row shows the channel name, its Requests / Share, and a Risk Badge. The channel set is fixed and exact:
ChannelWhat it covers
Google AdsPaid Google traffic. There is no separate “Google” channel.
MetaFacebook and Instagram. It is Meta, not “Meta Ads”.
TikTokTikTok paid and organic.
LinkedInLinkedIn paid and organic.
XThe channel is X, not “Twitter”.
Organic SearchUnpaid search referrals. Not bare “Organic”.
ReferralInbound links from other sites.
DirectNo referrer (typed URL, bookmark, stripped referrer).
OtherAnything that does not map to the channels above.
The Risk Badge renders the source’s risk as a score plus its band: <score> <level>, for example 71 High or 8 Clean. The number is the average Risk Score of the requests attributed to that source, on the same 0–100 scale used everywhere. The word is the band:
LevelScore rangeWhat it means for the source
Clean0–9No meaningful anonymity or abuse signals. Real traffic.
Low10–29One minor signal on average. Mostly fine.
Medium30–59Overlapping or moderate signals. A meaningful slice is masked.
High60–100Strong anonymity or abuse signals. Skews toward masked traffic.
A high badge is a signal to investigate, not a verdict. A source can score high for honest reasons: a privacy-conscious audience, a corporate-proxy B2B segment, or a region where VPN use is common. Read the badge with the signals behind it before you pause spend. The score is 0–100, capped at 100. See acting on the Risk Score.

Source details

Where Channels answers “which channel?”, Source details answers “which specific source inside it?”. A toggle switches between two views, each row carrying its own Requests / Share and Risk Badge:
  • Referrers - each row is a referring host (for example news.ycombinator.com). This is how you find the one inbound link, partner site, or affiliate sending masked traffic while the channel-level number still looks fine.
  • UTM Parameters - a select picks which campaign tag to break down by.
UTM fieldBreaks the rows down by
Sourceutm_source (for example newsletter, partner_x)
Mediumutm_medium (for example cpc, email)
Campaignutm_campaign (the specific campaign)
Termutm_term (the paid keyword)
Contentutm_content (the specific creative or ad variant)
This is the resolution that drives spend decisions. Channel says Google Ads runs 42 Medium. UTM Campaign shows the medium score is one clean campaign averaged with one running 81 High. UTM Content narrows it to a single creative. Now you know exactly what to pause, ranked by risk instead of guesswork.
Cost per real visitor, not per click. Rank each paid and organic source by the risk and anonymous-traffic share it delivers. The campaign that sends 50,000 clicks at 71 High is not your best channel. It is the one quietly inflating your click count and your real cost per visitor.

Traffic Risk and the Data table

The Traffic Risk gauge on the Overview tab shows the average Risk Score across requests in the period. A half-circle gauge maps the average to a band, with a short subtitle under the needle:
BandRangeGauge subtitle
Clean0–9All Clear
Low Risk10–29Worth a Quick Check
Medium Risk30–59Needs Attention
High Risk60–100Action Recommended
The denominator is requests, not visitors. Traffic Risk averages the Risk Score across every request analyzed, and Requests Checked is that total. One person who triggers ten identify calls is ten requests here. The visitor counts above count unique people, so the two numbers measure different things on purpose.
The Traffic Risk gauge is the summary. The Data table is the evidence behind it. It lists per-request records, one row per identification call, joinable by RequestID:
  • Filterable by project, score range (for example 60100 to isolate the High band), date range, and abuse pattern.
  • Searchable by a single identifier: request_id, visitor_id, device_id, user_hid, or ip.
  • Sortable by date, score, and every signal column, so you can group every request that tripped a given signal.
  • Exportable to JSON or CSV, free of charge. Exports do not consume request balance.
Each request ships an explainable Risk Score: a Details array naming the signals that fired and the points each added. So when a source reads High, filter the Data table to it, set the Score range to the High band, and read the exact signals (VPN, Anti-detect Browser, Tor, Datacenter IP, and the rest) that pushed the average up. The dashboard surfaced the masked source. The decision and the action are yours, in your own tools.

Next steps

Anonymity Signals

The signal catalog behind every risk badge: VPN, anti-detect, datacenter, Tor, and the rest, each with its weight.

Traffic quality

Measure traffic quality per source over time and turn cost per real visitor into a metric your code can act on.

Affiliate fraud

Score traffic per affiliate and per campaign, find the partner sending masked clicks, and reconcile payouts against real visitors.