داده های تست 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 را تأیید کنید.

برای شروع، موارد زیر را همانطور که در این راهنما توضیح داده شده است تکمیل کنید:

  1. صادرات BigQuery را برای Google Analytics در کنسول Firebase فعال کنید
  2. با استفاده از BigQuery به داده های تست A/B دسترسی پیدا کنید
  3. پرس و جوهای نمونه را کاوش کنید

صادرات BigQuery را برای Google Analytics در کنسول Firebase فعال کنید

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

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

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

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

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

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

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

  • شناسه آزمایش: می‌توانید این را از نشانی اینترنتی صفحه نمای کلی آزمایش دریافت کنید. برای مثال، اگر نشانی وب شما شبیه 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. BigQuery را در کنسول Google Cloud باز کنید.
  2. پروژه خود را انتخاب کنید، سپس Create SQL query را انتخاب کنید.
  3. درخواست خود را اضافه کنید برای مثال پرس و جوهایی که باید اجرا شوند، به کاوش پرس و جوهای نمونه مراجعه کنید.
  4. روی Run کلیک کنید.

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

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

برای به دست آوردن و اجرای پرس و جو تولید شده خودکار:

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

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

می‌توانید از داده‌های نتایج آزمایش برای تأیید مستقل نتایج آزمایش Firebase A/B استفاده کنید. بیانیه 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