Skip to main content

General

Is Conversion Tracking the same as Web Tracking?

Yes. The feature is called Conversion Tracking in this documentation and in new dashboard UI. Some older parts of the dashboard still show Web Tracking — they refer to the same feature.

Do I need both browser and server events?

No — you can use either one on its own. Browser events require no backend setup and are the fastest way to get started. Server events require an API key and backend code, but are more reliable (not affected by ad blockers) and allow you to report revenue values and server-side conversions. Most setups use both: the browser SDK for engagement data, and server events for confirmed conversions.

Can I track conversions without a QR Code scan?

No. The Browser SDK requires a scan_session_id to send any event — if a user arrives at your site without scanning a QR Code, the SDK detects the missing session and sends nothing. The server events API also requires scan_session_id as a mandatory field. Scanova Conversion Tracking is built specifically for QR-scan-attributed measurement. It does not function as a general-purpose web analytics tool.

Browser SDK

Which browsers does the SDK support?

The SDK supports all modern browsers: Chrome, Firefox, Safari, Edge, and mobile equivalents. It does not require any specific browser features beyond XMLHttpRequest or fetch and localStorage.

Can the SDK be blocked by ad blockers?

Yes — browser events sent from t.scanova.io can be blocked by privacy-focused ad blockers and browser extensions. For critical conversion tracking (purchases, sign-ups), use server-side events which cannot be blocked.

Does the SDK affect my page performance?

The SDK loads asynchronously (async attribute) and does not block page rendering. The script is approximately 10 KB minified and gzipped. Events are sent in the background after the page loads.

Can I use the SDK on multiple pages?

Yes — install the snippet in your site’s global <head> template and it will run on every page. The scan_session_id persists across pages via localStorage, so the full user journey is attributed to the original QR scan.

What happens if a user visits without scanning a QR Code?

No events are sent. The Browser SDK checks for a scan_session_id before sending any event. If there is none (the user arrived directly, not via a QR scan), the SDK skips the event entirely. Nothing is stored for that visit.

How long does scan attribution last?

60 days. If a user scans a QR Code and returns to your site within 60 days, their visits are still attributed to that scan. After 60 days, the _scnv localStorage entry expires and attribution is lost.

Server-Side Events

How do I get the scan_session_id on my server?

Pass it from the browser to your server. Common approaches:
  • Include it in a hidden form field
  • Send it in the request body when your frontend calls your API
  • Read it from the URL parameter when the page loads and store it in the user’s server-side session
See Send Server Events for code examples.

Can I send batch events?

Yes. Use POST /server-events/batch with up to 100 events per request. This is recommended for high-volume backends and queue-based architectures.

What happens if I retry a failed request?

If you resend the same event_id, the duplicate is marked as such and excluded from conversion counts. Always use the same event_id across retries. See Idempotency & Retries.

Can I send events for past timestamps?

Yes — use the event_time field to set when the event occurred. This is useful when sending events asynchronously from a queue. The field accepts ISO 8601 format in UTC.

Privacy & Data

Should I send raw email addresses?

No. Never include raw email addresses in metadata or properties. Use user_identifiers.email_hash with a SHA-256 hash of the lowercased email address. The consent field carries the user’s GDPR consent signal to the tracking pipeline:
  • granted — all fields are stored normally
  • denied or pending — PII fields (page_url, referrer, city, metadata) are stripped before storage
The consent value itself is always stored as an audit record.

How long is data retained?

Events are retained for 2 years by default. Orphan records (events whose scan session cannot be resolved) are automatically deleted after 24 hours.

Dashboard & Reporting

How long until events appear in reports?

Typically within 10–30 seconds under normal load. Delays up to a few minutes can occur during high-traffic spikes.

How do I pause tracking for a site?

Use the site status toggle in the Integrations → Conversion Tracking site details modal. When a site is paused, events from that site return 400.

What is an orphan event and when does it get deleted?

An orphan event is one where the scan_session_id is present but cannot yet be resolved to a QR Code — this happens when an event arrives before the identity pipeline has linked the session to a QR Code record. Orphan events are automatically cleaned up after 24 hours if the session data never arrives. If the data does arrive in time, the orphan is backfilled and retained for the standard 2-year period.