وقتی از Firebase Remote Config برای استقرار تنظیمات یک برنامه با پایگاه کاربر فعال استفاده میکنید، میخواهید مطمئن شوید که آن را به درستی انجام میدهید. میتوانید از آزمایشهای A/B Testing برای تعیین بهترین موارد زیر استفاده کنید:
- بهترین راه برای پیادهسازی یک ویژگی برای بهینهسازی تجربه کاربری. اغلب اوقات، توسعهدهندگان اپلیکیشن متوجه نمیشوند که کاربرانشان از یک ویژگی جدید یا یک تجربه کاربری بهروزرسانیشده خوششان نمیآید تا زمانی که رتبه اپلیکیشن آنها در اپ استور کاهش یابد. تست A/B میتواند به سنجش اینکه آیا کاربران شما انواع جدید ویژگیها را دوست دارند یا اینکه آیا اپلیکیشن را همانطور که هست ترجیح میدهند، کمک کند. بهعلاوه، نگهداشتن اکثر کاربرانتان در یک گروه پایه تضمین میکند که اکثر پایگاه کاربری شما میتوانند بدون هیچ تغییری در رفتار یا ظاهر اپلیکیشن تا زمان پایان آزمایش، به استفاده از آن ادامه دهند.
- بهترین راه برای بهینهسازی تجربه کاربری برای یک هدف تجاری. گاهی اوقات شما در حال اجرای تغییرات محصول برای به حداکثر رساندن معیاری مانند درآمد یا حفظ مشتری هستید. با تست A/B، هدف تجاری خود را تعیین میکنید و Firebase تجزیه و تحلیل آماری را انجام میدهد تا مشخص کند که آیا یک نوع، عملکرد بهتری نسبت به خط پایه برای هدف انتخابی شما دارد یا خیر.
برای تست A/B انواع ویژگیها با یک خط پایه، موارد زیر را انجام دهید:
- آزمایش خود را ایجاد کنید.
- آزمایش خود را روی یک دستگاه آزمایشی اعتبارسنجی کنید.
- آزمایش خود را مدیریت کنید.
یک آزمایش ایجاد کنید
یک آزمایش Remote Config به شما امکان میدهد چندین نوع را روی یک یا چند پارامتر Remote Config ارزیابی کنید.
وارد کنسول Firebase شوید و تأیید کنید که Google Analytics در پروژه شما فعال است تا آزمایش به دادههای Analytics دسترسی داشته باشد.
اگر هنگام ایجاد پروژه خود، Google Analytics فعال نکردهاید، میتوانید آن را در تب Integrations فعال کنید که میتوانید با استفاده از > Project settings در کنسول Firebase به آن دسترسی پیدا کنید.
در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
روی ایجاد آزمایش کلیک کنید و سپس وقتی از شما خواسته شد سرویسی را که میخواهید با آن آزمایش کنید Remote Config را انتخاب کنید.
یک نام و توضیحات اختیاری برای آزمایش خود وارد کنید و روی «بعدی» کلیک کنید.
فیلدهای هدفگیری را پر کنید، ابتدا برنامهای را که از آزمایش شما استفاده میکند انتخاب کنید. همچنین میتوانید با کلیک کردن و ، سپس انتخاب گزینههایی از لیست زیر، زیرمجموعهای از کاربران خود را برای شرکت در آزمایش خود هدف قرار دهید:
- نسخه: یک یا چند نسخه از برنامه شما
- شماره ساخت: کد نسخه برنامه
- زبانها: یک یا چند زبان و منطقهی جغرافیایی که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده میشود.
- کشور/منطقه: یک یا چند کشور یا منطقه برای انتخاب کاربرانی که باید در آزمایش گنجانده شوند
- مخاطبان کاربر: مخاطبان Analytics که برای هدف قرار دادن کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده میشوند
- ویژگی کاربر: یک یا چند ویژگی کاربر Analytics برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
اولین باز شدن: کاربران را بر اساس اولین باری که برنامه شما را باز کردهاند، هدف قرار دهید.
هدفگیری کاربر بر اساس اولین زمان باز شدن، پس از انتخاب یک برنامه اندروید یا iOS در دسترس است. این قابلیت توسط نسخههای Remote Config SDK زیر پشتیبانی میشود: Apple platforms SDK v9.0.0+ و Android SDK v21.1.1+ ( Firebase BoM v30.3.0+).
همچنین باید در اولین رویداد باز، Analytics روی کلاینت فعال شده باشد.
درصد کاربران هدف را تنظیم کنید: درصد پایگاه کاربری برنامه خود را که با معیارهای تعیین شده مطابقت دارد، در قسمت کاربران هدف که میخواهید به طور مساوی بین خط پایه و یک یا چند نوع در آزمایش خود تقسیم کنید، وارد کنید. این میتواند هر درصدی بین 0.01٪ تا 100٪ باشد. کاربران به طور تصادفی به هر آزمایش، از جمله آزمایشهای تکراری، اختصاص داده میشوند.
به صورت اختیاری، یک رویداد فعالسازی تنظیم کنید تا مطمئن شوید که فقط دادههای کاربرانی که ابتدا یک رویداد Analytics را فعال کردهاند در آزمایش شما شمارش میشوند. توجه داشته باشید که همه کاربرانی که با پارامترهای هدفگیری شما مطابقت دارند، مقادیر آزمایشی Remote Config دریافت خواهند کرد، اما فقط کسانی که یک رویداد فعالسازی را فعال میکنند در نتایج آزمایش شما لحاظ میشوند.
برای اطمینان از یک آزمایش معتبر، مطمئن شوید که رویدادی که انتخاب میکنید پس از فعال شدن مقادیر پیکربندی واکشی شده توسط برنامه شما رخ میدهد. علاوه بر این، رویدادهای زیر قابل استفاده نیستند زیرا همیشه قبل از فعال شدن مقادیر واکشی شده رخ میدهند:
-
app_install -
app_remove -
app_update
رویداد Analytics که به عنوان رویداد فعالسازی انتخاب میکنید، نباید به عنوان معیار اصلی (یا به عنوان یک معیار اضافی) در همان آزمایش نیز استفاده شود. انجام این کار باعث ایجاد خطای اعتبارسنجی در کنسول Firebase شده و از اجرای آزمایش شما جلوگیری میکند.
-
برای اهداف آزمایش، معیار اصلی را برای ردیابی انتخاب کنید و هر معیار اضافی را که میخواهید ردیابی کنید از لیست اضافه کنید. این موارد شامل اهداف از پیش تعیینشده (خریدها، درآمد، حفظ مشتری، کاربران بدون خرابی و غیره)، رویدادهای تبدیل Analytics و سایر رویدادهای Analytics است. پس از اتمام، روی بعدی کلیک کنید.
در بخش Variants ، یک پایه و حداقل یک متغیر برای آزمایش انتخاب کنید. از لیست Choose یا create new برای اضافه کردن یک یا چند پارامتر برای آزمایش استفاده کنید. میتوانید پارامتری ایجاد کنید که قبلاً در کنسول Firebase استفاده نشده باشد، اما برای اینکه تأثیری داشته باشد، باید در برنامه شما وجود داشته باشد. میتوانید این مرحله را برای اضافه کردن چندین پارامتر به آزمایش خود تکرار کنید.
(اختیاری) برای افزودن بیش از یک نوع به آزمایش خود، روی «افزودن نوع دیگر» کلیک کنید.
یک یا چند پارامتر را برای انواع خاص تغییر دهید. هر پارامتر بدون تغییر برای کاربرانی که در آزمایش گنجانده نشدهاند، یکسان است.
برای مشاهده یا تغییر وزن متغیرها برای آزمایش، وزن متغیرها را باز کنید. به طور پیشفرض، هر متغیر وزن یکسانی دارد. توجه داشته باشید که وزنهای ناهموار ممکن است زمان جمعآوری دادهها را افزایش دهند و وزنها پس از شروع آزمایش قابل تغییر نیستند .
برای ذخیره آزمایش خود، روی «بررسی» کلیک کنید.
شما مجاز به انجام حداکثر ۳۰۰ آزمایش در هر پروژه هستید که میتواند شامل ۲۴ آزمایش در حال اجرا و بقیه به صورت پیشنویس یا تکمیلشده باشد.
آزمایش خود را روی یک دستگاه آزمایشی اعتبارسنجی کنید
برای هر نصب Firebase، میتوانید توکن احراز هویت نصب مرتبط با آن را بازیابی کنید. میتوانید از این توکن برای آزمایش انواع آزمایشهای خاص روی یک دستگاه آزمایشی با برنامه نصب شده خود استفاده کنید. برای اعتبارسنجی آزمایش خود روی یک دستگاه آزمایشی، موارد زیر را انجام دهید:
- توکن احراز هویت نصب را به صورت زیر دریافت کنید:
سویفت
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
هدف-سی
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
سی++
firebase::InitResult init_result; auto* installations_object = firebase::installations::Installations::GetInstance( firebase::App::GetInstance(), &init_result); installations_object->GetToken().OnCompletion( [](const firebase::Future<std::string>& future) { if (future.status() == kFutureStatusComplete && future.error() == firebase::installations::kErrorNone) { printf("Installations Auth Token %s\n", future.result()->c_str()); } });
وحدت
Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith( task => { if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) { UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result)); } });
- در نوار ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی Draft (و/یا Running برای آزمایشهای Remote Config) کلیک کنید، نشانگر ماوس را روی آزمایش خود نگه دارید، روی منوی زمینه ( more_vert ) کلیک کنید و سپس روی Manage test devices کلیک کنید.
- توکن احراز هویت نصب را برای یک دستگاه آزمایشی وارد کنید و نوع آزمایشی را برای ارسال به آن دستگاه آزمایشی انتخاب کنید.
- برنامه را اجرا کنید و تأیید کنید که نوع انتخاب شده در دستگاه آزمایشی دریافت میشود.
برای کسب اطلاعات بیشتر در مورد نصبهای Firebase ، به مدیریت نصبهای Firebase مراجعه کنید.
آزمایش خود را مدیریت کنید
چه با Remote Config ، کامپوزر Notifications یا Firebase In-App Messaging یک آزمایش ایجاد کنید، میتوانید آزمایش خود را اعتبارسنجی و شروع کنید، آزمایش خود را در حین اجرا نظارت کنید و تعداد کاربرانی را که در آزمایش در حال اجرا شرکت میکنند، افزایش دهید.
وقتی آزمایش شما انجام شد، میتوانید تنظیمات مورد استفاده توسط نسخه برنده را یادداشت کنید و سپس آن تنظیمات را برای همه کاربران اعمال کنید. یا میتوانید آزمایش دیگری انجام دهید.
شروع یک آزمایش
- در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی پیشنویس کلیک کنید و سپس روی عنوان آزمایش خود کلیک کنید.
- برای تأیید اینکه برنامه شما کاربرانی دارد که میتوانند در آزمایش شما گنجانده شوند، جزئیات پیشنویس را گسترش دهید و در بخش هدفگیری و توزیع، عددی بزرگتر از ۰٪ را بررسی کنید (برای مثال، ۱٪ از کاربران مطابق با معیارها ).
- برای تغییر آزمایش خود، روی «ویرایش» کلیک کنید.
- برای شروع آزمایش خود، روی «شروع آزمایش» کلیک کنید. میتوانید تا ۲۴ آزمایش را در هر پروژه به طور همزمان اجرا کنید.
نظارت بر یک آزمایش
وقتی مدتی از اجرای یک آزمایش گذشت، میتوانید پیشرفت آن را بررسی کنید و ببینید نتایج شما برای کاربرانی که تاکنون در آزمایش شما شرکت کردهاند، چگونه به نظر میرسد.
- در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
روی Running کلیک کنید و سپس روی عنوان آزمایش خود کلیک کنید یا آن را جستجو کنید. در این صفحه، میتوانید آمارهای مختلف مشاهده شده و مدلسازی شده در مورد آزمایش در حال اجرا خود، از جمله موارد زیر را مشاهده کنید:
- درصد اختلاف از حالت پایه : معیاری برای بهبود یک معیار برای یک متغیر معین در مقایسه با حالت پایه. با مقایسه محدوده مقادیر متغیر با محدوده مقادیر حالت پایه محاسبه میشود.
- احتمال غلبه بر خط پایه : احتمال تخمینی که یک متغیر معین، خط پایه را برای معیار انتخاب شده شکست میدهد.
- observed_metric به ازای هر کاربر : بر اساس نتایج آزمایش، این محدوده پیشبینیشدهای است که مقدار متریک در طول زمان در آن قرار خواهد گرفت.
- مجموع observed_metric : مقدار تجمعی مشاهدهشده برای خط پایه یا متغیر. این مقدار برای اندازهگیری میزان عملکرد هر متغیر آزمایشی و محاسبهی بهبود (Improvment )، محدودهی ارزش (Value range )، احتمال بهتر بودن از خط پایه (Probability to Beyond the baseline ) و احتمال بهترین بودن متغیر استفاده میشود. بسته به معیار اندازهگیریشده، این ستون ممکن است با برچسبهای «مدت زمان به ازای هر کاربر»، «درآمد به ازای هر کاربر»، «نرخ ماندگاری» یا «نرخ تبدیل» نامگذاری شود.
پس از اینکه آزمایش شما مدتی اجرا شد (حداقل ۷ روز برای FCM و In-App Messaging یا ۱۴ روز برای Remote Config )، دادههای این صفحه نشان میدهد که کدام نوع، در صورت وجود، «پیشرو» است. برخی از اندازهگیریها با نمودار میلهای همراه هستند که دادهها را در قالب بصری ارائه میدهد.
یک آزمایش را برای همه کاربران منتشر کنید
بعد از اینکه یک آزمایش به اندازه کافی اجرا شد که شما یک "پیشرو" یا نوع برنده برای معیار هدف خود داشتید، میتوانید آزمایش را برای ۱۰۰٪ کاربران منتشر کنید. این به شما امکان میدهد تا یک نوع را برای انتشار برای همه کاربران در آینده انتخاب کنید. حتی اگر آزمایش شما یک برنده مشخص ایجاد نکرده باشد، هنوز میتوانید یک نوع را برای همه کاربران خود منتشر کنید.
- در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی «تکمیلشده» یا «در حال اجرا» کلیک کنید، روی آزمایشی که میخواهید برای همه کاربران منتشر شود کلیک کنید، روی منوی زمینه ( ) کلیک کنید و گزینه «نوع را منتشر کنید» را انتخاب کنید .
با انجام یکی از موارد زیر، آزمایش خود را برای همه کاربران منتشر کنید:
- برای آزمایشی که از آهنگساز Notifications استفاده میکند، از کادر گفتگوی Rollout message برای ارسال پیام به کاربران هدف باقیمانده که بخشی از آزمایش نبودند، استفاده کنید.
- برای یک آزمایش Remote Config ، یک نوع را انتخاب کنید تا مشخص شود کدام مقادیر پارامتر Remote Config باید بهروزرسانی شوند. معیارهای هدفگیری که هنگام ایجاد آزمایش تعریف شدهاند، به عنوان یک شرط جدید در الگوی شما اضافه میشوند تا اطمینان حاصل شود که این بهروزرسانی فقط بر کاربرانی که توسط آزمایش هدف قرار گرفتهاند، تأثیر میگذارد. پس از کلیک روی «بررسی» در Remote Config برای بررسی تغییرات، روی «انتشار تغییرات» کلیک کنید تا بهروزرسانی کامل شود.
- برای آزمایش In-App Messaging ، از کادر محاورهای استفاده کنید تا مشخص کنید کدام نوع باید به عنوان یک کمپین In-App Messaging مستقل اجرا شود. پس از انتخاب، به صفحه نوشتن FIAM هدایت میشوید تا قبل از انتشار، هرگونه تغییری (در صورت لزوم) را انجام دهید.
گسترش یک آزمایش
اگر متوجه شدید که یک آزمایش، کاربران کافی برای A/B Testing و اعلام برتری را جذب نمیکند، میتوانید توزیع آزمایش خود را افزایش دهید تا به درصد بیشتری از پایگاه کاربران برنامه دسترسی پیدا کنید.
- در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
- آزمایش در حال اجرا را که میخواهید ویرایش کنید، انتخاب کنید.
- در نمای کلی آزمایش ، روی منوی زمینه ( ) کلیک کنید و سپس روی ویرایش آزمایش در حال اجرا کلیک کنید.
- پنجرهی «هدفگذاری» گزینهای را برای افزایش درصد کاربرانی که در آزمایش در حال اجرا هستند نمایش میدهد. عددی بزرگتر از درصد فعلی را انتخاب کنید و روی «انتشار» کلیک کنید. آزمایش به درصد کاربرانی که مشخص کردهاید، منتقل میشود.
تکرار یا متوقف کردن یک آزمایش
- در بخش Engage از منوی ناوبری کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی «تکمیلشده» یا «در حال اجرا» کلیک کنید، اشارهگر را روی آزمایش خود نگه دارید، روی منوی زمینه ( ) کلیک کنید و سپس روی «تکرار آزمایش» یا «توقف آزمایش» کلیک کنید.
هدفگیری کاربر
شما میتوانید با استفاده از معیارهای هدفگیری کاربر زیر، کاربرانی را که میخواهید در آزمایش خود بگنجانید، هدف قرار دهید.
| معیار هدفگذاری | اپراتور(ها) | ارزش(ها) | توجه داشته باشید | |
|---|---|---|---|---|
| نسخه | شامل، حاوی نیست، دقیقاً مطابقت دارد، حاوی عبارت منظم (regex) است | برای یک یا چند نسخه از برنامه که میخواهید در آزمایش گنجانده شوند، مقداری وارد کنید. | هنگام استفاده از هر یک از عملگرهای contains ، does not contain یا matches exactly ، میتوانید لیستی از مقادیر را که با کاما از هم جدا شدهاند، ارائه دهید. هنگام استفاده از عملگر contains regex ، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. | |
| مخاطبان کاربر (بازدیدکنندگان) | شامل همه میشود، شامل حداقل یکی از موارد زیر باشد، شامل همه نمیشود، حداقل یکی از آنها را شامل نمیشود | یک یا چند مخاطب Analytics را برای هدف قرار دادن کاربرانی که ممکن است در آزمایش شما گنجانده شوند، انتخاب کنید. | برخی از آزمایشهایی که مخاطبان Google Analytics را هدف قرار میدهند، ممکن است به چند روز زمان برای جمعآوری دادهها نیاز داشته باشند، زیرا این آزمایشها مشمول تأخیر پردازش دادههای Analytics هستند. به احتمال زیاد با این تأخیر در مورد کاربران جدید که معمولاً ۲۴ تا ۴۸ ساعت پس از ایجاد در مخاطبان واجد شرایط ثبت میشوند، یا برای مخاطبان اخیراً ایجاد شده، مواجه خواهید شد. برای Remote Config ، این بدان معناست که حتی اگر کاربری از نظر فنی واجد شرایط مخاطب باشد، اگر Analytics هنوز کاربر را هنگام اجرای `fetchAndActivate()` به مخاطب اضافه نکرده باشد، کاربر در آزمایش گنجانده نخواهد شد. | |
| ویژگی کاربر | برای متن: شامل، حاوی نیست، دقیقاً مطابقت دارد، شامل عبارت منظم (regex) است برای اعداد: <، ≤، =، ≥، > | یک ویژگی کاربر Analytics برای انتخاب کاربرانی که ممکن است در یک آزمایش گنجانده شوند، با طیف وسیعی از گزینهها برای انتخاب مقادیر ویژگی کاربر، استفاده میشود. در سمت کلاینت، شما فقط میتوانید مقادیر رشتهای را برای ویژگیهای کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده میکنند، سرویس Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/اعشاری تبدیل میکند. | هنگام استفاده از عملگر contains regex ، میتوانید عبارات منظم را با فرمت RE2 ایجاد کنید. عبارت منظم شما میتواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با ابتدا، انتها یا کل یک رشته هدف استفاده کنید. | |
| کشور/منطقه | ناموجود | یک یا چند کشور یا منطقه برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده میشود. | ||
| زبانها | ناموجود | یک یا چند زبان و منطقهی جغرافیایی که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند، استفاده شده است. | ||
| اولین باز | قبل از بعد از | کاربران را بر اساس اولین باری که برنامه شما را باز میکنند، هدف قرار دهید:
| هدفگیری کاربر بر اساس اولین باز شدن، پس از انتخاب یک برنامه اندروید یا iOS در دسترس است. در حال حاضر، این قابلیت توسط نسخههای Remote Config SDK زیر پشتیبانی میشود: Apple Platforms SDK v9.0.0+ و Android SDK v21.1.1+ ( Firebase BoM v30.3.0+). همچنین باید در اولین رویداد باز، Analytics روی کلاینت فعال شده باشد. |
معیارهای A/B Testing
وقتی آزمایش خود را ایجاد میکنید، یک معیار اصلی یا هدف را انتخاب میکنید که برای تعیین نوع برنده استفاده میشود. همچنین باید معیارهای دیگری را پیگیری کنید تا به شما در درک بهتر عملکرد هر نوع آزمایش کمک کند و روندهای مهمی را که ممکن است برای هر نوع متفاوت باشد، مانند حفظ کاربر، پایداری برنامه و درآمد خرید درون برنامه، پیگیری کنید. میتوانید تا پنج معیار غیرهدف را در آزمایش خود پیگیری کنید.
برای مثال، فرض کنید از Remote Config برای راهاندازی دو جریان بازی مختلف در برنامه خود استفاده میکنید و میخواهید خریدهای درونبرنامهای و درآمد تبلیغات را بهینهسازی کنید، اما همچنین میخواهید پایداری و میزان حفظ کاربر هر نوع را پیگیری کنید. در این حالت، میتوانید Estimated total income را به عنوان معیار هدف خود انتخاب کنید زیرا شامل درآمد خرید درونبرنامهای و درآمد تبلیغات میشود و سپس، برای سایر معیارها برای پیگیری ، میتوانید موارد زیر را اضافه کنید:
- برای پیگیری میزان حفظ کاربر روزانه و هفتگی، «حفظ کاربر» (۲-۳ روز) و «حفظ کاربر» (۴-۷ روز) را اضافه کنید.
- برای مقایسه پایداری بین دو جریان بازی، کاربران بدون خرابی (Crash-free users) را اضافه کنید.
- برای مشاهده جزئیات بیشتر هر نوع درآمد، درآمد حاصل از خرید و درآمد تخمینی از تبلیغات را اضافه کنید.
جداول زیر جزئیاتی در مورد نحوه محاسبه معیارهای هدف و سایر معیارها ارائه میدهند.
معیارهای هدف
| متریک | توضیحات |
|---|---|
| کاربران بدون خرابی | درصد کاربرانی که با خطاهایی که توسط Firebase Crashlytics SDK در طول آزمایش شناسایی شدهاند، در برنامه شما مواجه نشدهاند. |
| درآمد تخمینی تبلیغات | درآمد تخمینی از تبلیغات |
| کل درآمد تخمینی | ارزش ترکیبی برای خرید و درآمد تخمینی تبلیغات. |
| درآمد حاصل از خرید | ارزش ترکیبی برای همه رویدادهای 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 را به طور مستقل تأیید کنید.
برای شروع، موارد زیر را طبق توضیحات این راهنما انجام دهید:
- فعال کردن خروجی BigQuery برای Google Analytics در کنسول فایربیس
- دسترسی به دادههای A/B Testing با استفاده از BigQuery
- کاوش در نمونه سوالات
فعال کردن خروجی BigQuery برای Google Analytics در کنسول فایربیس
اگر از طرح Spark استفاده میکنید، میتوانید از محیط سندباکس BigQuery برای دسترسی رایگان BigQuery استفاده کنید، البته با توجه به محدودیتهای Sandbox . برای اطلاعات بیشتر به بخش قیمتگذاری و محیط سندباکس BigQuery مراجعه کنید.
ابتدا مطمئن شوید که دادههای Analytics خود را به BigQuery منتقل میکنید:
- تب Integrations را باز کنید، که میتوانید با استفاده از > Project settings در کنسول Firebase به آن دسترسی پیدا کنید.
- اگر از قبل از BigQuery با سایر سرویسهای Firebase استفاده میکنید، روی Manage کلیک کنید. در غیر این صورت، روی Link کلیک کنید.
- درباره اتصال Firebase به BigQuery نظر بدهید، سپس روی Next کلیک کنید.
- در بخش پیکربندی ادغام ، گزینهی Google Analytics را فعال کنید.
یک منطقه را انتخاب کنید و تنظیمات صادرات را انتخاب کنید.
روی پیوند به 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.
پس از جمعآوری اطلاعات مورد نیاز برای ایجاد پرسوجو:
- BigQuery در کنسول Google Cloud باز کنید.
- پروژه خود را انتخاب کنید، سپس گزینه Create SQL query را انتخاب کنید.
- پرسوجوی خود را اضافه کنید. برای مثالهایی از پرسوجوهایی که باید اجرا شوند، به بخش «پرسوجوهای نمونه را کاوش کنید» مراجعه کنید.
- روی اجرا کلیک کنید.
دادههای آزمایش را با استفاده از کوئری تولید شده خودکار کنسول Firebase جستجو کنید
اگر از طرح Blaze استفاده میکنید، صفحه مرور کلی آزمایش ، یک نمونه پرسوجو ارائه میدهد که نام آزمایش، انواع آن، نام رویدادها و تعداد رویدادهای آزمایشی که مشاهده میکنید را برمیگرداند.
برای دریافت و اجرای کوئری تولید شده خودکار:
- از کنسول Firebase ، A/B Testing را باز کنید و آزمایش A/B Testing مورد نظر خود را برای پرس و جو انتخاب کنید تا نمای کلی آزمایش باز شود.
- از منوی 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