داده های تست 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 در کنسول فایربیس
  2. دسترسی به داده‌های A/B Testing با استفاده از BigQuery
  3. کاوش در نمونه سوالات

فعال کردن خروجی BigQuery برای Google Analytics در کنسول فایربیس

اگر از طرح Spark استفاده می‌کنید، می‌توانید از محیط سندباکس BigQuery برای دسترسی رایگان BigQuery استفاده کنید، البته با توجه به محدودیت‌های Sandbox . برای اطلاعات بیشتر به بخش قیمت‌گذاری و محیط سندباکس BigQuery مراجعه کنید.

ابتدا مطمئن شوید که داده‌های Analytics خود را به BigQuery منتقل می‌کنید:

  1. تب Integrations را باز کنید، که می‌توانید با استفاده از > Project settings در کنسول Firebase به آن دسترسی پیدا کنید.
  2. اگر از قبل از BigQuery با سایر سرویس‌های Firebase استفاده می‌کنید، روی Manage کلیک کنید. در غیر این صورت، روی Link کلیک کنید.
  3. درباره اتصال Firebase به BigQuery نظر بدهید، سپس روی Next کلیک کنید.
  4. در بخش پیکربندی ادغام ، گزینه‌ی Google Analytics را فعال کنید.
  5. یک منطقه را انتخاب کنید و تنظیمات صادرات را انتخاب کنید.

  6. روی پیوند به BigQuery کلیک کنید.

بسته به نحوه‌ی انتخاب شما برای خروجی گرفتن از داده‌ها، ممکن است تا یک روز طول بکشد تا جداول در دسترس قرار گیرند. برای اطلاعات بیشتر در مورد خروجی گرفتن از داده‌های پروژه به BigQuery ، به بخش خروجی گرفتن از داده‌های پروژه به BigQuery مراجعه کنید.

دسترسی به داده‌های A/B Testing در BigQuery

قبل از جستجوی داده‌ها برای یک آزمایش خاص، باید برخی یا همه موارد زیر را برای استفاده در جستجوی خود به دست آورید:

  • شناسه آزمایش: می‌توانید این را از آدرس اینترنتی صفحه مرور کلی آزمایش دریافت کنید. برای مثال، اگر آدرس اینترنتی شما به شکل https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 باشد، شناسه آزمایش ۲۵ است.
  • شناسه ویژگی Google Analytics : این شناسه ۹ رقمی ویژگی Google Analytics شماست. می‌توانید آن را در Google Analytics پیدا کنید؛ همچنین در BigQuery وقتی نام پروژه خود را باز می‌کنید تا نام جدول رویداد Google Analytics شما ( project_name.analytics_000000000.events ) نمایش داده می‌شود، ظاهر می‌شود.
  • تاریخ آزمایش: برای نوشتن یک پرس‌وجوی سریع‌تر و کارآمدتر، بهتر است پرس‌وجوهای خود را به پارتیشن‌های جدول رویدادهای روزانه Google Analytics که حاوی داده‌های آزمایش شما هستند - جداولی که با پسوند YYYYMMDD مشخص می‌شوند - محدود کنید. بنابراین، اگر آزمایش شما از ۲ فوریه ۲۰۲۴ تا ۲ مه ۲۰۲۴ انجام شده است، باید یک _TABLE_SUFFIX between '20240202' AND '20240502' تعیین کنید. برای مثال، به بخش « مقادیر یک آزمایش خاص را انتخاب کنید » مراجعه کنید.
  • نام رویدادها: معمولاً این نام‌ها با معیارهای هدف شما که در آزمایش پیکربندی کرده‌اید، مطابقت دارند. برای مثال، رویدادهای in_app_purchase ، ad_impression یا user_retention .

پس از جمع‌آوری اطلاعات مورد نیاز برای ایجاد پرس‌وجو:

  1. BigQuery در کنسول Google Cloud باز کنید.
  2. پروژه خود را انتخاب کنید، سپس گزینه Create SQL query را انتخاب کنید.
  3. پرس‌وجوی خود را اضافه کنید. برای مثال‌هایی از پرس‌وجوهایی که باید اجرا شوند، به بخش «پرس‌وجوهای نمونه را کاوش کنید» مراجعه کنید.
  4. روی اجرا کلیک کنید.

داده‌های آزمایش را با استفاده از کوئری تولید شده خودکار کنسول Firebase جستجو کنید

اگر از طرح Blaze استفاده می‌کنید، صفحه مرور کلی آزمایش ، یک نمونه پرس‌وجو ارائه می‌دهد که نام آزمایش، انواع آن، نام رویدادها و تعداد رویدادهای آزمایشی که مشاهده می‌کنید را برمی‌گرداند.

برای دریافت و اجرای کوئری تولید شده خودکار:

  1. از کنسول Firebase ، A/B Testing را باز کنید و آزمایش A/B Testing مورد نظر خود را برای پرس و جو انتخاب کنید تا نمای کلی آزمایش باز شود.
  2. از منوی Options، در زیر BigQuery integration ، گزینه Query experiment data را انتخاب کنید. این کار پروژه شما را در 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 از جداول رویداد Google Analytics استفاده کنید.

استخراج مقادیر انحراف معیار خرید و آزمایش از تمام آزمایش‌ها

شما می‌توانید از داده‌های نتایج آزمایش برای تأیید مستقل نتایج Firebase A/B Testing استفاده کنید. عبارت SQL BigQuery زیر، انواع آزمایش، تعداد کاربران منحصر به فرد در هر نوع آزمایش، و مجموع درآمد حاصل از رویدادهای in_app_purchase و ecommerce_purchase و انحراف معیار برای همه آزمایش‌ها در محدوده زمانی مشخص شده به عنوان تاریخ شروع و پایان _TABLE_SUFFIX را استخراج می‌کند. می‌توانید از داده‌هایی که از این پرس‌وجو به دست می‌آورید با یک مولد اهمیت آماری برای آزمون‌های t تک‌طرفه استفاده کنید تا تأیید کنید که نتایج ارائه شده توسط فایربیس با تحلیل شما مطابقت دارد.

برای اطلاعات بیشتر در مورد نحوه محاسبه استنتاج 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 را نشان می‌دهد. این نمونه پرس‌وجو نام آزمایش، نام‌های مختلف (از جمله Baseline)، نام رویدادها و تعداد رویدادها را برمی‌گرداند.

  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