सांख्यिकी और एनालिटिक्स एपीआई: इवेंट्स, एग्रीगेट्स, रिटेंशन
पूरा लेख
1) एक बाहरी एनालिटिक्स एपीआई क्यों
भागीदार/प्रदाता: एसएलए सामग्री निगरानी, आरटीपी, सगाई।
विपणन/सीआरएम: मेट्रिक्स (डीएयू, जमा फ़नल) पर आधारित ट्रिगर अभियान।
संचालन/वित्त: निकट-वास्तविक समय जीजीआर/एनजीआर, भुगतान सफलता, वेबहुक लैग्स।
उत्पाद: इन-ऐप सांख्यिकी विजेट, ए/बी पैनल।
लक्ष्य सुरक्षित रूप से और अनुमानित रूप से घटनाओं को वापस देना है और समझने योग्य शब्दार्थ और एसएलए के साथ एकत्र करता है।
2) उंगलियों पर वास्तुकला
निर्माता (पीएएम/बटुआ/आरजीएस/भुगतान/काफ्का/सीडीसी)
│
अंतर्ग्रहण एपीआई ──Stream (काफ्का/पल्सर) ──Lakehouse (डेल्टा/आइसबर्ग)
│ └─OLAP (क्लिकहाउस/बिगक्वेरी/ट्रिनो)
└────────────────────────────────────Aggregation/Query एपीआई
(कैश, आरबीएसी/आरएलएस, दर सीमा)घटनाएँ: कम से कम एक बार, दादा 'event _ id/idempotency _ key' द्वारा।
समुच्चय: पूर्व-गणना किए गए रोलअप (1m/5m/1h/1d) + ऑन-द-फ्लाई।
Retenchen: गोल्ड मार्ट्स के शीर्ष पर cohort इंजन।
Кэш: CDN/Edge + ETag/' Cache-Control ', सर्वर-साइड TTL।
3) घटना मॉडल: न्यूनतम मानक
3. 1 आम क्षेत्र
json
{
"event_id":"uuid," "event_type":"bet। बस गए," " " " " "" "क्षेत्र":" यूरोपीय संघ", " "//  -ID
"trace_id":"tr_a1b2c3," "schema_version":"1। 3. 0" ", पेलोड": {...}
}नियम: यूटीसी टाइमस्टैम्प, 'प्लेयर _ आईडी' - उर्फ, मामूली इकाइयों में पैसा।
3. 2 प्रमुख प्रकार
4) अंतर्ग्रहण एपीआई (तृतीय-पक्ष स्रोतों के लिए)
घटनाओं का एक समूह भेजा जा रहा है
POST/v1/घटनाएं: बैच
हेडर: X-Idempotency-Key: ev_20251023_001
[
{"ईवेंट _ आईडी ":... ", ""ईवेंट _ टाइप":" शर्त। रखा गया,"...}, {"ईवेंट _ आईडी ": "... ", "इवेंट _ टाइप":" शर्त। बस गए,"..}
]
→ 202 {"स्वीकृत": 2, "डुप्लिकेट्स": 0 "," trace_id":"tr_a1b2 "}वारंटी: कम से कम एक बार; डुप्लिकेट को 'इवेंट _ आईडी' द्वारा सिल्वर में फ़िल्टर किया गया है।
5) एकत्रीकरण एपीआई: समय-श्रृंखला और स्लाइस
5. 1 समय (समय मैट्रिक्स)
GET/v1/analytics/timeseries
? मीट्रिक = ggr//ggr, ngr, dau, deposits_success, rtp
और दानेदारी = 5m//1m/5m/1h/1d
& से = 2025-10-22T00: 00: 00Z & to = 2025-10-23T00: 00: 00Z
फ़िल्टर = क्षेत्र: ईयू, ब्रांड _ आईडी: ब्रांड -7, प्रदाता _ आईडी: स्टूडियो _ x
समूह _ by = brand _ id
→ 200 {
"मीट्रिक":" ggr", "ganuality":" 5m", "श्रृंखला": [
{ts ":" 2025-10-22T00: 00: 00Z "," ब्रांड _ id ":" ब्रांड _ 7 "," वैल्यू _ माइनर ": 120030}, {" ts ":" 2025-10-22T00: 05: 00Z "," ब्रांड _ id ":" ब्रांड-7, "माइमाइनर _" 98020}
] ", next_cursor":null
}5. 2 स्लाइस/टॉप (समूह-बाय)
GET/v1/एनालिटिक्स/स्लाइस
? मीट्रिक = rtp & dim = game _ id & से = 2025-10-22 और = 2025-10-23 तक
सीमा = 50 और क्रम = -value
→ 200 {"आइटम ": [{"game _ id":" g _ 01"," value": 0। 956},...] }5. 3 फ़नल्स
POST/v1/एनालिटिक्स/फ़नल
{
"कदम": [
{"घटना ":" भुगतान। इरादा"}, {"घटना ":" भुगतान। अधिकृत"}, {"घटना ":" भुगतान। कैप्चर किया गया"}, {"घटना ":" बटुआ। क्रेडिट" "कारण ": "जमा करें"}
], "window_sec": 3600 ", फिल्टर ": {"क्षेत्र ": "ईयू"," ब्रांड _ आईडी":" ब्रांड -7 "}
}
→ 200 {
"कुल": 12450, "चरण": [
{"नाम ":" इरादा", "गिनती ": 12450, "दर": 1। 0}, {"नाम ": "अधिकृत", "गणना ": 11020, "दर": 0। 885}, {"नाम ": "कैप्चर", "काउंट ": 10110, "रेट": 0। 811}, {"नाम ": "श्रेय", "गिनती ": 10050, "दर": 0। 807}
]
}5. 4 सीमाएं और कैश
प्रति टोकन/ब्रांड/क्षेत्र दर सीमा।- 'ETag' to प्रतिक्रियाएं; 'इफ-नो-मैच' समर्थन।
- TTL कैश दानेदारी पर निर्भर करता है (उदाहरण के लिए, 5m → TTL 60-120 s)।
6) प्रतिधारण और सहकर्मी: नियम और एपीआई
6. 1 परिभाषाएँ (सम्मेलन)
DAU/WAU/MAU: सक्रिय अगर 'bet था। रखा 'या' बटुआ। क्रेडिट (जमा) 'или' सत्र। शुरू किया '≥ N मिनट।
पहले जमा द्वारा (अक्सर LTV के लिए) या पंजीकरण द्वारा (भागीदारी के लिए)।
प्रतिधारण D1/D7/D30: कोहोर्ट से अनुपात ब्रांड टाइम ज़ोन द्वारा दिन की खिड़की +/- सहिष्णुता पर लौट आया।
हम विंडो में अद्वितीय 'player _ id' द्वारा बार-बार यात्राओं पर विचार करते हैं।
6. 2 एपीआई सहकर्मी
POST/v1/एनालिटिक्स/प्रतिधारण
{
"कोहोर्ट ": "फर्स्ट _ डिपॉजिट", "start_date":"2025-09-01," "end_date":"2025-09-30," "return_event":"bet। रखा गया," "दिन ": [1,7,14,30], "फ़िल्टर ": {"क्षेत्र ": "ईयू"," ब्रांड _ आईडी":" ब्रांड -7 "}
}
→ 200 {
"कोहोर्ट ": "फर्स्ट _ डिपॉजिट", "पंक्तियां": [
{"cohort _ date":" 2025-09-01 ", "आकार ": 1820," d1": 0। 36, "d7": 0। 22, "d14": 0। 18, "d30": 0। 12}, {"cohort _ date":" 2025-09-02 ", "आकार ": 1714," d1": 0। 35, "डी 7": 0। 23, "d14": 0। 19, "d30": 0। 13}
]
}6. 3 एलटीवी/संचयी
GET/v1/एनालिटिक्स/ltv? cohort = प्रथम _ जमा और मुद्रा = EUR और क्षितिज = 90 डी
→ 200 {"cohorts ": [{" तिथि":" 2025-09-01 ", "ltv _ minital ": [0,150,230,280,...]}}7) मेट्रिक्स शब्दार्थ (बहस नहीं करने के लिए)
सभी - मुद्रा और लघु इकाइयों के साथ यूटीसी में; मल्टीक्यूरेंसी को फिक्स्ड एफएक्स को डेटा लेक में परिवर्तित करके हल किया जाता है।
8) संस्करण, फिल्टर और संगतता
पथ: '/v1/... '; नया मैट्रिक्स/फील्ड - वैकल्पिक।
Фильтры: 'ब्रांड _ आईडी, क्षेत्र, provider_id, game_id, विधि, मुद्रा, उपकरण, भू'।
पृष्ठभूमि: कर्सर आधारित ('next _ cursor')।
ब्रेकिंग → केवल '/v2 '+ अस्वीकृति/सनसेट हेडर और चेंजलॉग।
9) सुरक्षा और पहुंच
OAuth2 क्लाइंट क्रेडेंशियल्स (अल्पकालिक टोकन), बी 2 बी के लिए एमटीएलएस।
RBAC/ABAC: मीट्रिक/स्लाइस अनुमतियाँ; 'ब्रांड/क्षेत्र' द्वारा आरएलएस फ़िल्टर।
पीआईआई: एपीआई पीआईआई नहीं देता है, यदि आवश्यक हो तो केवल समुच्चय/छद्म-आईडी।
रेजीडेंसी: क्षेत्र के लिए रूटिंग अनुरोध; क्रॉस-क्षेत्र डेटा - अनुमति
दर सीमा और कोटा, दुरुपयोग विरोधी; एक्सेस का WORM ऑडिट।
10) एसएलओ और अवलोकन
एसएलओ बेंचमार्क:- 'GET/timeseries gran = 5m' p95 500-800 ms, 'GET/slice' p95 1-2 s (50-100 स्थिति तक सबसे ऊपर), 'POST/retention' (cohorts का महीना) p95 3-5 s, ताज़ा रोलगार 'से' हुआ '।
- मेट्रिक्स: विलंबता p50/p95/p99, त्रुटि-दर (4xx/5xx), कैश-हिट, अनुरोध/स्कैन बाइट्स (OLAP), प्रत्येक रोलअप के लिए ताजगी अंतराल।
- लॉग: संरचित, 'ट्रेस _ आईडी', क्वेरी फिल्टर (पीआईआई के बिना), स्कैन काउंट।
11) नकद, प्रारंभिक गणना, लागत
रोलअप टेबल: 1m/5m/1h/1d कुंजी मैट्रिक्स द्वारा → फास्ट 'टाइमसरीज'।
भारी वर्गों/सहकर्मियों के लिए भौतिक विचार।- ETag + अधिकतम आयु; देर से घटनाओं में विकलांगता वृद्धिशील रूप से होती है।
- रणनीति "गर्म/ठंडा": गर्म प्रश्न - OLAP-गोदाम में; संग्रह - झील में।
- अनुरोध के अनुसार "स्कैन बाइट्स" का प्रतिबंध; शेड्यूलर को संकेत देता है।
12) एम्बेडेड और निर्यात
आरएलएस टोकन के साथ हस्ताक्षरित URL/iFrame के माध्यम से बिल्ट-इन विजेट।
आकार की बाधाओं और अस्थायी संदर्भों के साथ कार्य द्वारा CSV/Parquet (जॉब API) निर्यात करें।
अपलोड करने की तत्परता के बारे में वेबहुक सूचना।
13) चेकलिस्ट
वास्तुकला
- एकीकृत घटना स्कीमा, सेवर, रजिस्ट्री; दादाजी 'इवेंट _ आईडी' द्वारा।
- शीर्ष मामलों के लिए रोलअप और भौतिक विचार।
- आरएलएस/आरबीएसी/एबीएसी, निवास, अल्पकालिक टोकन।
- कैश (ETag/TTL), दर सीमा, कोटा।
शब्दार्थ
- GGR/NGR/RTP/DAU/प्रतिधारण परिभाषाओं को प्रलेखित किया गया है।
- मुद्राएं - लघु इकाइयाँ; घटना के समय एफएक्स तय किया जाता है।
- यूटीसी द्वारा प्रतिधारण, डिस्प्ले में ब्रांड टाइमज़ोन को ध्यान में रखते हुए।
संचालन
- SLO/ताजगी और विलंबता डैशबोर्ड।
- एक्सेस/निर्यात का WORM ऑडिट।
- DR/xaoc अभ्यास: रोलअप लैग, अनुरोधों की हड़बड़ाहट, देर से घटनाएं।
14) एंटी-पैटर्न (लाल झंडे)
"रॉ" ओएलटीपी तालिकाओं को सीधे एपीआई को दिया जाता है।- कमांड के बीच असंगत मीट्रिक परिभाषाएं।
- कोई डीडुप्लिकेशन और वॉटरमार्क → डबल/खोई हुई घटनाएं।
- कैश/कोटा के बिना असीमित ऑन-द-फ्लाई एकत्रीकरण - महंगा और धीमा अनुरोध।
- रेजीडेंसी नीतियों के बिना क्रॉस-क्षेत्र एकत्रीकरण।
- सार्वजनिक प्रतिक्रियाओं के लिए PII/खिलाड़ीवि
- '/v2 'और Deprecation के बिना शांत ब्रेकिंग-चेंज।
15) मिनी-स्पेक (टीएल); डीआर)
घटनाएँ: '/v1/events: batch '(कम से कम-एक बार,' event _ id 'द्वारा dedup)।
समय: '/v1/एनालिटिक्स/टाइमसरीज? मीट्रिक =... और दानेदारी =... '(रोलअप + кэш)।
स्लाइस: '/v1/एनालिटिक्स/स्लाइस? मीट्रिक =... और मंद =... '।
फ़नल्स: '/v1/एनालिटिक्स/फ़नल '(विंडो, स्टेप्स, फ़िल्टर)।
प्रतिधारण/cohorts: '/v1/एनालिटिक्स/रिटेंशन '(+ LTV)।
सुरक्षा: OAuth2 + mTLS, RLS, प्रति ब्रांड/क्षेत्र टोकन, WORM ऑडिट।
SLO: p95 ≤ 0। 5-2 एस; ताजगी ≤ 2-5 मिनट।
सांख्यिकी और एनालिटिक्स एपीआई "सेलेक्ट फ्रॉम," नहीं हैं, बल्कि मैट्रिक्स का एक अनुबंध है: स्थिर घटनाएं, पूर्व-पढ़ाऔर कैश्ड एग्रीगेट, कड़ाई से परिभाषित प्रतिधारण और सहकर्मी, सुरक्षा (आरएलएस/आरबीएसी) और निवास। इसलिए आप विवादास्पद व्याख्याओं के बिना और रिसाव या भंडारण अधिभार के जोखिम के बिना - साझेदारों, उत्पाद और बीआई को जल्दी से, सस्ते और अनुमानित रूप से डेटा देते हैं।
