BigQuery की मदद से A/B टेस्टिंग डेटा की जांच करना

Firebase कंसोल में A/B Testing एक्सपेरिमेंट का डेटा देखने के अलावा, BigQuery में एक्सपेरिमेंट के डेटा की जांच और विश्लेषण किया जा सकता है. A/B Testing में BigQuery टेबल अलग से नहीं होती है. एक्सपेरिमेंट और वैरिएंट की मेंबरशिप, Analytics इवेंट टेबल में मौजूद हर Google Analytics इवेंट पर सेव की जाती हैं.

एक्सपेरिमेंट की जानकारी देने वाली उपयोगकर्ता प्रॉपर्टी, इस फ़ॉर्म में होती हैं: userProperty.key like "firebase_exp_%" या userProperty.key = "firebase_exp_01". इनमें 01, एक्सपेरिमेंट आईडी होता है और userProperty.value.string_value में एक्सपेरिमेंट के वैरिएंट का इंडेक्स (शून्य से शुरू होने वाला) होता है.

एक्सपेरिमेंट के डेटा को एक्सट्रैक्ट करने के लिए, एक्सपेरिमेंट से जुड़ी इन उपयोगकर्ता प्रॉपर्टी का इस्तेमाल किया जा सकता है. इससे आपको एक्सपेरिमेंट के नतीजों को कई अलग-अलग तरीकों से बांटने और A/B Testing के नतीजों की पुष्टि अलग से करने की सुविधा मिलती है.

शुरू करने के लिए, इस गाइड में बताए गए तरीके से ये काम करें:

  1. Firebase कंसोल में, Google Analytics के लिए BigQuery एक्सपोर्ट करने की सुविधा चालू करना
  2. BigQuery का इस्तेमाल करके A/B Testing का डेटा ऐक्सेस करना
  3. क्वेरी के उदाहरण देखें

Firebase कंसोल में, Google Analytics के लिए BigQuery एक्सपोर्ट करने की सुविधा चालू करना

अगर आपने Spark प्लान लिया है, तो BigQuery सैंडबॉक्स का इस्तेमाल करके, बिना किसी शुल्क के BigQuery को ऐक्सेस किया जा सकता है. हालांकि, ऐसा सैंडबॉक्स की सीमाओं के तहत किया जा सकता है. ज़्यादा जानकारी के लिए, कीमत और BigQuery सैंडबॉक्स देखें.

सबसे पहले, पक्का करें कि Analytics का डेटा BigQuery में एक्सपोर्ट किया जा रहा हो:

  1. इंटिग्रेशन टैब खोलें. इसे ऐक्सेस करने के लिए, Firebase कंसोल में जाकर > प्रोजेक्ट सेटिंग पर जाएं.
  2. अगर BigQuery का इस्तेमाल पहले से ही Firebase की अन्य सेवाओं के साथ किया जा रहा है, तो मैनेज करें पर क्लिक करें. अगर आपको ऐसा नहीं करना है, तो जोड़ें पर क्लिक करें.
  3. Firebase को BigQuery से लिंक करने के बारे में जानकारी पढ़ें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  4. इंटिग्रेशन कॉन्फ़िगर करें सेक्शन में जाकर, Google Analytics टॉगल चालू करें.
  5. कोई क्षेत्र चुनें और एक्सपोर्ट सेटिंग चुनें.

  6. BigQuery से लिंक करें पर क्लिक करें.

आपने डेटा एक्सपोर्ट करने का जो तरीका चुना है उसके आधार पर, टेबल उपलब्ध होने में एक दिन लग सकता है. प्रोजेक्ट का डेटा BigQuery में एक्सपोर्ट करने के बारे में ज़्यादा जानने के लिए, प्रोजेक्ट का डेटा BigQuery में एक्सपोर्ट करना लेख पढ़ें.

BigQuery में A/B Testing का डेटा ऐक्सेस करना

किसी एक्सपेरिमेंट के डेटा के लिए क्वेरी करने से पहले, आपको अपनी क्वेरी में इस्तेमाल करने के लिए इनमें से कुछ या सभी चीज़ें चाहिए होंगी:

  • एक्सपेरिमेंट आईडी: इसे एक्सपेरिमेंट की खास जानकारी पेज के यूआरएल से पाया जा सकता है. उदाहरण के लिए, अगर आपका यूआरएल https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 जैसा दिखता है, तो एक्सपेरिमेंट आईडी 25 है.
  • Google Analytics प्रॉपर्टी आईडी: यह आपका 9 अंकों वाला Google Analytics प्रॉपर्टी आईडी है. यह आपको Google Analytics में दिखेगा. साथ ही, जब अपने प्रोजेक्ट के नाम को बड़ा करके Google Analytics इवेंट टेबल (project_name.analytics_000000000.events) का नाम दिखाया जाता है, तब यह BigQuery में भी दिखता है.
  • एक्सपेरिमेंट की तारीख: क्वेरी को तेज़ी से और ज़्यादा असरदार तरीके से कंपोज़ करने के लिए, यह सबसे सही तरीका है कि आप अपनी क्वेरी को Google Analytics रोज़ाना इवेंट टेबल के उन पार्टीशन तक सीमित रखें जिनमें आपके एक्सपेरिमेंट का डेटा शामिल है. ये वे टेबल होती हैं जिनके नाम के आखिर में YYYYMMDD सफ़िक्स होता है. इसलिए, अगर आपका एक्सपेरिमेंट 2 फ़रवरी, 2024 से 2 मई, 2024 तक चला, तो आपको _TABLE_SUFFIX between '20240202' AND '20240502' तय करना होगा. उदाहरण के लिए, किसी एक्सपेरिमेंट की वैल्यू चुनना लेख पढ़ें.
  • इवेंट के नाम: आम तौर पर, ये आपकी उन लक्ष्य मेट्रिक से मेल खाते हैं जिन्हें आपने एक्सपेरिमेंट में कॉन्फ़िगर किया है. उदाहरण के लिए, in_app_purchase इवेंट, ad_impression या user_retention इवेंट.
पर जाएं

क्वेरी जनरेट करने के लिए ज़रूरी जानकारी इकट्ठा करने के बाद:

  1. Google Cloud कंसोल में BigQuery खोलें.
  2. अपना प्रोजेक्ट चुनें. इसके बाद, एसक्यूएल क्वेरी बनाएं को चुनें.
  3. अपनी क्वेरी जोड़ें. क्वेरी के उदाहरण देखने के लिए, क्वेरी के उदाहरण देखें पर जाएं.
  4. Run पर क्लिक करें.
देखें.

Firebase कंसोल की अपने-आप जनरेट हुई क्वेरी का इस्तेमाल करके, एक्सपेरिमेंट के डेटा को क्वेरी करना

अगर Blaze प्लान का इस्तेमाल किया जा रहा है, तो एक्सपेरिमेंट की खास जानकारी पेज पर एक सैंपल क्वेरी दी जाती है. इससे आपको एक्सपेरिमेंट का नाम, वैरिएंट, इवेंट के नाम, और देखे जा रहे एक्सपेरिमेंट के लिए इवेंट की संख्या मिलती है.

अपने-आप जनरेट हुई क्वेरी को पाने और चलाने के लिए:

  1. Firebase कंसोल में, A/B Testing खोलें. इसके बाद, वह A/B Testing एक्सपेरिमेंट चुनें जिसके बारे में आपको क्वेरी करनी है. इससे एक्सपेरिमेंट की खास जानकारी खुल जाएगी.
  2. विकल्प मेन्यू में, BigQuery इंटिग्रेशन के नीचे, क्वेरी एक्सपेरिमेंट डेटा चुनें. इससे आपका प्रोजेक्ट, BigQuery Google Cloud कंसोल में खुल जाता है. साथ ही, आपको एक बुनियादी क्वेरी मिलती है, जिसका इस्तेमाल करके अपने एक्सपेरिमेंट के डेटा के बारे में क्वेरी की जा सकती है.

यहां दिए गए उदाहरण में, "सर्दियों का स्वागत करने वाला एक्सपेरिमेंट" नाम के एक्सपेरिमेंट के लिए जनरेट की गई क्वेरी दिखाई गई है. इसमें तीन वैरिएंट (बेसलिन शामिल है) हैं. यह हर इवेंट के लिए, चालू एक्सपेरिमेंट का नाम, वैरिएंट का नाम, यूनीक इवेंट, और इवेंट की संख्या दिखाता है. ध्यान दें कि क्वेरी बिल्डर, टेबल के नाम में आपके प्रोजेक्ट का नाम नहीं दिखाता है, क्योंकि यह सीधे आपके प्रोजेक्ट में खुलता है.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

क्वेरी के अन्य उदाहरणों के लिए, क्वेरी के उदाहरण एक्सप्लोर करें पर जाएं.

क्वेरी के उदाहरण एक्सप्लोर करना

यहां दिए गए सेक्शन में, ऐसी क्वेरी के उदाहरण दिए गए हैं जिनका इस्तेमाल करके, A/B Testing इवेंट टेबल से A/B Testing एक्सपेरिमेंट का डेटा निकाला जा सकता है.Google Analytics

सभी एक्सपेरिमेंट से, खरीदारी और एक्सपेरिमेंट के स्टैंडर्ड डेविएशन की वैल्यू निकालना

एक्सपेरिमेंट के नतीजों के डेटा का इस्तेमाल करके, Firebase A/B Testing नतीजों की पुष्टि की जा सकती है. यहां दिया गया BigQuery SQL स्टेटमेंट, एक्सपेरिमेंट के वैरिएंट, हर वैरिएंट में यूनीक उपयोगकर्ताओं की संख्या, in_app_purchase और ecommerce_purchase इवेंट से मिले कुल रेवेन्यू का योग, और _TABLE_SUFFIX के तौर पर तय की गई शुरू और खत्म होने की तारीख के बीच के समय में हुए सभी एक्सपेरिमेंट के लिए स्टैंडर्ड डेविएशन निकालता है. इस क्वेरी से मिले डेटा का इस्तेमाल, एक-टेल वाले टी-टेस्ट के लिए सांख्यिकीय महत्व जनरेटर के साथ किया जा सकता है. इससे यह पुष्टि की जा सकती है कि Firebase से मिले नतीजे, आपके विश्लेषण से मेल खाते हैं.

A/B Testing, अनुमान का हिसाब कैसे लगाता है, इस बारे में ज़्यादा जानने के लिए, टेस्ट के नतीजे समझना लेख पढ़ें.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

किसी एक्सपेरिमेंट की वैल्यू चुनना

यहां दी गई उदाहरण क्वेरी में, BigQuery में किसी खास एक्सपेरिमेंट के लिए डेटा पाने का तरीका बताया गया है. इस सैंपल क्वेरी से, एक्सपेरिमेंट का नाम, वैरिएंट के नाम (इसमें बेसलाइन भी शामिल है), इवेंट के नाम, और इवेंट की संख्या मिलती है.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName