Google Analytics में अनुमानित संख्या का यूनीक अनुमान

मिन्हाज़ काज़ी, डेवलपर एडवोकेट, Google Analytics – अक्टूबर 2022

बड़े डेटासेट के लिए सटीक अलग-अलग संख्या (यानी, एलिमेंट की संख्या) को मापने के लिए, ज़्यादा मेमोरी की ज़रूरत होती है और परफ़ॉर्मेंस पर असर पड़ता है. Google Analytics 4 प्रॉपर्टी, HyperLogLog++ (HLL++) एल्गोरिदम का इस्तेमाल करती हैं. ऐसा करके, सक्रिय उपयोगकर्ताओं और सेशन जैसी सबसे ज़्यादा इस्तेमाल की जाने वाली मेट्रिक के लिए, एलिमेंट की संख्या का अनुमान लगाया जाता है. उदाहरण के लिए, Google Analytics यूज़र इंटरफ़ेस (यूआई) और Data API में सक्रिय उपयोगकर्ताओं को देखते समय, यह अनुमानित संख्या होगी. इन मेट्रिक के लिए HLL++ का इस्तेमाल करने से, अनुमान ज़्यादा सटीक होते हैं और गड़बड़ी की सीमाएं कम होती हैं. इस ब्लॉगपोस्ट में इस बारे में जानकारी दी गई है कि Google Analytics 4 प्रॉपर्टी में HLL++ का इस्तेमाल कैसे किया जाता है और BigQuery इवेंट एक्सपोर्ट डेटा का इस्तेमाल करके कुछ अनुमानों को कैसे कॉपी किया जा सकता है.

HLL++ के बारे में जानकारी

कम मेमोरी इस्तेमाल करने और परफ़ॉर्मेंस को बेहतर बनाने के दौरान, HLL++ एलिमेंट की संख्या का अनुमान लगाता है. HLL++ में HyperLogLog एल्गोरिदम का इस्तेमाल करके, बेहतर बनाए गए हैं. यह HyperLogLog in Practice: एल्गोरिदमिक इंजीनियरिंग ऑफ़ द स्टेट ऑफ़ आर्ट कार्डिनैलिटी एस्टिमेशन एल्गोरिदम पर आधारित है. HLL++ precision पैरामीटर में बदलाव होने पर, मेमोरी के इस्तेमाल के मुकाबले कैलकुलेट किए गए आंकड़ों के सटीक होने की तुलना होती है. पैरामीटर वैल्यू को बढ़ाने से गड़बड़ी कम हो जाती है, लेकिन मेमोरी का इस्तेमाल बढ़ जाता है.

BigQuery में यूनीक काउंट लागू करना

  • एलिमेंट की सटीक संख्या मापने के लिए, COUNT(DISTINCT) का इस्तेमाल करें. इस तरीके के लिए ज़्यादा मेमोरी की ज़रूरत होती है और इसे पूरा होने में ज़्यादा समय लगता है. खास तौर पर, बड़े डेटासेट के लिए.
  • APPROX_COUNT_DISTINCT, HLL++ से नतीजों का अनुमान लगाता है. हालांकि, APPROX_COUNT_DISTINCT उपयोगकर्ताओं को अनुमान के हिसाब से सटीक नतीजे कॉन्फ़िगर करने की अनुमति नहीं देता.
  • पसंद के मुताबिक precision वैल्यू का इस्तेमाल करने के लिए, HyperLogLog++ फ़ंक्शन, का इस्तेमाल करें. स्वीकार की गई precision वैल्यू और सामान्य सटीक जानकारी के लिए, कॉन्फ़िडेंस इंटरवल के बारे में जानने के लिए, HLL++ स्केच देखें.
  • HLL+ के लिए sparse precision एक और पैरामीटर है. BigQuery में, sparse precision वैल्यू को उपयोगकर्ता तय नहीं कर सकता. यह precision + 5 पर तय होता है.

Google Analytics 4 प्रॉपर्टी में HLL++ को लागू करना

Google Analytics 4, मिलती-जुलती मेट्रिक के एलिमेंट की संख्या को मेज़र करने के लिए, यहां दिए गए कॉन्फ़िगरेशन का इस्तेमाल करता है.

मेट्रिक precision sparse precision
सेशन 12 17
सक्रिय उपयोगकर्ता 14 25
कुल उपयोगकर्ता 14 25

Google Analytics के इवेंट डेटा के साथ BigQuery HLL++ फ़ंक्शन का इस्तेमाल करना

अगर आपकी Google Analytics 4 प्रॉपर्टी का इवेंट डेटा, BigQuery में उपलब्ध है, तो यूज़र इंटरफ़ेस (यूआई) की मेट्रिक को BigQuery डेटा से मैच किया जा सकता है. नीचे दिए गए उदाहरणों में यह मान लिया गया है:

  • Google Analytics 4 प्रॉपर्टी के लिए, रिपोर्टिंग आइडेंटिफ़ायर को By device only पर सेट किया गया है.
  • अंतर की अन्य वजहों, जैसे कि रिपोर्टिंग टाइमज़ोन पर पहले ही कार्रवाई कर ली गई है.

कुल उपयोगकर्ता

COUNT(DISTINCT) का इस्तेमाल करके सटीक संख्या:

SELECT
  COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

APPROX_COUNT_DISTINCT का इस्तेमाल करके अनुमानित संख्या:

SELECT
  APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

BigQuery के HLL++ फ़ंक्शन का इस्तेमाल करके, APPROX_COUNT_DISTINCT को कॉपी किया जा सकता है. इससे एक जैसे या बहुत मिलते-जुलते नतीजे मिलेंगे, जैसे कि APPROX_COUNT_DISTINCT:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 15)) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

आखिर में, Google Analytics के यूज़र इंटरफ़ेस (यूआई) में डेटा को कॉपी करने के लिए, precision = 14 का इस्तेमाल करें:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

सक्रिय उपयोगकर्ता

BigQuery इवेंट एक्सपोर्ट टेबल से सक्रिय उपयोगकर्ताओं की संख्या का हिसाब लगाने के लिए, आपको पहले सिर्फ़ सक्रिय उपयोगकर्ताओं के इवेंट फ़िल्टर करने होंगे. सक्रिय उपयोगकर्ता फ़िल्टर लागू करना, इस लेख में शामिल नहीं है.

WITH ActiveUsers AS
(
  SELECT
    user_pseudo_id
  FROM
    `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE
  <implement active user filter logic>
)
SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM ActiveUsers

सेशन

ga_session_id इवेंट पैरामीटर, हर उपयोगकर्ता के लिए अलग-अलग यूनीक सेशन की पहचान करता है. यूनीक सेशन के लिए, आपके पूरे डेटासेट में user_pseudo_id और ga_session_id का कॉम्बिनेशन यूनीक होगा. यह Google Analytics 4 प्रॉपर्टी के सेशन की गिनती करने का स्टैंडर्ड तरीका है. सेशन के लिए, precision 12 है.

SELECT
  HLL_COUNT.EXTRACT(
    HLL_COUNT.INIT(
      CONCAT(
        user_pseudo_id,
        (SELECT `value` FROM UNNEST(event_params) WHERE key = 'ga_session_id' LIMIT 1).int_value),
      12)) AS session_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

अगर आपको इस ब्लॉग पोस्ट में, बेसिक क्वेरी और बेहतर क्वेरी के उदाहरणों के साथ क्वेरी इस्तेमाल करनी हैं, तो BigQuery इवेंट एक्सपोर्ट से अपनी Google Analytics 4 प्रॉपर्टी के लिए डेटा एक्सपोर्ट करके ज़्यादा इनसाइट पाएं. अगर आपकी प्रॉपर्टी ज़्यादा इवेंट डेटा जनरेट करती है, तो HLL++ फ़ंक्शन को भी लागू किया जा सकता है. ऐसा करके, अपनी BigQuery क्वेरी में आम तौर पर इस्तेमाल की जाने वाली अन्य मेट्रिक के एलिमेंट का अनुमान लगाया जा सकता है. HLL++ के बारे में और बड़े डेटासेट के लिए एलिमेंट की गिनती क्यों महंगा है, इस बारे में ज़्यादा जानने के लिए, Cloud ब्लॉग पर पूरी जानकारी वाला ब्लॉग पोस्ट पढ़ें: बड़ा डेटासेट में, गिनती के बीच तेज़ी लाने के लिए HLL++ का इस्तेमाल करना.