When analyzing traffic sources, you may see visits attributed to N/A rather than to a known source or to Direct Access. This article explains the difference between the two, the causes of N/A traffic, and which causes can be addressed.
N/A vs Direct Access
|
|
Direct Access |
N/A |
|---|---|---|
|
Meaning |
The visit's first event had no referrer, OR the referrer was the site itself, OR it was local. |
The source-attribution algorithm could not classify the visit at all — typically because key event properties were missing or arrived in the wrong order. |
|
What's expected |
A normal, named source value |
An empty cell or "N/A" / "Undefined" / "Null" placeholder |
|
Common cause |
Bookmarks, AI traffic, session timeouts |
Missing |
Direct Access is a legitimate, attributable category. N/A is a data quality signal — something didn't reach Piano Analytics the way it needed to.
What causes N/A on a visit
#1: The page.display event never fired (or fired wrong)
Piano Analytics determines a visit's source from the first event of the visit — almost always the first page.display. If that event is missing, fired late, or doesn't carry the expected source properties, the visit has nothing to attribute.
Investigation: in Data Query, look for visits that have transaction or conversion events but no page.display for the visit. These visits are the most common N/A producers.
Fix: ensure the Piano Analytics SDK fires page.display on every entry page, and that it fires before any conversion or transaction event in the same visit.
#2: The visit was created by a non-page.display first event
If the first event of a visit is something other than a page.display (for example, a server-side event from an external integration, a custom event fired before the page-tracking SDK has initialized), the visit has no source context. Result: N/A.
Fix: order events so a page.display is always the first event of any visit. For server-to-server flows, see the Collection API guidance on previous_url to preserve attribution context.
#3: Transactions without an associated visit
A transaction event that arrives without a parent visit (typical for server-side payment-confirmation flows that don't forward the visitor's browser context) cannot be attributed to a source. It appears in transaction reports with N/A source.
Fix: forward idclient / previous_url from the browser session to the server-side flow so the transaction joins back to its originating visit.
#4: Subscriptions / conversions without source data
Some conversion records originate outside the browser entirely (telemarketing sales, migrated subscribers, bulk imports). These have no source by definition, and N/A is the honest answer.
Fix: there's no fix on the data side — these are legitimately source-less conversions. Filter them out of source-attribution analyses if their volume distorts the picture.
#5: Tagging gaps on specific pages or templates
If certain entry pages don't carry the Piano Analytics tag, visits arriving on those pages produce N/A. The pattern shows up as N/A concentrated on specific landing-page URLs.
Fix: audit tagging coverage. Use Tag Inspector to confirm the SDK fires on every page in your site.
#6: Custom processing rules that strip source properties
If you have Data Management processing rules that overwrite src_medium or src_campaign to empty under some conditions, those conditions become N/A in reports.
Fix: review your processing rules for the src_ properties. Look for rules that set values to empty rather than leaving them untouched.