هنگامی که با کاربران خود ارتباط برقرار می کنید یا یک کمپین بازاریابی جدید را شروع می کنید، می خواهید مطمئن شوید که آن را به درستی انجام داده اید. تست A/B میتواند به شما کمک کند تا با آزمایش انواع پیام در بخشهای انتخابی پایگاه کاربری خود، جملهبندی و ارائه بهینه را پیدا کنید. خواه هدف شما حفظ بهتر یا تبدیل در یک پیشنهاد باشد، آزمایش A/B میتواند تجزیه و تحلیل آماری را انجام دهد تا مشخص کند آیا یک نوع پیام از خط پایه برای هدف انتخابی شما بهتر است یا خیر.
برای انواع ویژگی های تست A/B با خط مبنا، موارد زیر را انجام دهید:
- آزمایش خود را ایجاد کنید
- آزمایش خود را روی دستگاه آزمایشی تأیید کنید.
- آزمایش خود را مدیریت کنید
یک آزمایش ایجاد کنید
آزمایشی که از آهنگساز Notifications استفاده می کند به شما امکان می دهد چندین گونه را در یک پیام اعلان ارزیابی کنید.
به کنسول Firebase وارد شوید و بررسی کنید که Google Analytics در پروژه شما فعال است تا آزمایش به داده های Analytics دسترسی داشته باشد.
اگر Google Analytics هنگام ایجاد پروژه خود فعال نکرده اید، می توانید آن را در برگه Integrations فعال کنید، که می توانید با استفاده از > تنظیمات پروژه در کنسول Firebase به آن دسترسی داشته باشید.
در بخش Engage نوار پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
روی ایجاد آزمایش کلیک کنید و سپس وقتی از سرویسی که میخواهید با آن آزمایش کنید از شما خواسته شد، اعلانها را انتخاب کنید.
یک نام و توضیحات اختیاری برای آزمایش خود وارد کنید و روی Next کلیک کنید.
فیلدهای Targeting را پر کنید، ابتدا برنامه ای را انتخاب کنید که از آزمایش شما استفاده می کند. همچنین میتوانید با انتخاب گزینههایی که شامل موارد زیر است، زیرمجموعهای از کاربران خود را برای شرکت در آزمایش خود هدفگیری کنید:
- نسخه: یک یا چند نسخه از برنامه شما
- مخاطبان کاربر: مخاطبان Analytics برای هدف قرار دادن کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده می شود
- ویژگی کاربر: یک یا چند ویژگی کاربر Analytics برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
- کشور/منطقه: یک یا چند کشور یا منطقه برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
- زبان دستگاه: یک یا چند زبان و منطقه مورد استفاده برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
- اولین باز: کاربران را بر اساس اولین باری که برنامه شما را باز کرده اند مورد هدف قرار دهید
- آخرین تعامل با برنامه: کاربران را بر اساس آخرین باری که با برنامه شما درگیر شده اند مورد هدف قرار دهید
تنظیم درصد کاربران هدف: درصدی از پایگاه کاربر برنامه خود را انتخاب کنید که با معیارهای تعیین شده در زیر کاربران هدف مطابقت دارد که میخواهید به طور مساوی بین خط پایه و یک یا چند نوع در آزمایش خود تقسیم کنید. این می تواند هر درصدی بین 0.01٪ و 100٪ باشد. درصدها برای هر آزمایش، از جمله آزمایشهای تکراری، بهطور تصادفی به کاربران تخصیص داده میشوند.
در قسمت Variants ، پیامی را برای ارسال به گروه پایه در قسمت Enter text message تایپ کنید. برای ارسال پیام به گروه پایه، این قسمت را خالی بگذارید.
(اختیاری) برای افزودن بیش از یک نوع به آزمایش خود، روی افزودن نوع کلیک کنید. بهطور پیشفرض، آزمایشها یک خط پایه و یک نوع دارند.
(اختیاری) نامی برای هر گونه در آزمایش خود وارد کنید تا جایگزین نام های متغیر A ، نوع B و غیره شود.
یک معیار هدف را برای آزمایش خود تعریف کنید تا از آن هنگام ارزیابی انواع آزمایش به همراه هر سنجه اضافی مورد نظر از لیست کشویی استفاده کنید. این معیارها شامل اهداف داخلی (تعامل، خرید، درآمد، حفظ و غیره)، رویدادهای تبدیل Analytics و سایر رویدادهای Analytics است.
گزینه هایی را برای پیام خود انتخاب کنید:
- تاریخ تحویل: یا ارسال اکنون را انتخاب کنید تا آزمایش خود را بلافاصله پس از ذخیره انجام دهید، یا زمانبندی شده را برای تعیین زمانی برای شروع آزمایش خود در آینده انتخاب کنید.
- گزینههای پیشرفته: برای انتخاب گزینههای پیشرفته برای همه اعلانهای موجود در آزمایش، گزینههای پیشرفته را گسترش دهید و سپس هر یک از گزینههای پیام فهرست شده را تغییر دهید.
برای ذخیره آزمایش خود، روی Review کلیک کنید.
شما مجاز به 300 آزمایش در هر پروژه هستید که می تواند شامل حداکثر 24 آزمایش در حال اجرا باشد و بقیه به صورت پیش نویس یا تکمیل شده باشد.
آزمایش خود را روی دستگاه آزمایشی تأیید کنید
برای هر نصب Firebase میتوانید رمز ثبت FCM مرتبط با آن را بازیابی کنید. میتوانید از این نشانه برای آزمایش انواع آزمایشی خاص در دستگاه آزمایشی با نصب برنامه خود استفاده کنید. برای تأیید آزمایش خود بر روی یک دستگاه آزمایشی، موارد زیر را انجام دهید:
- رمز ثبت FCM را به شرح زیر دریافت کنید:
سویفت
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
هدف-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
C++
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.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith( task => { if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) { UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result)); } });
- در نوار پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی پیش نویس کلیک کنید، نشانگر را روی آزمایش خود نگه دارید، روی منوی زمینه ( more_vert ) و سپس روی مدیریت دستگاه های آزمایشی کلیک کنید
- رمز FCM را برای یک دستگاه آزمایشی وارد کنید و نوع آزمایشی را برای ارسال به آن دستگاه آزمایشی انتخاب کنید.
- برنامه را اجرا کنید و تأیید کنید که نوع انتخاب شده در دستگاه آزمایشی دریافت می شود.
آزمایش خود را مدیریت کنید
چه با Remote Config ، اعلانها یا Firebase In-App Messaging آزمایشی ایجاد کنید، سپس میتوانید آزمایش خود را تأیید کرده و شروع کنید، آزمایش خود را در حین اجرا نظارت کنید و تعداد کاربرانی را که در آزمایش در حال اجرا گنجانده شدهاند افزایش دهید.
وقتی آزمایش شما انجام شد، میتوانید تنظیمات مورد استفاده توسط نوع برنده را یادداشت کنید و سپس آن تنظیمات را برای همه کاربران ارائه دهید. یا می توانید آزمایش دیگری را اجرا کنید.
آزمایشی را شروع کنید
- در بخش Engage از منوی پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی پیش نویس کلیک کنید و سپس روی عنوان آزمایش خود کلیک کنید.
- برای تأیید اینکه برنامه شما دارای کاربرانی است که در آزمایش شما گنجانده میشوند، جزئیات پیشنویس را گسترش دهید و عددی بیشتر از 0 درصد را در بخش هدفگیری و توزیع بررسی کنید (به عنوان مثال، 1 درصد از کاربران با معیارها مطابقت دارند ).
- برای تغییر آزمایش خود، روی ویرایش کلیک کنید.
- برای شروع آزمایش، روی شروع آزمایش کلیک کنید. شما می توانید تا 24 آزمایش را در هر پروژه در یک زمان اجرا کنید.
نظارت بر یک آزمایش
وقتی آزمایشی برای مدتی اجرا شد، میتوانید پیشرفت آن را بررسی کنید و ببینید نتایج شما برای کاربرانی که تاکنون در آزمایش شما شرکت کردهاند چگونه است.
- در بخش Engage از منوی پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
روی Running کلیک کنید و سپس روی عنوان آزمایش خود کلیک کنید یا آن را جستجو کنید. در این صفحه میتوانید آمارهای مشاهدهشده و مدلسازیشدهای در مورد آزمایش در حال اجرا خود مشاهده کنید، از جمله موارد زیر:
- درصد تفاوت با خط مبنا : معیاری برای بهبود یک متریک برای یک نوع معین در مقایسه با خط پایه. با مقایسه محدوده مقدار برای متغیر با محدوده ارزش برای خط مبنا محاسبه می شود.
- احتمال شکست خط پایه : احتمال تخمین زده شده که یک نوع معین از خط مبنا برای متریک انتخاب شده عبور کند.
- observed_metric برای هر کاربر : بر اساس نتایج آزمایش، این محدوده پیشبینیشدهای است که مقدار متریک در طول زمان در آن قرار میگیرد.
- مجموع observed_metric : مقدار تجمعی مشاهده شده برای خط مبنا یا متغیر. این مقدار برای اندازهگیری عملکرد هر یک از انواع آزمایش استفاده میشود و برای محاسبه بهبود ، محدوده ارزش ، احتمال شکست خط پایه و احتمال بهترین نوع استفاده میشود. بسته به معیاری که اندازهگیری میشود، این ستون ممکن است دارای برچسب «مدت هر کاربر»، «درآمد به ازای هر کاربر»، «نرخ حفظ» یا «نرخ تبدیل» باشد.
پس از اینکه آزمایش شما برای مدتی اجرا شد (حداقل ۷ روز برای FCM و In-App Messaging یا ۱۴ روز برای Remote Config )، دادههای این صفحه نشان میدهد که کدام نوع، در صورت وجود، «رهبر» است. برخی از اندازهگیریها با نمودار میلهای همراه هستند که دادهها را در قالب تصویری ارائه میکند.
آزمایشی را برای همه کاربران اجرا کنید
پس از اینکه یک آزمایش به اندازه کافی طولانی شد که یک "رهبر" یا نوع برنده برای معیار هدف خود داشته باشید، می توانید آزمایش را برای 100٪ از کاربران منتشر کنید. این به شما امکان می دهد یک نوع را برای انتشار برای همه کاربران در حال حرکت انتخاب کنید. حتی اگر آزمایش شما برنده مشخصی ایجاد نکرده باشد، همچنان می توانید انتخاب کنید که یک نسخه برای همه کاربران خود منتشر کنید.
- در بخش Engage از منوی پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی Completed یا Running کلیک کنید، آزمایشی را که میخواهید برای همه کاربران منتشر کنید، روی منوی زمینه ( ) Roll out variant کلیک کنید.
با انجام یکی از موارد زیر، آزمایش خود را برای همه کاربران عرضه کنید:
- برای آزمایشی که از سازنده اعلانها استفاده میکند، از گفتگوی ارسال پیام استفاده کنید تا پیام را به سایر کاربران هدفمندی که بخشی از آزمایش نبودند ارسال کنید.
- برای آزمایش Remote Config ، یک متغیر را انتخاب کنید تا مشخص شود کدام مقادیر پارامتر Remote Config باید بهروزرسانی شود. معیارهای هدفیابی که هنگام ایجاد آزمایش تعریف شدهاند، بهعنوان یک شرط جدید در الگوی شما اضافه میشوند تا اطمینان حاصل شود که عرضه فقط بر کاربران هدف آزمایش تأثیر میگذارد. پس از کلیک بر روی Review in Remote Config برای بررسی تغییرات، روی انتشار تغییرات کلیک کنید تا عرضه کامل شود.
- برای آزمایش In-App Messaging ، از کادر گفتگو برای تعیین اینکه کدام نوع باید بهعنوان یک کمپین In-App Messaging مستقل عرضه شود، استفاده کنید. پس از انتخاب، به صفحه نوشتن FIAM هدایت می شوید تا قبل از انتشار هرگونه تغییری (در صورت لزوم) ایجاد کنید.
یک آزمایش را گسترش دهید
اگر متوجه شدید که آزمایشی کاربران کافی برای A/B Testing برای اعلام یک رهبر وارد نمیکند، میتوانید توزیع آزمایش خود را افزایش دهید تا به درصد بیشتری از پایگاه کاربر برنامه برسید.
- در بخش Engage از منوی پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
- آزمایش در حال اجرا را که می خواهید ویرایش کنید انتخاب کنید.
- در نمای کلی آزمایش ، روی منوی زمینه ( ) و سپس ویرایش آزمایش در حال اجرا را کلیک کنید.
- گفتگوی Targeting گزینه ای را برای افزایش درصد کاربرانی که در آزمایش در حال اجرا هستند نمایش می دهد. عددی بزرگتر از درصد فعلی را انتخاب کنید و روی انتشار کلیک کنید. آزمایش به درصد کاربرانی که مشخص کردهاید منتقل میشود.
یک آزمایش را کپی یا متوقف کنید
- در بخش Engage از منوی پیمایش کنسول Firebase ، روی A/B Testing کلیک کنید.
- روی Completed یا Running کلیک کنید، نشانگر را روی آزمایش خود نگه دارید، روی منوی زمینه ( ) کلیک کنید و سپس روی آزمایش تکراری یا توقف آزمایش کلیک کنید.
هدف گذاری کاربر
میتوانید با استفاده از معیارهای هدفیابی کاربر زیر، کاربرانی را هدف قرار دهید تا در آزمایش خود بگنجانند.
معیار هدف گذاری | اپراتور(های) | ارزش(های) | توجه داشته باشید |
---|---|---|---|
نسخه | حاوی، شامل نمی شود، دقیقا مطابقت دارد، حاوی regex است | مقداری را برای یک یا چند نسخه برنامه که میخواهید در آزمایش وارد کنید، وارد کنید. | هنگام استفاده از هر یک از عملگرهای حاوی ، حاوی ، یا دقیقاً مطابقت دارد ، میتوانید فهرستی از مقادیر جدا شده با کاما ارائه دهید. هنگام استفاده از عملگر contain regex ، می توانید عبارات منظم در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید. |
مخاطبان کاربر | شامل همه، شامل حداقل یکی از شامل همه نمی شود، حداقل یکی از آنها را شامل نمی شود | برای هدف قرار دادن کاربرانی که ممکن است در آزمایش شما گنجانده شوند، یک یا چند مخاطب Analytics را انتخاب کنید. | برخی از آزمایشهایی که مخاطبان Google Analytics را هدف قرار میدهند ممکن است چند روز طول بکشد تا دادهها را جمعآوری کنند زیرا در معرض تأخیر پردازش دادههای Analytics هستند. به احتمال زیاد با این تاخیر در کاربران جدیدی مواجه خواهید شد که معمولاً 24 تا 48 ساعت پس از ایجاد در بین مخاطبان واجد شرایط ثبت نام میشوند یا برای مخاطبانی که اخیراً ایجاد شدهاند . |
دارایی کاربر | برای متن: حاوی، شامل نمی شود، دقیقا مطابقت دارد حاوی regex است برای اعداد: <، ≤، =، ≥، > | ویژگی کاربر Analytics برای انتخاب کاربرانی که ممکن است در یک آزمایش گنجانده شوند، با طیف وسیعی از گزینهها برای انتخاب مقادیر ویژگی کاربر استفاده میشود. در کلاینت، می توانید فقط مقادیر رشته ای را برای ویژگی های کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده می کنند، سرویس Remote Config مقدار ویژگی کاربر مربوطه را به یک عدد صحیح/فلوت تبدیل می کند. | هنگام استفاده از عملگر contain regex ، می توانید عبارات منظم در قالب RE2 ایجاد کنید. عبارت منظم شما می تواند با تمام یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت با شروع، پایان یا کل یک رشته هدف استفاده کنید. |
کشور/منطقه | N/A | یک یا چند کشور یا منطقه برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده می شود. | |
زبان ها | N/A | یک یا چند زبان و منطقه برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده می شود. | |
ابتدا باز کنید | بیش از کمتر از بین | کاربران را بر اساس اولین باری که برنامه شما را باز کردند، که در چند روز مشخص شده است، هدف قرار دهید. | |
آخرین تعامل با برنامه | بیش از کمتر از بین | کاربران را بر اساس آخرین باری که با برنامه شما درگیر شدهاند، که در چند روز مشخص شده است، هدف قرار دهید. |
معیارهای A/B Testing
هنگامی که آزمایش خود را ایجاد می کنید، معیار اصلی یا هدف را انتخاب می کنید که برای تعیین نوع برنده استفاده می شود. همچنین باید معیارهای دیگر را ردیابی کنید تا به شما در درک بهتر عملکرد هر نوع آزمایش کمک کند و روندهای مهمی را که ممکن است برای هر گونه متفاوت باشد، مانند حفظ کاربر، پایداری برنامه و درآمد خرید درونبرنامه ردیابی کنید. می توانید حداکثر پنج معیار غیر هدف را در آزمایش خود ردیابی کنید.
به عنوان مثال، فرض کنید خریدهای درونبرنامهای جدیدی را به برنامه خود اضافه کردهاید و میخواهید اثربخشی دو پیام متفاوت «تارنج» را با هم مقایسه کنید. در این مورد، ممکن است تصمیم بگیرید درآمد خرید را به عنوان معیار هدف خود تنظیم کنید زیرا میخواهید نوع برنده اعلانی باشد که منجر به بالاترین درآمد خرید درون برنامهای شده است. و از آنجایی که شما همچنین میخواهید ردیابی کنید کدام نوع منجر به تبدیلهای بیشتر در آینده و کاربران باقی مانده شده است، میتوانید موارد زیر را در سایر معیارها برای ردیابی اضافه کنید:- کل درآمد تخمینی برای مشاهده اینکه ترکیب خرید درونبرنامه و درآمد تبلیغاتی شما چه تفاوتی بین این دو نوع دارد
- حفظ (1 روز) ، حفظ (2-3 روز) ، حفظ (4-7 روز) برای پیگیری حفظ روزانه/هفتگی کاربر
جداول زیر جزئیاتی در مورد نحوه محاسبه معیارهای هدف و سایر معیارها ارائه می دهد.
معیارهای هدف
متریک | توضیحات |
---|---|
کاربران بدون خرابی | درصد کاربرانی که در طول آزمایش با خطاهایی در برنامه شما مواجه نشدهاند که توسط Firebase Crashlytics SDK شناسایی شده است. |
درآمد تخمینی تبلیغات | درآمد تخمینی تبلیغات |
کل درآمد تخمینی | ارزش ترکیبی برای خرید و درآمد تخمینی تبلیغات. |
درآمد خرید | ارزش ترکیبی برای همه رویدادهای purchase و in_app_purchase . |
نگهداری (1 روز) | تعداد کاربرانی که به صورت روزانه به برنامه شما باز می گردند. |
نگهداری (2-3 روز) | تعداد کاربرانی که ظرف 2 تا 3 روز به برنامه شما بازگشته اند. |
نگهداری (4-7 روز) | تعداد کاربرانی که ظرف 4 تا 7 روز به برنامه شما بازگشته اند. |
نگهداری (8-14 روز) | تعداد کاربرانی که ظرف 8 تا 14 روز به برنامه شما بازگشته اند. |
نگهداری (بیش از 15 روز) | تعداد کاربرانی که 15 روز یا بیشتر پس از آخرین استفاده از برنامه شما به آن بازگشته اند. |
first_open | یک رویداد Analytics که وقتی کاربر برای اولین بار یک برنامه را پس از نصب یا نصب مجدد آن باز می کند، فعال می شود. به عنوان بخشی از یک قیف تبدیل استفاده می شود. |
سایر معیارها
متریک | توضیحات |
---|---|
notification_dismiss | یک رویداد Analytics که وقتی اعلان ارسال شده توسط سازنده Notifications رد میشود (فقط Android) فعال میشود. |
notification_receive | یک رویداد Analytics که هنگام دریافت اعلان ارسال شده توسط Notifications Composer در حالی که برنامه در پسزمینه است (فقط اندروید) شروع میشود. |
os_update | یک رویداد Analytics که زمان بهروزرسانی سیستم عامل دستگاه به نسخه جدید را ردیابی میکند. برای اطلاعات بیشتر، رویدادهای جمعآوری شده خودکار را ببینید. |
screen_view | یک رویداد Analytics که صفحههای مشاهده شده در برنامه شما را ردیابی میکند. برای کسب اطلاعات بیشتر، ردیابی نماهای صفحه را ببینید. |
جلسه_شروع | یک رویداد 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 در کنسول Firebase فعال کنید
- با استفاده از BigQuery به داده های A/B Testing دسترسی پیدا کنید
- پرس و جوهای نمونه را کاوش کنید
صادرات BigQuery برای Google Analytics در کنسول Firebase فعال کنید
اگر از طرح Spark استفاده میکنید، میتوانید از جعبه ایمنی BigQuery برای دسترسی به BigQuery بدون هزینه، مشروط به محدودیتهای Sandbox استفاده کنید. برای اطلاعات بیشتر به قیمت و جعبه ایمنی BigQuery مراجعه کنید.
ابتدا مطمئن شوید که داده های Analytics خود را به BigQuery صادر می کنید:
- برگه Integrations را باز کنید، که می توانید با استفاده > تنظیمات پروژه در کنسول Firebase به آن دسترسی داشته باشید.
- اگر قبلاً از BigQuery با سایر سرویسهای Firebase استفاده میکنید، روی Manage کلیک کنید. در غیر این صورت، روی پیوند کلیک کنید.
- درباره پیوند Firebase به BigQuery را مرور کنید، سپس روی Next کلیک کنید.
- در قسمت Configure integration ، ضامن Google Analytics فعال کنید.
یک منطقه را انتخاب کنید و تنظیمات صادرات را انتخاب کنید.
روی پیوند به BigQuery کلیک کنید.
بسته به نحوه صادرات دادهها، ممکن است تا یک روز طول بکشد تا جداول در دسترس قرار گیرند. برای اطلاعات بیشتر درباره صادرات داده های پروژه به BigQuery ، به صادرات داده های پروژه به BigQuery مراجعه کنید.
دسترسی به داده های A/B Testing در 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
.
پس از جمعآوری اطلاعات، برای ایجاد درخواست خود نیاز دارید:
- BigQuery در کنسول Google Cloud باز کنید.
- پروژه خود را انتخاب کنید، سپس Create SQL query را انتخاب کنید.
- درخواست خود را اضافه کنید برای مثال پرس و جوهایی که باید اجرا شوند، به کاوش پرس و جوهای نمونه مراجعه کنید.
- روی Run کلیک کنید.
دادههای آزمایش را با استفاده از عبارت جستجوی خودکار ایجاد شده در کنسول Firebase جستجو کنید
اگر از طرح Blaze استفاده میکنید، صفحه نمای کلی آزمایش نمونهای را ارائه میکند که نام آزمایش، انواع، نامهای رویداد و تعداد رویدادهای آزمایشی را که در حال مشاهده آن هستید، برمیگرداند.
برای به دست آوردن و اجرای پرس و جو تولید شده خودکار:
- از کنسول Firebase ، A/B Testing باز کنید و آزمایش A/B Testing را که میخواهید پرس و جو کنید، انتخاب کنید تا نمای کلی آزمایش باز شود.
- از منوی گزینهها، در زیر ادغام BigQuery ، دادههای آزمایش Query را انتخاب کنید. با این کار پروژه شما در 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 استفاده کنید. بیانیه 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