EUlabel
Concepts

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.

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

  • 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

MetricDescription
Total scansTotal number of QR code scans per product
Geographic distributionScans broken down by country, region, and city
Device typesMobile, tablet, and desktop breakdown
Top referrersWhere scans are coming from (wine bar menus, e-commerce sites, direct)
Time seriesScans over time at day, week, or month granularity

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_live_..."

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