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

A/B Testing एक्सपेरिमेंट का डेटा Firebase कंसोल में देखने के अलावा, एक्सपेरिमेंट के डेटा की जांच और उसका विश्लेषण BigQuery में भी किया जा सकता है. A/B Testing के लिए, BigQuery में कोई अलग 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. का इस्तेमाल करके, A/B Testing डेटा ऐक्सेस करना BigQuery
  3. क्वेरी के उदाहरण देखना

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

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

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

  1. Firebase कंसोल में, सेटिंग सेटिंग > इंटिग्रेशन टैब पर जाएं.

  2. BigQuery कार्ड में, मैनेज करें पर क्लिक करें और पुष्टि करें कि आपका प्रोजेक्ट, Analytics का डेटा BigQuery में एक्सपोर्ट कर रहा है.

    अगर कार्ड में लिंक करें लिखा है, तो आपको एक्सपोर्ट की सुविधा सेट अप करनी होगी. इसके लिए, अगले चरण पर जाएं.

  3. अगर आपको एक्सपोर्ट की सुविधा सेट अप करनी है, तो:

    1. Firebase को BigQuery से लिंक करने के बारे में जानकारी देखें. इसके बाद, आगे बढ़ें पर क्लिक करें.

    2. इंटिग्रेशन कॉन्फ़िगर करें सेक्शन में, Google Analytics को चालू करें.

    3. कोई इलाका चुनें और एक्सपोर्ट सेटिंग चुनें.

    4. Link to BigQuery पर क्लिक करें.

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

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

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

  • एक्सपेरिमेंट आईडी: यह जानकारी, एक्सपेरिमेंट की खास जानकारी पेज के यूआरएल से मिल सकती है. उदाहरण के लिए, अगर आपका यूआरएल https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 जैसा दिखता है, तो एक्सपेरिमेंट आईडी 25 है.
  • Google Analytics प्रॉपर्टी आईडी: यह आपका नौ अंकों वाला Google Analytics प्रॉपर्टी आईडी होता है. यह आईडी, Google Analytics में देखा जा सकता है. साथ ही, BigQuery में भी यह आईडी तब दिखता है, जब अपने प्रोजेक्ट के नाम को बड़ा करके, Google Analytics इवेंट टेबल का नाम (project_name.analytics_000000000.events) दिखाया जाता है.
  • एक्सपेरिमेंट की तारीख: क्वेरी को तेज़ी से और ज़्यादा असरदार तरीके से कंपोज़ करने के लिए, यह तरीका अपनाना अच्छा होता है कि क्वेरी को 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. अपना प्रोजेक्ट चुनें. इसके बाद, SQL क्वेरी बनाएं को चुनें.
  3. अपनी क्वेरी जोड़ें. क्वेरी के उदाहरण देखने के लिए, क्वेरी के उदाहरण देखना लेख पढ़ें.
  4. Run पर क्लिक करें.

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

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

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

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

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

  /*
    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 एक्सपेरिमेंट का डेटा Google Analytics इवेंट टेबल से निकाला जा सकता है.

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

एक्सपेरिमेंट के नतीजों के डेटा का इस्तेमाल करके, Firebase A/B Testing नतीजों की पुष्टि की जा सकती है. यहां दिए गए BigQuery एसक्यूएल स्टेटमेंट से, एक्सपेरिमेंट के वैरिएंट, हर वैरिएंट में यूनीक उपयोगकर्ताओं की संख्या, और 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