Στατιστικές και αναλυτικές API: Εκδηλώσεις, συγκεντρωτικά μεγέθη, διατήρηση
Πλήρες άρθρο
1) Γιατί μια εξωτερική ανάλυση API
Εταίροι/πάροχοι: παρακολούθηση περιεχομένου SLA, RTP, συμμετοχή.
Μάρκετινγκ/CRM: εκστρατείες ενεργοποίησης βασισμένες σε μετρήσεις (DAU, χοάνη καταθέσεων).
Πράξεις/Χρηματοδότηση: σχεδόν σε πραγματικό χρόνο GGR/NGR, επιτυχία πληρωμών, υστέρηση webhook.
Προϊόν: widgets in-app στατιστικών, A/B panels.
Στόχος είναι η ασφαλής και προβλέψιμη ανάδειξη γεγονότων και συγκεντρωτικών στοιχείων με κατανοητή σημασιολογία και SLA.
2) Αρχιτεκτονική στα δάκτυλα
Παραγωγοί (PAM/πορτοφόλι/RGS/πληρωμές/Kafka/CDC)
│
Κατάποση API ──Stream (Kafka/Pulsar) ──Lakehouse (Delta/Iceberg)
 (ClickHouse/BigQuery/Trino)
API
(cache, RBAC/RLS, όρια επιτοκίου)Εκδηλώσεις: τουλάχιστον μία φορά, παππούς από το «event _ id/idempotency _ key».
Συγκεντρωτικά στοιχεία: προεκτιμημένες ανατροπές (1m/5m/1h/1d) + εν πτήσει.
Retenchen: ομαδικός κινητήρας πάνω από το Gold Marts.
: CDN/edge + ETag/' Cache-Contro Кэш, server-side TTL.
3) Μοντέλο γεγονότος: ελάχιστο πρότυπο
3. 1 Κοινοί τομείς
json
{
"event_id":"uuid," "event_type":"bet. settled «,» occurred_at":"2025-10-23T16:21:05Z, «» ingested_at":"2025-10-23T16:21:06Z, «» tenant_id":"brand-7, «region»: «EU», «player_id":"p_19f3, »/ псевдо -ID
"trace_id":"tr_a1b2c3," "schema_version":"1. 3. 0," "ωφέλιμο φορτίο": {...}
}Κανόνες: χρονοσφραγίδες UTC, 'player _ id' - ψευδώνυμο, χρήματα σε μικρές μονάδες.
3. 2 Βασικοί τύποι
4) API κατάποσης (για πηγές τρίτων)
Αποστολή παρτίδας συμβάντων
POST/v1/events: παρτίδα
Κεφαλίδες: X-Idempotency-Key: ev_20251023_001
[
{"event _ id ": "... ", "event _ type":" bet. τοποθετείται,... "}, {" event _ id ":"..., "event _ type": "bet. settled,"..}
]
{«αποδεκτή»: 2, «αντίγραφα»: 0, « »}Εγγυήσεις: τουλάχιστον μία φορά. τα αντίγραφα φιλτράρονται στο Silver από το «event _ id».
5) Άθροιση API: χρονοσειρές και φέτες
5. 1 Χρονοδιαγράμματα (χρονομετρικές μετρήσεις)
GET/v1/analytics/timeseries
? μετρικό = gr//gr, ngr, dau, deposits_success, rtp
& κοκκία = 5m//1m/5m/1h/1d
& από = 2025-10-22T00: 00: 00Z & έως = 2025-10-23T00: 00: 00Z
& φίλτρα = περιφέρεια: EU, brand _ id: brand-7, πάροχος _ id: studio _ x
& ομάδα _ by = brand _ id
→ 200 {
«metric»:» ggr», «granularity»:» 5m», «series»: [
{"ts": "2025-10-22T00: 00: 00Z", "brand _ id": "brand-7", "value _ minor": 120030}, {"t :" 2025-10-22T00: 05: 00Z "," brand _ id ":" brand-7 "," value _ minor ": 98020
] ", next_cursor":null
}5. 2 Φέτες/κορυφές (ομαδικά)
GET/v1/analytics/φέτα
? μετρικό = rtp & dim = παιχνίδι _ id & από = 2025-10-22 & έως = 2025-10-23
& όριο = 50 & τάξη = -value
200 {"στοιχεία": [{"παιχνίδι _ i →:" g _ 01 "," τιμή ": 0. 956},...] }5. 3 Χοάνες
POST/v1/analytics/χοάνη
{
«βαθμίδες»: [
{"γεγονός ":" πληρωμή. πρόθεση»}, {«event «:» πληρωμή. εγκεκριμένο»}, {«γεγονός «:» πληρωμή. »}, {«event «:» πορτοφόλι. πίστωση", "λόγος ": "κατάθεση"}
], "window_sec": 3600 ", φίλτρα ": {"περιφέρεια ": "EU"," brand _ id":" brand-7 "}
}
→ 200 {
«σύνολο»: 12450, «βαθμίδες»: [
{"name": "intent", "coun : 12450," rate ": 1. 0}, {«ονομασία «: «εγκεκριμένη», «καταμέτρηση «: 11020, «ποσοστό»: 0. 885}, {"name": "captured", "coun : 10110," rate ": 0. 811}, {"name": "credited", "coun : 10050," rate ": 0. 807}
]
}5. 4 Όρια και κρυφή μνήμη
Όριο συντελεστή ανά μάρκα/μάρκα/περιφέρεια.
"ETag 'to απαντήσεις, Υποστήριξη 'If-No-Match'.
Η μνήμη TTL εξαρτάται από την κοκκότητα (για παράδειγμα, 5m → TTL 60-120 s).
6) Διατήρηση και ομαδοποίηση: κανόνες και API
6. 1 Ορισμοί (συμβάσεις)
DAU/WAU/MAU: active if was 'bet. τοποθετημένο πορτοφόλι «ή». σύνοδος «или» για την πίστωση (κατάθεση). ξεκίνησε '≥ N λεπτά.
Cohort με πρώτη κατάθεση (συχνά για LTV) ή με εγγραφή (για συμμετοχή).
D1/D7/D30 κατακράτησης: το ποσοστό της ομάδας που επέστρεψε στο παράθυρο ημέρας +/- ανοχή ανά ζώνη ώρας σήματος.
Εξετάζουμε επαναλαμβανόμενες επισκέψεις από το μοναδικό 'player _ id' στο παράθυρο.
6. 2 ομάδες API
POST/v1/analytics/κατακράτηση
{
"cohor :" first _ deposit ","  ""  " . τοποθετείται", "ημέρες ": [1,7,14,30], "φίλτρα ": {"περιφέρεια ": "EU"," brand _ id":" brand-7 "}
}
→ 200 {
«ομάδα «: «πρώτη _ κατάθεση», «σειρές»: [
{«cohort _ date»:» 2025-09-01 «, «size «: 1820,» d1»: 0. 36, «δ7»: 0. 22, «d14»: 0. 18, «d30»: 0. 12}, {«cohort _ date»:» 2025-09-02 «, «size «: 1714,» d1»: 0. 35, «δ7»: 0. 23, «d14»: 0. 19, «d30»: 0. 13}
]
}6. 3 LTV/Σωρευτικό
GET/v1/analytics/ltv ομάδα = πρώτη _ κατάθεση & νόμισμα = EUR & ορίζοντας = 90d
200 {«cohorts «: [{» ημερομηνία»:» 2025-09-01 «, «ltv _ minor «: [0,150,230,280,...]}}7) Μετρική σημασιολογία (για να μην επιχειρηματολογώ)
Όλα - σε UTC με μετρητά και μονάδες ήσσονος σημασίας. Το πολυ-νόμισμα λύνεται με τη μετατροπή του σταθερού FX σε Data Lake.
8) Έκδοση, φίλτρα και συμβατότητα
Διαδρομή: '/v1/... '; νέες μετρήσεις/πεδία - προαιρετικά.
: «brand _ id, περιφέρεια, , , μέθοδος, νόμισμα, συσκευή, geo».
Pagination: με βάση τον δρομέα ('next _ cursor').
Σπάζοντας → μόνο '/v2 '+ Κεφαλίδες απόρριψης/Ηλιοβασίλεμα και changelog.
9) Ασφάλεια και πρόσβαση
Client Credentials (μικρές μάρκες), mTLS για B2B.
RBAC/ABAC: μετρικές άδειες/άδειες φέτες· Φίλτρο RLS από το «brand/region».
PII: Το API δεν δίνει PII, μόνο συγκεντρωτικά στοιχεία/ψευδο-ID, εάν είναι απαραίτητο.
Τόπος κατοικίας: αιτήματα δρομολόγησης προς την περιοχή. διαπεριφερειακά δεδομένα - δεν επιτρέπονται.
Όρια συντελεστών και ποσοστώσεις, καταπολέμηση των καταχρήσεων· Έλεγχος του WORM για τις προσβάσεις.
10) SLO και παρατηρησιμότητα
Δείκτες αναφοράς SLO:- 'GET/timeseries gran = 5 p95 500-800 ms,' GET/slice 'p95 1-2 s (κορυφές έως 50-100 θέσεις),' POST/κατακράτηση '(μήνας ομάδων) p95 3-5 s, fresness rollup: p95 2-5 min από' συνέβη _ at '.
- Μετρήσεις: latency p50/p95/p99, ρυθμός σφάλματος (4xx/5xx), cache-hit, αιτήματα/scan bytes (OLAP), lag φρεσκάδας για κάθε rollup 'y.
- Αρχεία καταγραφής: δομημένα, 'trace _ id', φίλτρα ερωτημάτων (χωρίς PII), αριθμός σάρωσης.
11) Μετρητά, προκαταρκτικοί υπολογισμοί, κόστος
Πίνακες rollup: 1m/5m/1h/1d με μετρήσεις κλειδιών → fast timeseries.
Υλοποιημένες απόψεις για βαρέα τμήματα/ομάδες.
ETag + μέγιστη ηλικία· Η αναπηρία σε καθυστερημένα συμβάντα εμφανίζεται σταδιακά.
Στρατηγική «εν θερμώ/εν ψυχρώ»: θερμά ερωτήματα - στην αποθήκη OLAP. Αρχείο - στη λίμνη.
Περιορισμός των «ψηφιολέξεων σάρωσης» ανά αίτηση. υποδείξεις προς τον προγραμματιστή.
12) Ενσωματωμένο και εξαγόμενο
Ενσωματωμένα γραφικά μέσα μέσω υπογεγραμμένου URL/iFrame με μάρκες RLS.
Εξαγωγή CSV/Parquet ανά εργασία (API εργασίας) με περιορισμούς μεγέθους και προσωρινές αναφορές.
Ειδοποιήσεις Webhook σχετικά με την ετοιμότητα αποστολής.
13) Κατάλογοι ελέγχου
Αρχιτεκτονική
- Ενοποιημένο σχήμα γεγονότων, ημιτελές, μητρώο. παππούς του «event _ id».
- Rollup 's και υλοποιημένες απόψεις για κορυφαίες υποθέσεις.
- RLS/RBAC/ABAC, κατοικία, βραχύβιες μάρκες.
- Cache (ETag/TTL), όρια δασμού, ποσοστώσεις.
Σημασιολογία
- Τεκμηριώνονται οι ορισμοί GGR/NGR/RTP/DAU/διατήρησης.
- Νομίσματα - μονάδες ήσσονος σημασίας· Το FX καθορίζεται τη στιγμή της εκδήλωσης.
- Διατήρηση από την UTC, λαμβανομένης υπόψη της χρονικής ζώνης του εμπορικού σήματος στην οθόνη.
Πράξεις
- Ταμπλό SLO/φρεσκάδας και καθυστέρησης.
- Έλεγχος του WORM για τις προσβάσεις/εξαγωγές.
- ασκήσεις DR/xaoc: rollup lag, flurry των αιτήσεων, καθυστερημένα γεγονότα.
14) Αντι-μοτίβα (κόκκινες σημαίες)
Οι «ακατέργαστοι» πίνακες OLTP δίνονται απευθείας στο API.
Ασυνεπείς μετρικοί ορισμοί μεταξύ εντολών.
Καμία αφαίρεση και υδατογραφήματα → διπλά/χαμένα γεγονότα.
Απεριόριστες συγκεντρώσεις εντός των πτήσεων χωρίς κρύπτη/ποσοστώσεις → δαπανηρές και αργές αιτήσεις.
Διπεριφερειακή ομαδοποίηση χωρίς πολιτικές κατοικίας.
Επιστροφή λεπτομερειών PII/παίκτη στις απαντήσεις του κοινού.
Σιωπηλές αλλαγές χωρίς '/v2 'και Υποτίμηση.
15) Mini-spec (TL; DR)
Εκδηλώσεις: '/v1/events: batch '(τουλάχιστον μία φορά, dedup by' event _ id ').
Χρονοδιαγράμματα: '/v1/analytics/timeseries? μετρικό =... & κοκκότητα =... '(rollup + кэш).
Φέτες: '/v1/analytics/slice? μετρικό =... & dim =... '.
Χοάνη: '/v1/analytics/χοάνη '(παράθυρο, βήματα, φίλτρα).
Κατακράτηση/ομάδες: '/v1/ανάλυση/κατακράτηση '(+ LTV).
Ασφάλεια: OAuth2 + mTLS, RLS, ανά μάρκα/περιφέρεια, έλεγχος WORM.
SLO: p95 ≤ 0. 5-2 s, φρεσκάδα ≤ 2-5 λεπτά.
Οι στατιστικές και οι αναλυτικές API δεν είναι «SELECT FROM», αλλά μια σύμβαση μετρήσεων: σταθερά γεγονότα, προκαθορισμένα και αποθηκευμένα συγκεντρωτικά μεγέθη, αυστηρά καθορισμένες ομάδες κατακράτησης, ασφάλεια (RLS/RBAC) και κατοικία κατανοητή από την SLO. Έτσι δίνετε γρήγορα, φθηνά και προβλέψιμα δεδομένα - σε εταίρους, προϊόντα και ΔΙ - χωρίς αμφιλεγόμενες ερμηνείες και χωρίς τον κίνδυνο διαρροής ή υπερφόρτωσης αποθήκευσης.
