Skip to content

Traċċar ta' Scans u Analitika

Ħarsa Ġenerali

Kull scan ta’ QR code dinamiku joħloq scan-record fil-workspace tiegħek. Il-ġbir isir kompletament fuq il-Cloudflare-Edge — mingħajr servizzi ta’ traċċar esterni, mingħajr cookies, u mingħajr ma l-IP oriġinali qatt jilħaq id-database tiegħek.

Tliet modi kif tikkonsma d-data tal-iscans:

API tal-Aggregazzjoni

GET /v1/codes/:id/scans — Serje ta’ ħin + L-aqwa pajjiżi/apparat/OS għal oġġett ta’ kodiċi wieħed.

Webhooks (Ħin Real)

Avveniment qr.scanned għal kull scan, iffirmat b’HMAC-SHA256. Ara Webhooks.

Dashboard

Viżwalizzazzjoni fid-dashboard ta’ qr3.app — m’hemmx bżonn ta’ sejħa API.


Liema data tinġabar

Għal kull scan, jinħoloq record fit-tabella scans:

QasamSorsEżempju
idUUID ġġenerata mis-serverscn_d1f8…
code_idID tal-kodiċi tal-QR code skennjatqr_a1b2c3d4
workspace_idWorkspace tal-kodiċiws_xxx
countryCloudflare cf.countryAT
regionCloudflare cf.regionVienna
cityCloudflare cf.cityWien
device_typeParsing tal-User-Agentmobile, tablet, desktop
osParsing tal-User-AgentiOS, Android, macOS, Windows
browserParsing tal-User-AgentSafari, Chrome, Firefox
refererHeader HTTP Refererhttps://example.com/landing
languageHeader Accept-Language (l-ewwel lingwa)de
redirected_toDestinazzjoni attwali tar-redirecthttps://example.com
ip_hashSHA-256(IP + salt ta’ kuljum) — mhux riversibbli8f3a…
scanned_atTimestamp ISO-86012026-05-12T14:32:11.000Z

Ġeolokalizzazzjoni fuq l-Edge

Id-data ġeografika kollha (country, region, city) tiġi mill-oġġett cf ta’ Cloudflare u hija bbażata fuq id-database Geo-IP ta’ Cloudflare. Ma jiġu mitluba l-ebda servizzi esterni ta’ Geo-IP — ir-riżoluzzjoni sseħħ fl-istess Worker li jwettaq ukoll ir-redirect.

Dan għandu tliet konsegwenzi:

  1. Latenza baxxa — l-ebda hop addizzjonali, l-ebda DNS lookup għal fornitur estern.
  2. Protezzjoni tad-data — l-indirizz IP ma jħallix lil Cloudflare u qatt ma jiġi mgħoddi lil partijiet terzi.
  3. Granularità limitatacity mhux dejjem tkun disponibbli (eż. f’każ ta’ VPNs, operaturi tal-mowbajl jew reġjuni żgħar). Stenna valuri null u kkalkulahom fid-dashboards tiegħek.

Kif Tistaqsi għall-Analitika tal-Iscans

GET /v1/codes/:id/scans

Tipprovdi analitika aggregata għal QR code wieħed fuq perjodu ta’ żmien magħżul.

Terminal window
curl "https://qr3.app/v1/codes/qr_a1b2c3d4/scans?days=30" \
-H "Authorization: Bearer qr3_sk_..."

Parametri tal-Query:

ParametruTipDefaultDeskrizzjoni
daysinteger30Perjodu f’jiem (1–365)

Rispons (HTTP 200):

{
"data": {
"code_id": "qr_a1b2c3d4",
"short_code": "r7f3Kx",
"total_scans": 1842,
"period_days": 30,
"period_scans": 367,
"scans_by_day": [
{ "date": "2026-04-13", "count": 12 },
{ "date": "2026-04-14", "count": 18 }
],
"top_countries": [
{ "value": "AT", "count": 142 },
{ "value": "DE", "count": 98 },
{ "value": "CH", "count": 41 }
],
"top_devices": [
{ "value": "mobile", "count": 281 },
{ "value": "desktop", "count": 72 },
{ "value": "tablet", "count": 14 }
],
"top_os": [
{ "value": "iOS", "count": 158 },
{ "value": "Android", "count": 123 },
{ "value": "macOS", "count": 48 }
]
},
"meta": { "request_id": "req_xyz123" }
}

Oqsma tar-Rispons:

QasamDeskrizzjoni
total_scansTotal tal-iscans tul il-ħajja tal-kodiċi (irrispettivament mit-tieqa ta’ days)
period_scansTotal tal-iscans fit-tieqa ta’ żmien magħżula
scans_by_dayBuckets ta’ kuljum, f’ordni axxendenti skont id-data, jiem vojta jiġu ommessi
top_countriesL-aqwa 8 pajjiżi fit-tieqa ta’ żmien, f’ordni dixxendenti
top_devicesL-aqwa 5 tipi ta’ apparat (mobile, tablet, desktop)
top_osL-aqwa 5 sistemi operattivi

Aggregazzjoni fuq Diversi Kodiċijiet

Totali fuq il-livell tal-workspace kollu (eż. scans kull xahar fuq il-kodiċijiet kollha) huma disponibbli permezz ta’ GET /v1/workspaces/:id bħala l-qasam scans_this_month. Għal analiżi bejn kodiċijiet differenti (cross-code), nirrakkomandaw id-dashboard jew esportazzjoni perjodika.


Konsum f’Ħin Real permezz ta’ Webhooks

Jekk trid tipproċessa l-avvenimenti tal-iscans malli jseħħu — bħal għal dashboards diretti, traċċar ta’ leads jew integrazzjonijiet tas-CRM — abbona għall-avveniment qr.scanned:

Terminal window
curl -X POST https://qr3.app/v1/webhooks \
-H "Authorization: Bearer qr3_sk_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhooks/qr3",
"events": ["qr.scanned"],
"secret": "my-secret-key-min-16-chars"
}'

Payload:

{
"id": "evt_abc123xyz",
"type": "qr.scanned",
"created": "2026-05-12T14:32:11.000Z",
"data": {
"code_id": "qr_a1b2c3d4",
"short_code": "r7f3Kx",
"scan_id": "scn_d1f8...",
"country": "AT",
"device_type": "mobile",
"os": "iOS"
}
}

Dokumentazzjoni sħiħa dwar il-verifika tal-firem, il-loġika ta’ attentat mill-ġdid (retry) u r-reġistri tal-kunsinna (delivery logs) tinsab f’ API → Webhooks.


GDPR & Protezzjoni tad-Data

Ir-records tal-iscans ma fihomx indirizzi IP personali. L-IP oriġinali jiġi sostitwit fl-Edge-Worker b’funzjoni hash kriptografika (SHA-256) b’salt li jdur kuljum. Dan ifisser:

  • L-ebda re-identifikazzjoni anke jekk l-algoritmu jkun magħruf
  • L-ebda korrelazzjoni bejn jiem differenti tal-istess viżitatur
  • L-IP oriġinali qatt ma jilħaq id-database D1

Iż-żamma tad-data (retention) tiddependi fuq il-pjan:

PjanŻamma
Free7 ijiem
Pro90 jum
Business / Agencysena
EnterpriseCustom (SLA)

Cron-job li jaħdem kuljum (purgeOldScans) ineħħi records eqdem awtomatikament — total_scans fuq l-oġġett tal-kodiċi jibqa’ mhux affettwat minn dan.


L-Aħjar Prattiki

  • Frekwenza tal-Polling: L-API tal-aggregazzjoni hija rħisa, iżda mhix iddisinjata biex tintuża kull sekonda. Għal aġġornamenti diretti, dejjem ippreferi webhooks u uża l-API biss għal backfills / dashboards.
  • Caching: Ir-rispons fih serje ta’ ħin — f’każ ta’ twieqi kbar (days=365), il-payload jista’ jsir ta’ diversi KB. Agħmel cache fuq in-naħa tal-klijent b’TTL qasir (eż. 60 s).
  • Limiti Top-N: top_countries, top_devices, top_os huma limitati fuq in-naħa tas-server għal 8 jew 5 daħliet rispettivament. Għal analiżi aktar profonda, esporta d-data mhux ipproċessata.
  • Tollera valuri null: country, region, city, referer, language jistgħu jkunu null. Ittratta dan fl-analiżi tiegħek bħala “Mhux magħruf”.