آزمایش‌های پیکربندی از راه دور Firebase را با آزمایش A/B ایجاد کنید

وقتی از Firebase Remote Config برای استقرار تنظیمات یک برنامه با پایگاه کاربر فعال استفاده می‌کنید، می‌خواهید مطمئن شوید که آن را به درستی انجام می‌دهید. می‌توانید از آزمایش‌های A/B Testing برای تعیین بهترین موارد زیر استفاده کنید:

  • بهترین راه برای پیاده‌سازی یک ویژگی برای بهینه‌سازی تجربه کاربری. اغلب، توسعه‌دهندگان برنامه تا زمانی که رتبه برنامه‌شان در فروشگاه برنامه کاهش نیابد، متوجه نمی‌شوند که کاربرانشان از یک ویژگی جدید یا یک تجربه کاربری به‌روزرسانی‌شده خوششان نمی‌آید. A/B Testing می‌تواند به سنجش اینکه آیا کاربران شما انواع جدید ویژگی‌ها را دوست دارند یا اینکه برنامه را همانطور که هست ترجیح می‌دهند، کمک کند. به‌علاوه، نگه‌داشتن اکثر کاربرانتان در یک گروه پایه تضمین می‌کند که اکثر پایگاه کاربری شما می‌توانند بدون هیچ تغییری در رفتار یا ظاهر برنامه تا زمان پایان آزمایش، به استفاده از آن ادامه دهند.
  • بهترین راه برای بهینه‌سازی تجربه کاربری برای یک هدف تجاری. گاهی اوقات شما در حال اجرای تغییرات محصول برای به حداکثر رساندن معیاری مانند درآمد یا حفظ مشتری هستید. با A/B Testing ، هدف تجاری خود را تعیین می‌کنید و Firebase تجزیه و تحلیل آماری را انجام می‌دهد تا مشخص کند که آیا یک متغیر از خط پایه برای هدف انتخابی شما بهتر عمل می‌کند یا خیر.

برای تست A/B انواع ویژگی‌ها با یک خط پایه، موارد زیر را انجام دهید:

  1. آزمایش خود را ایجاد کنید.
  2. آزمایش خود را مدیریت کنید.

یک آزمایش ایجاد کنید

یک آزمایش Remote Config به شما امکان می‌دهد چندین نوع را روی یک یا چند پارامتر Remote Config ارزیابی کنید.

  1. تأیید کنید که Google Analytics در پروژه شما فعال است تا آزمایش به داده‌های Analytics دسترسی داشته باشد.

    اگر هنگام ایجاد پروژه خود، Google Analytics فعال نکرده‌اید، می‌توانید آن را در ... فعال کنید. Firebase تب ادغام‌ها در کنسول فایربیس .

  2. در کنسول Firebase ، به DevOps & Engagement > A/B Testing بروید.

  3. روی ایجاد آزمایش کلیک کنید و سپس وقتی از شما خواسته شد سرویسی را که می‌خواهید با آن آزمایش کنید Remote Config را انتخاب کنید.

  4. در بخش متغیرها ، یک خط مبنا و حداقل یک متغیر برای آزمایش انتخاب کنید. می‌توانید یک یا چند پارامتر برای آزمایش اضافه کنید. می‌توانید این مرحله را برای اضافه کردن چندین پارامتر به آزمایش خود تکرار کنید.

  5. (اختیاری) برای افزودن بیش از یک نوع به آزمایش خود، روی «افزودن نوع دیگر» کلیک کنید.

  6. یک یا چند پارامتر را برای انواع خاص تغییر دهید. هر پارامتر بدون تغییر برای کاربرانی که در آزمایش گنجانده نشده‌اند، یکسان است.

  7. برای مشاهده یا تغییر وزن متغیرها برای آزمایش، وزن متغیرها را باز کنید. به طور پیش‌فرض، هر متغیر وزن یکسانی دارد. توجه داشته باشید که وزن‌های ناهموار ممکن است زمان جمع‌آوری داده‌ها را افزایش دهند و وزن‌ها پس از شروع آزمایش قابل تغییر نیستند .

  8. معیارهای هدف‌گیری برای آزمایش خود را با استفاده از شرایط Remote Config تعریف کنید:

    • استفاده مجدد از یک شرط موجود: اگر یک شرط موجود در الگوی Remote Config شما از قبل با مخاطب هدف شما مطابقت دارد، آن را از لیست انتخاب کنید.

    • تأیید ترتیب ارزیابی شرط: مطمئن شوید که شرط‌های شما در صفحه شرط‌ها به ترتیب اولویت صحیح سازماندهی شده‌اند. از آنجا که Remote Config شرط‌ها را به ترتیب از بالا به پایین ارزیابی می‌کند، سایر شرط‌های با اولویت بالاتر می‌توانند مانع از دسترسی تعداد کافی از کاربران به شرط مرتبط با آزمایش شما شوند.

    • ایجاد یک شرط جدید: اگر هیچ یک از شرط‌های موجود، الزامات هدف‌گیری شما را برآورده نمی‌کند، یا اگر ترجیح می‌دهید یک شرط موجود را کپی کنید (برای مثال، اگر ترجیح می‌دهید از شرطی که قبلاً توسط پارامترهای دیگر استفاده می‌شود استفاده نکنید)، ابتدا با انتخاب برنامه‌ای که از آزمایش شما استفاده می‌کند، یک شرط جدید ایجاد کنید. اگر یک شرط جداگانه یا تکراری برای یک آزمایش ایجاد می‌کنید، مطمئن شوید که شرط جدید در اولویت بالاتری نسبت به شرط موجود قرار دارد. در غیر این صورت، کاربران ابتدا با شرط موجود مطابقت دارند و هیچ کاربری وارد آزمایش نخواهد شد.

      سپس می‌توانید با کلیک کردن و انتخاب یک یا چند گزینه از لیست زیر، زیرمجموعه خاصی از کاربران را هدف قرار دهید:

      • نسخه: یک یا چند نسخه از برنامه شما
      • شماره ساخت: شماره ساخت (اپل) یا کد نسخه (اندروید) برنامه شما
      • پلتفرم: یک یا چند پلتفرم (iOS، اندروید یا وب) برای هدف قرار دادن
      • سیستم عامل: کاربران برنامه‌های وب را بر اساس سیستم عامل و نسخه آنها هدف قرار دهید
      • مرورگر: کاربران برنامه‌های وب را بر اساس مرورگر وب و نسخه مرورگرشان هدف قرار دهید.
      • دسته بندی دستگاه: کاربران اپلیکیشن وب را بر اساس اینکه دستگاهشان موبایل است یا غیرموبایل هدف قرار دهید
      • زبان‌ها: یک یا چند زبان و منطقه‌ی جغرافیایی که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده می‌شود.
      • کشور/منطقه: یک یا چند کشور یا منطقه برای انتخاب کاربرانی که باید در آزمایش گنجانده شوند
      • مخاطبان کاربر: مخاطبان Analytics که برای هدف قرار دادن کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده می‌شوند
      • ویژگی کاربر: یک یا چند ویژگی کاربر Analytics برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
      • کاربر در درصد تصادفی: درصد تصادفی از کاربران را در یک محدوده صدک تعریف شده هدف قرار دهید.
      • بخش وارد شده: کاربرانی را هدف قرار دهید که به بخش‌های وارد شده سفارشی آپلود شده در پروژه شما تعلق دارند
      • تاریخ/زمان: کاربران را بر اساس یک تاریخ و زمان مشخص هدف قرار دهید
      • اولین باز شدن: کاربران را بر اساس اولین باری که برنامه شما را باز کرده‌اند، هدف قرار دهید.
      • شناسه نصب: دستگاه‌های آزمایشی خاص یا نمونه‌های کلاینت را با استفاده از شناسه‌های نصب Firebase (FID) آنها هدف قرار دهید.
      • کاربر وجود دارد: همه کاربران را در تمام برنامه‌های پروژه هدف قرار دهید
      • سیگنال سفارشی: کاربران را بر اساس سیگنال‌های کلید-مقدار سفارشی سمت کلاینت که در زمان اجرا ارسال می‌شوند، هدف قرار دهید.
  9. تنظیم میزان مواجهه: درصد پایگاه کاربری برنامه خود را که با معیارهای تعیین شده مطابقت دارد، در قسمت «کاربران هدف» که می‌خواهید به طور مساوی بین خط پایه و یک یا چند متغیر در آزمایش خود تقسیم کنید، وارد کنید. این می‌تواند هر درصدی بین 0٪ تا 100٪ باشد. کاربران به طور تصادفی به هر آزمایش، از جمله آزمایش‌های تکراری، اختصاص داده می‌شوند.

  10. به صورت اختیاری، یک رویداد فعال‌سازی تنظیم کنید تا مطمئن شوید که فقط داده‌های کاربرانی که ابتدا یک رویداد Analytics را فعال کرده‌اند در آزمایش شما شمارش می‌شوند. توجه داشته باشید که همه کاربرانی که با پارامترهای هدف‌گیری شما مطابقت دارند، مقادیر آزمایشی Remote Config دریافت خواهند کرد، اما فقط کسانی که یک رویداد فعال‌سازی را فعال می‌کنند در نتایج آزمایش شما لحاظ می‌شوند.

    برای اطمینان از یک آزمایش معتبر، مطمئن شوید که رویدادی که انتخاب می‌کنید پس از فعال شدن مقادیر پیکربندی واکشی شده توسط برنامه شما رخ می‌دهد. علاوه بر این، رویدادهای زیر قابل استفاده نیستند زیرا همیشه قبل از فعال شدن مقادیر واکشی شده رخ می‌دهند:

    • app_install
    • app_remove
    • app_update

    رویداد Analytics که به عنوان رویداد فعال‌سازی انتخاب می‌کنید، نباید به عنوان معیار اصلی (یا به عنوان یک معیار اضافی) در همان آزمایش نیز استفاده شود. انجام این کار باعث ایجاد خطای اعتبارسنجی در کنسول Firebase شده و از اجرای آزمایش شما جلوگیری می‌کند.

  11. برای اهداف آزمایش، معیار اصلی را برای ردیابی انتخاب کنید و هر معیار اضافی را که می‌خواهید ردیابی کنید از لیست اضافه کنید. این موارد شامل اهداف از پیش تعیین‌شده (خریدها، درآمد، حفظ مشتری، کاربران بدون خرابی و غیره)، رویدادهای تبدیل Analytics و سایر رویدادهای Analytics است. پس از اتمام، روی بعدی کلیک کنید.

  12. برای ذخیره آزمایش خود، روی ذخیره کلیک کنید. برای شروع اجرای آزمایش، باید الگو را منتشر کنید.

شما مجاز به انجام حداکثر ۳۰۰ آزمایش در هر پروژه (شامل راه‌اندازی‌ها) هستید، که می‌تواند شامل حداکثر ۲۴ آزمایش و راه‌اندازی در حال اجرا و بقیه آزمایش‌ها به عنوان آزمایش‌های تکمیل‌شده باشد.

آزمایش خود را مدیریت کنید

وقتی با استفاده از Remote Config یک آزمایش ایجاد می‌کنید، می‌توانید آزمایش خود را شروع کنید، در حین اجرا آن را زیر نظر داشته باشید و تعداد کاربرانی که در آزمایش در حال اجرا شرکت می‌کنند را افزایش دهید.

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

ویرایش یک آزمایش

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. روی «در حال اجرا» کلیک کنید، روی آزمایشی که می‌خواهید ویرایش کنید کلیک کنید.
  4. روی منوی زمینه ( ) کلیک کنید و روی ویرایش آزمایش در حال اجرا کلیک کنید.
  5. برای تأیید اینکه برنامه شما کاربرانی دارد که می‌توانند در آزمایش شما گنجانده شوند، جزئیات را گسترش دهید و در بخش هدف‌گیری و توزیع، عددی بزرگتر از ۰٪ را بررسی کنید (برای مثال، ۱٪ از کاربران مطابق با معیارها ).

نظارت بر یک آزمایش

وقتی مدتی از اجرای یک آزمایش گذشت، می‌توانید پیشرفت آن را بررسی کنید و ببینید نتایج شما برای کاربرانی که تاکنون در آزمایش شما شرکت کرده‌اند، چگونه به نظر می‌رسد.

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. روی Running کلیک کنید و سپس روی عنوان آزمایش خود کلیک کنید یا آن را جستجو کنید. در این صفحه، می‌توانید آمارهای مختلف مشاهده شده و مدل‌سازی شده در مورد آزمایش در حال اجرا خود، از جمله موارد زیر را مشاهده کنید:

    • درصد اختلاف از حالت پایه : معیاری برای بهبود یک معیار برای یک متغیر معین در مقایسه با حالت پایه. با مقایسه محدوده مقادیر متغیر با محدوده مقادیر حالت پایه محاسبه می‌شود.
    • احتمال غلبه بر خط پایه : احتمال تخمینی که یک متغیر معین، خط پایه را برای معیار انتخاب شده شکست می‌دهد.
    • observed_metric به ازای هر کاربر : بر اساس نتایج آزمایش، این محدوده پیش‌بینی‌شده‌ای است که مقدار متریک در طول زمان در آن قرار خواهد گرفت.
    • مجموع observed_metric : مقدار تجمعی مشاهده‌شده برای خط پایه یا متغیر. این مقدار برای اندازه‌گیری میزان عملکرد هر متغیر آزمایشی و محاسبه‌ی بهبود (Improvment)، محدوده‌ی ارزش (Value rangeاحتمال بهتر بودن از خط پایه (Probability to Beyond the baseline ) و احتمال بهترین بودن متغیر استفاده می‌شود. بسته به معیار اندازه‌گیری‌شده، این ستون ممکن است با برچسب‌های «مدت زمان به ازای هر کاربر»، «درآمد به ازای هر کاربر»، «نرخ ماندگاری» یا «نرخ تبدیل» نامگذاری شود.
  4. پس از اینکه آزمایش شما مدتی اجرا شد (۱۴ روز برای Remote Config )، داده‌های این صفحه نشان می‌دهد که کدام نوع، در صورت وجود، «پیشرو» است. برخی از اندازه‌گیری‌ها با نمودار میله‌ای همراه هستند که داده‌ها را در قالب بصری ارائه می‌دهد.

یک آزمایش را برای همه کاربران منتشر کنید

بعد از اینکه یک آزمایش به اندازه کافی اجرا شد که شما یک "پیشرو" یا یک نوع برنده برای معیار هدف خود داشتید، می‌توانید آزمایش را برای ۱۰۰٪ کاربران منتشر کنید. این به شما امکان می‌دهد تا یک نوع را برای انتشار برای همه کاربران در آینده انتخاب کنید. حتی اگر آزمایش شما یک برنده مشخص ایجاد نکرده باشد، هنوز می‌توانید یک نوع را برای همه کاربران خود منتشر کنید.

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. روی «تکمیل‌شده» یا «در حال اجرا» کلیک کنید، روی آزمایشی که می‌خواهید برای همه کاربران منتشر شود کلیک کنید، روی منوی زمینه ( ) کلیک کنید و گزینه «نوع را منتشر کنید» را انتخاب کنید .
  4. با انجام موارد زیر، آزمایش خود را برای همه کاربران منتشر کنید:
    • برای یک آزمایش Remote Config ، یک نوع را انتخاب کنید تا مشخص شود کدام مقادیر پارامتر Remote Config باید به‌روزرسانی شوند. معیارهای هدف‌گیری که هنگام ایجاد آزمایش تعریف شده‌اند، به عنوان یک شرط جدید در الگوی شما اضافه می‌شوند تا اطمینان حاصل شود که این به‌روزرسانی فقط بر کاربرانی که توسط آزمایش هدف قرار گرفته‌اند، تأثیر می‌گذارد. پس از کلیک روی «بررسی» در Remote Config برای بررسی تغییرات، روی «انتشار تغییرات» کلیک کنید تا به‌روزرسانی کامل شود.

گسترش یک آزمایش

اگر متوجه شدید که یک آزمایش، کاربران کافی برای A/B Testing و اعلام برتری را جذب نمی‌کند، می‌توانید توزیع آزمایش خود را افزایش دهید تا به درصد بیشتری از پایگاه کاربران برنامه دسترسی پیدا کنید.

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. آزمایش در حال اجرا را که می‌خواهید ویرایش کنید، انتخاب کنید.
  4. در نمای کلی آزمایش ، روی منوی زمینه ( ) کلیک کنید و سپس روی ویرایش آزمایش در حال اجرا کلیک کنید.
  5. پنجره‌ی «هدف‌گذاری» گزینه‌ای را برای افزایش درصد کاربرانی که در آزمایش در حال اجرا هستند نمایش می‌دهد. عددی بزرگتر از درصد فعلی را انتخاب کنید و روی «انتشار» کلیک کنید. آزمایش به درصد کاربرانی که مشخص کرده‌اید، منتقل می‌شود.

تکرار یک آزمایش

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. آزمایش در حال اجرا یا تکمیل‌شده‌ای را که می‌خواهید متوقف کنید، انتخاب کنید.
  4. روی «تکمیل‌شده» یا «در حال اجرا» کلیک کنید، اشاره‌گر را روی آزمایش خود نگه دارید، روی منوی زمینه ( ) کلیک کنید و سپس روی «تکرار آزمایش» یا «توقف آزمایش» کلیک کنید.

توقف یک آزمایش

  1. در بخش DevOps & Engagement از منوی ناوبری کنسول Firebase ، روی Remote Config کلیک کنید.
  2. روی برگه تست‌های A/B کلیک کنید.
  3. آزمایش در حال اجرا یا تکمیل‌شده‌ای را که می‌خواهید متوقف کنید، انتخاب کنید.
  4. روی «تکمیل‌شده» یا «در حال اجرا» کلیک کنید، اشاره‌گر را روی آزمایش خود نگه دارید، روی منوی زمینه ( ) کلیک کنید و سپس روی «توقف آزمایش» کلیک کنید.

شناسایی کلاینت وب و پایداری آزمایش

وقتی کاربری برای اولین بار یک برنامه وب را با استفاده از Firebase A/B Testing در مرورگر اجرا می‌کند، یک شناسه نصب منحصر به فرد Firebase (FID) ایجاد می‌شود. این FID به طور مداوم در IndexedDB مرورگر ذخیره می‌شود تا نمونه برنامه در طول جلسات شناسایی شود.

Firebase A/B Testing از FID برای اختصاص دادن کاربران به انواع آزمایش استفاده می‌کند و Google Analytics از آن برای تجمیع رویدادها برای اندازه‌گیری و تحلیل رفتار کاربر در هر نوع استفاده می‌کند.

از آنجا که FID در IndexedDB ذخیره می‌شود، Firebase A/B Testing اگر کاربر از مرورگر دیگری یا در یک پنجره ناشناس به برنامه شما دسترسی پیدا کند، یا اگر IndexedDB مرورگر خود را پاک کند، با او به عنوان یک کاربر جدید رفتار می‌کند. این بدان معناست که یک کاربر ممکن است هنگام استفاده از مرورگرها یا جلسات مرور مختلف، در انواع مختلف آزمایش گنجانده شود.

هدف‌گیری کاربر

شما می‌توانید با استفاده از معیارهای هدف‌گیری کاربر زیر، کاربرانی را که می‌خواهید در آزمایش خود بگنجانید، هدف قرار دهید.

انواع قوانین زیر در کنسول Firebase پشتیبانی می‌شوند. ویژگی‌های معادل آن در Remote Config REST API موجود است، همانطور که در مرجع عبارت شرطی توضیح داده شده است.

نوع قانون اپراتور(ها) ارزش(ها) توجه داشته باشید
برنامه == از لیست شناسه‌های برنامه، برنامه‌های مرتبط با پروژه Firebase خود را انتخاب کنید. وقتی برنامه‌ای را به Firebase اضافه می‌کنید، یک شناسه بسته یا نام بسته اندروید وارد می‌کنید که یک ویژگی را تعریف می‌کند که به عنوان شناسه برنامه در قوانین Remote Config نمایش داده می‌شود.

از این ویژگی به صورت زیر استفاده کنید:
  • برای پلتفرم‌های اپل: از CFBundleIdentifier برنامه استفاده کنید. می‌توانید Bundle Identifier را در تب General برای هدف اصلی برنامه خود در Xcode پیدا کنید.
  • برای اندروید: از applicationId برنامه استفاده کنید. می‌توانید applicationId را در فایل build.gradle(.kts) در سطح برنامه خود پیدا کنید.
نسخه برنامه برای مقادیر رشته‌ای:
دقیقاً مطابقت دارد،
شامل،
حاوی نیست،
شامل عبارت منظم است

برای مقادیر عددی:
<، <=، =، !=، >، >=

نسخه (های) برنامه خود را برای هدف قرار دادن مشخص کنید.

قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه اندروید/اپل مرتبط با پروژه Firebase خود استفاده کنید.

برای پلتفرم‌های اپل: از CFBundleShortVersionString برنامه استفاده کنید.

توجه: مطمئن شوید که برنامه اپل شما از SDK پلتفرم‌های اپل فایربیس نسخه ۶.۲۴.۰ یا بالاتر استفاده می‌کند، زیرا CFBundleShortVersionString در نسخه‌های قبلی ارسال نمی‌شود (به یادداشت‌های انتشار مراجعه کنید).

برای اندروید: از versionName برنامه استفاده کنید.

مقایسه‌های رشته‌ای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains regular expression ، می‌توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر عبارت منظم contains ، می‌توانید عبارات منظمی با فرمت RE2 ایجاد کنید. عبارت منظم شما می‌تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید.

شماره ساخت برای مقادیر رشته‌ای:
دقیقاً مطابقت دارد،
شامل،
حاوی نیست،
عبارت منظم

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

ساخت(های) برنامه خود را برای هدف قرار دادن مشخص کنید.

قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه اپل یا اندروید مرتبط با پروژه Firebase خود استفاده کنید.

این عملگر فقط برای برنامه‌های اپل و اندروید در دسترس است. این عملگر مربوط به CFBundleVersion برنامه برای اپل و versionCode برای اندروید است. مقایسه‌های رشته‌ای برای این قانون به حروف کوچک و بزرگ حساس هستند.

هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains عبارت منظم ، می‌توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر عبارت منظم contains ، می‌توانید عبارات منظمی با فرمت RE2 ایجاد کنید. عبارت منظم شما می‌تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید.

پلتفرم == آی‌او‌اس
اندروید
وب
سیستم عامل ==

سیستم عامل (های) مورد نظر برای هدف گیری را مشخص کنید.

قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر سیستم عامل و نسخه آن با یک مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین، true ارزیابی می‌شود.
مرورگر ==

مرورگر(های) مورد نظر برای هدف قرار دادن را مشخص کنید.

قبل از استفاده از این قانون، باید از یک قانون شناسه برنامه برای انتخاب یک برنامه وب مرتبط با پروژه Firebase خود استفاده کنید.

اگر مرورگر و نسخه آن با یک مقدار هدف در لیست مشخص شده مطابقت داشته باشند، این قانون برای یک نمونه برنامه وب معین، true ارزیابی می‌شود.
دسته بندی دستگاه هست، نیست موبایل این قانون ارزیابی می‌کند که آیا دستگاهی که به برنامه وب شما دسترسی دارد، موبایل است یا غیرموبایل (دسکتاپ یا کنسول). این نوع قانون فقط برای برنامه‌های وب در دسترس است.
زبان‌ها در است یک یا چند زبان را انتخاب کنید. این قانون برای یک نمونه برنامه‌ی مشخص، در صورتی که آن نمونه برنامه روی دستگاهی نصب شده باشد که از یکی از زبان‌های ذکر شده استفاده می‌کند، true ارزیابی می‌شود.
کشور/منطقه در است یک یا چند منطقه یا کشور را انتخاب کنید. این قانون برای یک نمونه برنامه معین، در صورتی که نمونه در هر یک از مناطق یا کشورهای ذکر شده باشد، true ارزیابی می‌شود. کد کشور دستگاه با استفاده از آدرس IP دستگاه در درخواست یا کد کشور تعیین شده توسط Firebase Analytics (در صورتی که داده‌های Analytics با Firebase به اشتراک گذاشته شود) تعیین می‌شود.
مخاطبان کاربر (بازدیدکنندگان) شامل حداقل یکی است یک یا چند مورد از فهرست مخاطبان Google Analytics که برای پروژه خود تنظیم کرده‌اید را انتخاب کنید.

این قانون برای انتخاب برنامه‌ای مرتبط با پروژه Firebase شما، به یک قانون App ID نیاز دارد.

توجه: از آنجا که بسیاری از مخاطبان Analytics توسط رویدادها یا ویژگی‌های کاربر تعریف می‌شوند، که می‌تواند بر اساس اقدامات کاربران برنامه باشد، ممکن است مدتی طول بکشد تا قانون «کاربر در مخاطب» برای یک نمونه برنامه خاص اعمال شود. این بدان معناست که حتی اگر یک کاربر از نظر فنی واجد شرایط مخاطب باشد، اگر Analytics هنوز کاربر را هنگام اجرای fetchAndActivate() به مخاطب اضافه نکرده باشد، کاربر با شرط مطابقت نخواهد داشت.

ویژگی کاربر برای مقادیر رشته‌ای:
شامل،
حاوی نیست،
دقیقاً مطابقت دارد،
شامل عبارت منظم است

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

نکته: در نسخه کلاینت، شما فقط می‌توانید مقادیر رشته‌ای را برای ویژگی‌های کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده می‌کنند، Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/اعشاری تبدیل می‌کند.
از لیست ویژگی‌های کاربر موجود Google Analytics یکی را انتخاب کنید. برای یادگیری نحوه استفاده از ویژگی‌های کاربر برای سفارشی‌سازی برنامه خود برای بخش‌های بسیار خاصی از پایگاه کاربری خود، به Remote Config و ویژگی‌های کاربر مراجعه کنید.

برای آشنایی بیشتر با ویژگی‌های کاربر، به راهنماهای زیر مراجعه کنید:

هنگام استفاده از عملگرهای exact matches ، contains ، does not contain یا contains regular expression ، می‌توانید چندین مقدار را انتخاب کنید.

هنگام استفاده از عملگر عبارت منظم contains ، می‌توانید عبارات منظمی با فرمت RE2 ایجاد کنید. عبارت منظم شما می‌تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید.

توجه: هنگام ایجاد شرایط Remote Config ویژگی‌های کاربر که به طور خودکار جمع‌آوری می‌شوند، در دسترس نیستند.
کاربر به صورت درصد تصادفی اسلایدر (در کنسول فایربیس. REST API از عملگرهای <= ، > و between استفاده می‌کند). ۰-۱۰۰

از این فیلد برای اعمال تغییر در یک نمونه تصادفی از نمونه‌های برنامه (با اندازه‌های نمونه کوچک تا .۰۰۰۱%) استفاده کنید و با استفاده از ویجت اسلایدر، کاربران (نمونه‌های برنامه) را که به صورت تصادفی انتخاب شده‌اند، به گروه‌هایی تقسیم کنید.

هر نمونه برنامه، طبق یک سید (seed) تعریف شده در آن پروژه، به طور مداوم به یک عدد صحیح یا کسری تصادفی نگاشت می‌شود.

یک قانون از کلید پیش‌فرض (که در کنسول Firebase با عنوان Edit seed نشان داده شده است) استفاده می‌کند، مگر اینکه مقدار seed را تغییر دهید. می‌توانید با پاک کردن فیلد Seed ، یک قانون را به استفاده از کلید پیش‌فرض برگردانید.

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

برای مثال، برای ایجاد دو شرط مرتبط که هر کدام برای ۵٪ از کاربران یک برنامه که همپوشانی ندارند اعمال می‌شود، می‌توانید یک شرط را طوری پیکربندی کنید که درصدی بین ۰٪ تا ۵٪ را مطابقت دهد و شرط دیگر را طوری پیکربندی کنید که محدوده‌ای بین ۵٪ تا ۱۰٪ را مطابقت دهد. برای اینکه به برخی از کاربران اجازه دهید به طور تصادفی در هر دو گروه ظاهر شوند، از مقادیر اولیه متفاوتی برای قوانین درون هر شرط استفاده کنید.

بخش وارداتی در است یک یا چند بخش وارد شده را انتخاب کنید. این قانون مستلزم تنظیم بخش‌های سفارشی وارد شده است.
تاریخ/زمان قبل، بعد تاریخ و زمان مشخص شده، چه در منطقه زمانی دستگاه و چه در یک منطقه زمانی مشخص مانند "(GMT+11) زمان سیدنی". زمان فعلی را با زمان دریافت دستگاه مقایسه می‌کند.
اولین باز قبل، بعد

کاربران را بر اساس اولین باری که برنامه شما را باز می‌کنند، هدف قرار دهید:

  • برای هدف قرار دادن کاربرانی که برای اولین بار پس از یک تاریخ و زمان مشخص در آینده، برنامه شما را باز می‌کنند، گزینه New users را انتخاب کنید.
  • برای هدف قرار دادن کاربرانی که برای اولین بار برنامه شما را در محدوده قبل یا بعد از تاریخ و زمانی که مشخص می‌کنید باز می‌کنند ، محدوده زمانی را انتخاب کنید. شرایط قبل و بعد را برای هدف قرار دادن کاربران در یک محدوده زمانی خاص ترکیب کنید.

هدف‌گیری کاربر بر اساس اولین باز شدن، پس از انتخاب یک برنامه اندروید، iOS یا وب، در دسترس است.

به SDK های زیر نیاز دارد:

  • کیت توسعه نرم‌افزار فایربیس برای Google Analytics
  • SDK پلتفرم‌های اپل نسخه ۹.۰.۰+ یا SDK اندروید نسخه ۲۱.۱.۱+ ( Firebase BoM ۳۰.۳.۰+) و SDK جاوااسکریپت نسخه ۱۲.۸.۰+.

همچنین باید در اولین رویداد باز، Analytics روی کلاینت فعال شده باشد.

شناسه نصب در است یک یا چند شناسه نصب (تا سقف ۵۰) را برای هدف‌گیری مشخص کنید. این قانون برای یک نصب معین، در صورتی که شناسه آن نصب در لیست مقادیر جدا شده با کاما باشد، true ارزیابی می‌شود.

برای آشنایی با نحوه‌ی دریافت شناسه‌های نصب، به بخش بازیابی شناسه‌های کلاینت مراجعه کنید.
کاربر وجود دارد (بدون اپراتور) همه کاربران همه برنامه‌های موجود در پروژه فعلی را هدف قرار می‌دهد.

از این قانون شرطی برای تطبیق همه کاربران درون پروژه، صرف نظر از برنامه یا پلتفرم، استفاده کنید.

سیگنال سفارشی برای مقادیر رشته‌ای:
شامل،
حاوی نیست،
دقیقاً مطابقت دارد،
شامل عبارت منظم است

برای مقادیر عددی:
=، ≠، >، ≥، <، ≤

برای مقادیر نسخه:
=، ≠، >، ≥، <، ≤

مقایسه‌های رشته‌ای برای این قانون به حروف کوچک و بزرگ حساس هستند. هنگام استفاده از عملگرهای exact matches، contains، does not contain یا contains عبارت منظم، می‌توانید چندین مقدار را انتخاب کنید. هنگام استفاده از عملگر contains عبارت منظم، می‌توانید عبارات منظمی با فرمت RE2 ایجاد کنید. عبارت منظم شما می‌تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین می‌توانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید.

انواع داده زیر برای محیط‌های کلاینت پشتیبانی می‌شوند:
  • iOS: عدد صحیح، عدد دوتایی
  • اندروید: عدد صحیح، طولانی، دوتایی
  • وب: شماره

عددی که نشان دهنده شماره (شماره‌های) نسخه‌ای است که باید مطابقت داده شود (برای مثال، ۲.۱.۰).

برای اطلاعات بیشتر در مورد شرایط سیگنال سفارشی و عبارات شرطی مورد استفاده، به شرایط سیگنال سفارشی و عناصر مورد استفاده برای ایجاد شرایط مراجعه کنید.

معیارهای A/B Testing

وقتی آزمایش خود را ایجاد می‌کنید، یک معیار اصلی یا هدف را انتخاب می‌کنید که برای تعیین نوع برنده استفاده می‌شود. همچنین باید معیارهای دیگری را پیگیری کنید تا به شما در درک بهتر عملکرد هر نوع آزمایش کمک کند و روندهای مهمی را که ممکن است برای هر نوع متفاوت باشد، مانند حفظ کاربر، پایداری برنامه و درآمد خرید درون برنامه، پیگیری کنید. می‌توانید تا پنج معیار غیرهدف را در آزمایش خود پیگیری کنید.

برای مثال، فرض کنید از Remote Config برای راه‌اندازی دو جریان بازی مختلف در برنامه خود استفاده می‌کنید و می‌خواهید خریدهای درون‌برنامه‌ای و درآمد تبلیغات را بهینه‌سازی کنید، اما همچنین می‌خواهید پایداری و میزان حفظ کاربر هر نوع را پیگیری کنید. در این حالت، می‌توانید Estimated total income را به عنوان معیار هدف خود انتخاب کنید زیرا شامل درآمد خرید درون‌برنامه‌ای و درآمد تبلیغات می‌شود و سپس، برای سایر معیارها برای پیگیری ، می‌توانید موارد زیر را اضافه کنید:

  • برای پیگیری میزان حفظ کاربر روزانه و هفتگی، «حفظ کاربر» (۲-۳ روز) و «حفظ کاربر» (۴-۷ روز) را اضافه کنید.
  • برای مقایسه پایداری بین دو جریان بازی، کاربران بدون خرابی (Crash-free users) را اضافه کنید.
  • برای مشاهده جزئیات بیشتر هر نوع درآمد، درآمد حاصل از خرید و درآمد تخمینی از تبلیغات را اضافه کنید.

جداول زیر جزئیاتی در مورد نحوه محاسبه معیارهای هدف و سایر معیارها ارائه می‌دهند.

معیارهای هدف

متریک توضیحات
کاربران بدون خرابی درصد کاربرانی که با خطاهایی که توسط Firebase Crashlytics SDK در طول آزمایش شناسایی شده‌اند، در برنامه شما مواجه نشده‌اند.

توجه: Firebase Crashlytics برای برنامه‌های وب پشتیبانی نمی‌شود.

درآمد تخمینی تبلیغات درآمد تخمینی از تبلیغات
کل درآمد تخمینی ارزش ترکیبی برای خرید و درآمد تخمینی تبلیغات.
درآمد حاصل از خرید ارزش ترکیبی برای همه رویدادهای purchase و in_app_purchase .
ماندگاری (۱ روز) تعداد کاربرانی که روزانه به اپلیکیشن شما مراجعه می‌کنند.
ماندگاری (۲-۳ روز) تعداد کاربرانی که ظرف ۲-۳ روز به اپلیکیشن شما بازمی‌گردند.
ماندگاری (۴-۷ روز) تعداد کاربرانی که ظرف ۴ تا ۷ روز به اپلیکیشن شما بازمی‌گردند.
ماندگاری (۸-۱۴ روز) تعداد کاربرانی که ظرف ۸ تا ۱۴ روز دوباره به اپلیکیشن شما مراجعه می‌کنند.
ماندگاری (۱۵+ روز) تعداد کاربرانی که ۱۵ روز یا بیشتر پس از آخرین استفاده از برنامه شما، دوباره به آن مراجعه می‌کنند.
first_open یک رویداد Analytics که وقتی کاربر پس از نصب یا نصب مجدد برنامه، آن را برای اولین بار باز می‌کند، فعال می‌شود. به عنوان بخشی از قیف تبدیل استفاده می‌شود.

سایر معیارها

متریک توضیحات
notification_dismiss یک رویداد Analytics که هنگام رد شدن اعلان ارسال شده توسط سازنده اعلان‌ها (Notifications composer) فعال می‌شود (فقط اندروید).
دریافت_اطلاعیه یک رویداد Analytics که زمانی فعال می‌شود که اعلان ارسال شده توسط سازنده اعلان‌ها (Notifications composer) در حالی که برنامه در پس‌زمینه است (فقط اندروید) دریافت شود.
به‌روزرسانی سیستم عامل یک رویداد Analytics که هنگام به‌روزرسانی سیستم عامل دستگاه به نسخه جدید، ردیابی می‌کند. برای کسب اطلاعات بیشتر، به رویدادهای جمع‌آوری‌شده خودکار مراجعه کنید.

این معیار برای برنامه‌های وب پشتیبانی نمی‌شود.

نمای صفحه یک رویداد Analytics که صفحات مشاهده شده در برنامه شما را ردیابی می‌کند. برای کسب اطلاعات بیشتر، به Track Screenviews مراجعه کنید.
شروع_جلسه یک رویداد Analytics که تعداد جلسات کاربر را در برنامه شما شمارش می‌کند. برای کسب اطلاعات بیشتر، به رویدادهای جمع‌آوری‌شده خودکار مراجعه کنید.

خروجی گرفتن از داده‌های 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. در کنسول Firebase ، به مسیر زیر بروید: > برگه یکپارچه‌سازی‌ها .

  2. در کارت BigQuery ، روی مدیریت (Manage) کلیک کنید و تأیید کنید که پروژه شما داده‌های Analytics را به BigQuery صادر می‌کند.

    اگر روی کارت عبارت «پیوند» نوشته شده باشد، باید خروجی گرفتن را تنظیم کنید (به مرحله بعدی بروید).

  3. اگر نیاز به تنظیم صادرات دارید:

    1. درباره اتصال Firebase به BigQuery نظر بدهید، سپس روی Next کلیک کنید.

    2. در بخش پیکربندی ادغام ، Google Analytics فعال کنید.

    3. یک منطقه را انتخاب کنید و تنظیمات صادرات را انتخاب کنید.

    4. روی پیوند به 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' تعیین کنید. برای مثال، به بخش «مقادیر یک آزمایش خاص را انتخاب کنید» مراجعه کنید.
  • Event names: Typically, these correspond with your goal metrics that you configured in the experiment. For example, in_app_purchase events, ad_impression , or user_retention events.

After you gather the information you need to generate your query:

  1. In the Google Cloud console, go to BigQuery .
  2. Select your project, then select Create SQL query .
  3. Add your query. For example queries to run, see Explore example queries .
  4. Click Run .

Query experiment data using the Firebase console's auto-generated query

If you're using the Blaze plan, the Experiment overview page provides a sample query that returns the experiment name, variants, event names, and the number of events for the experiment you're viewing.

To obtain and run the auto-generated query:

  1. In the Firebase console, go to DevOps & Engagement > A/B Testing .
  2. Select the A/B Testing experiment you want to query to open the Experiment overview .
  3. From the Options menu, beneath BigQuery integration , select Query experiment data . This opens your project in BigQuery within the Google Cloud console console and provides a basic query you can use to query your experiment data.

The following example shows a generated query for an experiment with three variants (including the baseline) named "Winter welcome experiment." It returns the active experiment name, variant name, unique event, and event count for each event. Note that the query builder doesn't specify your project name in the table name, as it opens directly within your project.

  /*
    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

For additional query examples, proceed to Explore example queries .

Explore example queries

The following sections provide examples of queries you can use to extract A/B Testing experiment data from Google Analytics event tables.

Extract purchase and experiment standard deviation values from all experiments

You can use experiment results data to independently verify Firebase A/B Testing results. The following BigQuery SQL statement extracts experiment variants, the number of unique users in each variant, and sums total revenue from in_app_purchase and ecommerce_purchase events, and standard deviations for all experiments within the time range specified as the _TABLE_SUFFIX begin and end dates. You can use the data you obtain from this query with a statistical significance generator for one-tailed t-tests to verify that the results Firebase provides match your own analysis.

For more information about how A/B Testing calculates inference, see Interpret test results .

  /*
    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;

Select a specific experiment's values

The following example query illustrates how to obtain data for a specific experiment in BigQuery . This sample query returns the experiment name, variant names (including Baseline), event names, and event counts.

  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