NearNode logs every scan event server-side at the edge. No cookies, no client-side JavaScript, no GDPR consent popups. You get the same granularity as web analytics — applied to the physical world.
What We Capture
Every scan generates an analytics event with the following data points:
| Field | Source | Example |
|---|
country | Vercel edge header | CH |
city | Vercel edge header | Zurich |
device_type | User-Agent parsing | mobile |
user_agent | Request header | Mozilla/5.0 (iPhone; ...) |
ip_address | Request header | Anonymized after 30 days |
referer | Request header | https://acme.com |
timestamp | Server clock | 2026-02-09T14:30:00Z |
variant | Routing engine | A (if A/B split active) |
session_id | Generated per scan | sid_x7y8z9 |
Privacy by design: IP addresses are anonymized after 30 days. We do not fingerprint users across sessions or track them beyond the scan event.
Key Metrics
Tap-Through Rate (TTR)
The percentage of scans that result in a meaningful action (click, download, form submission). This is the physical-world equivalent of Click-Through Rate.
TTR = (action_events / scan_events) × 100
Conversion Funnel
Track the full journey from physical scan to digital action:
Scan → Page View → Action (download / click / submit)
Each step is tracked via session_id, allowing you to measure drop-off rates at every stage.
Geographic Distribution
See where your physical assets are being engaged — broken down by country and city. Identify which deployment locations drive the most traffic.
A/B Test Results
When routing rules use ab_split, analytics automatically segment by variant. Compare conversion rates between variants directly in the dashboard.
| Variant | Scans | Actions | TTR |
|---|
| A — Product Page | 2,410 | 892 | 37.0% |
| B — Landing Page | 2,390 | 1,124 | 47.0% |
Run A/B tests for at least 7 days with a minimum of 1,000 scans per variant before drawing conclusions. Statistical significance matters in the physical world too.
Accessing Analytics
Dashboard
The analytics dashboard provides real-time visualizations for:
- Scan volume over time (daily, weekly, monthly)
- Geographic heatmap by country
- Device type breakdown (mobile / desktop / tablet)
- Top nodes by scan volume
- A/B variant comparison
Webhooks
Receive every scan event in real-time via Webhooks. Pipe scan data into your own data warehouse, CRM, or alerting system.
{
"event": "scan.created",
"event_id": "evt_a1b2c3d4",
"timestamp": "2026-02-09T14:30:00.000Z",
"data": {
"node_slug": "o1ulpplq",
"city": "Zurich",
"country": "CH",
"device_type": "mobile",
"variant": "A",
"session_id": "sid_x7y8z9"
}
}
API
Query analytics data programmatically for custom reporting and integrations.
curl https://nearnode.io/api/v1/nodes/o1ulpplq/analytics?period=30d \
-H "Authorization: Bearer sk_live_..."
Ops Tip: Analytics retention depends on your plan — 30 days (Developer), 1 year (Pro), unlimited (Enterprise).
Event Types
| Event | Description |
|---|
scan | Node was scanned or tapped |
redirect | HTTP redirect was followed |
vcard_download | vCard file was downloaded |
vcard_save | vCard was saved to contacts |
microsite_view | Microsite page was loaded |
microsite_link_click | Link on microsite was clicked |
wifi_connect | WiFi credentials were used |
action_trigger | Direct action (WhatsApp, email, etc.) was triggered |
kill_switch_blocked | Scan was blocked by a deactivated node |