Fetch the complete documentation index at: https://eulabel.eu/docs/llms.txt Use this file to discover all available pages before exploring further. Full content: https://eulabel.eu/docs/llms-full.txt Append .md to any page URL for markdown, or send Accept: text/markdown.

Scan Analytics

How EUlabel captures and reports QR code scan events.

Every QR code scan generates a structured event that feeds into the analytics pipeline, giving you visibility into how products are being engaged with.

At a glance

  • Analytics are captured before redirect, so you don’t lose events when a destination fails to load.
  • Location is derived from IP geolocation, not device GPS.
  • Use the Analytics API for dashboards, alerts, and reporting.

Scan event structure

When a consumer scans a QR code, the resolver captures a scan event before redirecting:

{
  "eventId": "evt_01H8ABC123XYZ",
  "eventType": "scan",
  "productId": "prd_01F8ABC123",
  "timestamp": "2026-03-12T14:23:01Z",
  "location": {
    "country": "PT",
    "region": "Lisboa",
    "city": "Lisboa"
  },
  "referrer": "https://winebar.pt/menu",
  "device": {
    "type": "mobile",
    "os": "iOS",
    "browser": "Safari"
  }
}

Privacy

EUlabel analytics are privacy-by-design. No personally identifiable information is stored, and location is derived from IP geolocation -- not device GPS.

  • Location data is derived from IP geolocation, not device GPS
  • No personally identifiable information is stored
  • Events are captured at the resolver layer before the redirect, so analytics are recorded even if the passport page fails to load

What you can track

Accessing analytics

Use the Analytics API endpoint or the EUlabel Dashboard to view scan data.

curl "https://api.eulabel.eu/v1/analytics/product/a1b2c3d4-...?start=2026-01-01" \
  -H "Authorization: Bearer sk_test_..."

Event types

The platform tracks events beyond QR scans:

EventTriggerDescription
scanQR code scannedPrimary engagement metric
api_requestPassport retrieved via APIB2B integration usage
passport_createdNew passport publishedProduct lifecycle event
passport_updatedPassport modifiedContent change tracking
webhook_deliveredWebhook sent to subscriberIntegration monitoring

On this page