فحص بيانات اختبار A/B باستخدام BigQuery

بالإضافة إلى عرض بيانات تجارب A/B Testing في وحدة تحكّم Firebase، يمكنك فحص بيانات التجربة وتحليلها في BigQuery. على الرغم من أنّ A/B Testing لا يتضمّن جدولاً منفصلاً لBigQuery، يتم تخزين العضويات في التجارب والصيغ في كل حدث Google Analytics ضمن جداول أحداث Analytics.

تكون سمات المستخدِمين التي تحتوي على معلومات عن التجربة على الشكل التالي: userProperty.key like "firebase_exp_%" أو userProperty.key = "firebase_exp_01" حيث يكون 01 هو رقم تعريف التجربة، ويحتوي userProperty.value.string_value على الفهرس (المستند إلى الصفر) لصيغة التجربة.

يمكنك استخدام خصائص مستخدمي التجربة هذه لاستخراج بيانات التجربة. يمنحك ذلك إمكانية تقسيم نتائج تجربتك بالعديد من الطرق المختلفة والتحقّق بشكل مستقل من نتائج A/B Testing.

للبدء، عليك إكمال ما يلي كما هو موضّح في هذا الدليل:

  1. تفعيل تصدير BigQuery لـ Google Analytics في وحدة تحكّم Firebase
  2. الوصول إلى بيانات A/B Testing باستخدام BigQuery
  3. الاطّلاع على أمثلة طلبات البحث

تفعيل تصدير BigQuery لـ Google Analytics في وحدة تحكّم Firebase

إذا كنت مشتركًا في خطة Spark، يمكنك استخدام وضع الحماية في BigQuery ل الوصول إلى BigQuery بدون أي تكلفة، مع مراعاة حدود وضع الحماية. اطّلِع على مقالة الأسعار وBigQuery وضع الحماية للحصول على مزيد من المعلومات.

أولاً، تأكَّد من تصدير بيانات Analytics إلى BigQuery:

  1. افتح علامة التبويب عمليات الدمج، التي يمكنك الوصول إليها باستخدام > إعدادات المشروع في وحدة تحكّم Firebase.
  2. إذا كنت تستخدم BigQuery مع خدمات Firebase أخرى، انقر على إدارة. بخلاف ذلك، انقر على ربط.
  3. راجِع لمحة عن ربط Firebase بخدمة BigQuery، ثم انقر على التالي.
  4. في قسم Configure integration (ضبط عملية الدمج)، فعِّل زر التبديل Google Analytics.
  5. اختَر منطقة واختَر إعدادات التصدير.

  6. انقر على ربط بـ BigQuery.

استنادًا إلى الطريقة التي اخترت بها تصدير البيانات، قد يستغرق الأمر ما يصل إلى يوم واحد لتصبح الجدولَين متاحة. لمزيد من المعلومات عن تصدير بيانات المشروع إلى BigQuery، اطّلِع على مقالة تصدير بيانات المشروع إلى BigQuery.

الوصول إلى بيانات A/B Testing في BigQuery

قبل طلب بيانات لتجربة معيّنة، عليك الحصول على بعض أو كلّ ما يلي لاستخدامه في طلب البحث:

  • معرّف التجربة: يمكنك الحصول عليه من عنوان URL لصفحة نظرة عامة على التجربة. على سبيل المثال، إذا كان عنوان URL يبدو على النحو التالي: https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25، يكون رقم تعريف التجربة هو 25.
  • رقم تعريف الموقع Google Analytics: هو رقم تعريف الموقع المكوّن من 9 أرقام 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 events أو ad_impression أو user_retention events.

بعد جمع المعلومات التي تحتاجها لإنشاء طلب البحث:

  1. افتح BigQuery في وحدة تحكّم Google Cloud.
  2. اختَر مشروعك، ثم اختَر إنشاء طلب بحث بلغة الاستعلامات البنيوية (SQL).
  3. أضِف طلب البحث. للاطّلاع على أمثلة على طلبات البحث التي يمكن تنفيذها، يُرجى الاطّلاع على مقالة استكشاف أمثلة على طلبات البحث.
  4. انقر على تشغيل.

طلب بيانات التجربة باستخدام طلب البحث الذي تم إنشاؤه تلقائيًا في وحدة تحكّم 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

للحصول على أمثلة إضافية على طلبات البحث، انتقِل إلى الاطّلاع على أمثلة على طلبات البحث.

أمثلة على طلبات البحث في ميزة "استكشاف"

تقدّم الأقسام التالية أمثلة على طلبات البحث التي يمكنك استخدامها لاستخراج data A/B Testing من جداول أحداث Google Analytics.

استخراج قيم التباين المعياري للشراء والتجربة من جميع التجارب

يمكنك استخدام بيانات نتائج التجربة للتحقّق بشكل مستقل من نتائج Firebase A/B Testing. تستخرج عبارة BigQuery SQL التالية صيغ تجربت ، وعدد المستخدِمين الفريدين في كل صيغة، وتُجمِّع إجمالي الأرباح من حدثَي in_app_purchase وecommerce_purchase، والانحرافات المعيارية لجميع التجارب ضمن النطاق الزمني المحدّد كتاريخَي _TABLE_SUFFIX البدء والانتهاء. يمكنك استخدام البيانات التي تحصل عليها من طلب البحث هذا مع أداة إنشاء الأهمية الإحصائية لاختبارات t أحادية الطرف للتحقّق من أنّ النتائج التي يوفّرها 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