وقتی با کاربران خود تماس میگیرید یا پویش بازاریابی جدیدی را شروع میکنید، میخواهید مطمئن شوید که این کار را بهدرستی انجام میدهید. آزمون آ/ب میتواند به شما کمک کند تا با آزمایش کردن انواع پیام در بخشهای انتخابشده از پایگاه کاربرانتان، بهینهترین عبارتبندی و ارائه را پیدا کنید. چه هدف شما حفظ بهتر باشد یا تبدیل در یک پیشنهاد، آزمایش A/B میتواند تحلیل آماری انجام دهد تا تعیین کند آیا یک نسخه پیام از خط پایه برای هدف انتخابی شما بهتر عمل میکند یا نه.
برای آزمایش A/B گونههای ویژگی با خط مبنا، کارهای زیر را انجام دهید:
- آزمایشتان را ایجاد کنید.
- آزمایشتان را در دستگاه آزمایشی اعتبارسنجی کنید.
- آزمایشتان را مدیریت کنید.
ایجاد آزمایش
آزمایشی که از «سازنده اعلانها» استفاده میکند به شما امکان میدهد چندین گونه را در یک پیام اعلان ارزیابی کنید.
مطمئن شوید Google Analytics در پروژهتان فعال باشد تا آزمایش به دادههای Analytics دسترسی داشته باشد.
اگر هنگام ایجاد پروژهتان Google Analytics را فعال نکردهاید، میتوانید آن را در برگه
تنظیمات > ادغامها کنسول Firebase فعال کنید.در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
روی ایجاد آزمایش کلیک کنید، سپس وقتی از شما خواسته شد سرویسی را که میخواهید با آن آزمایش کنید انتخاب کنید، اعلانها را انتخاب کنید.
نام و شرح اختیاری برای آزمایشتان وارد کنید و روی بعدی کلیک کنید.
فیلدهای هدفیابی را تکمیل کنید، ابتدا برنامهای را که از آزمایش شما استفاده میکند انتخاب کنید. همچنین میتوانید با انتخاب گزینههایی که شامل موارد زیر است، زیرمجموعهای از کاربران را برای شرکت در آزمایشتان هدفیابی کنید:
- نسخه: یک یا چند نسخه از برنامهتان
- مخاطبان کاربر: Analytics مخاطب استفادهشده برای هدفیابی کاربرانی که ممکن است در آزمایش گنجانده شوند
- مشخصه کاربر: یک یا چند Analytics مشخصه کاربر برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
- کشور/ منطقه: یک یا چند کشور یا منطقه برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند
- زبان دستگاه: یک یا چند زبان و منطقه زبانی که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده میشود
- اولین باز کردن: کاربران را براساس اولین باری که برنامهتان را باز کردهاند هدف قرار دهید
- آخرین تعامل با برنامه: کاربران را براساس آخرین باری که با برنامهتان تعامل داشتهاند هدف قرار دهید
درصد کاربران هدف را تنظیم کنید: درصدی از پایگاه کاربر برنامهتان را که با معیارهای تنظیمشده در کاربران هدف مطابقت دارد انتخاب کنید. این درصد بهطور مساوی بین خط مبنا و یک یا چند متغیر در آزمایشتان تقسیم میشود. این درصد میتواند هر مقداری بین ۰٫۰۱٪ و ۱۰۰٪ باشد. درصدها بهطور تصادفی برای هر آزمایش به کاربران اختصاص داده میشود، ازجمله آزمایشهای تکراری.
در بخش انواع، پیامی را برای ارسال به گروه پایه در فیلد نوشتار پیام را وارد کنید تایپ کنید. برای اینکه پیامی به گروه مبنا ارسال نشود، این فیلد را خالی بگذارید.
(اختیاری) برای افزودن بیشاز یک متغیر به آزمایشتان، روی افزودن متغیر کلیک کنید. بهطور پیشفرض، آزمایشها یک خط پایه و یک متغیر دارند.
(اختیاری) نامی برای هر متغیر در آزمایشتان وارد کنید تا جایگزین نامهای متغیر A، متغیر B، و غیره شود.
سنجه هدفی برای آزمایشتان تعریف کنید تا هنگام ارزیابی متغیرهای آزمایش بههمراه هر سنجه اضافی دلخواه از فهرست کرکرهای استفاده شود. این سنجهها شامل اهداف داخلی (تعامل، خرید، درآمد، حفظ، و غیره)، Analytics رویداد تبدیل، و Analytics رویداد دیگر است.
گزینههای پیامتان را انتخاب کنید:
- تاریخ تحویل: یا اکنون ارسال شود را انتخاب کنید تا آزمایشتان بلافاصله پساز ذخیره کردن راهاندازی شود، یا زمانبندیشده را انتخاب کنید تا زمانی را برای راهاندازی آزمایشتان در آینده مشخص کنید.
- گزینههای پیشرفته: برای انتخاب گزینههای پیشرفته برای همه اعلانهای موجود در آزمایشتان، گزینههای پیشرفته را ازهم باز کنید و سپس هرکدام از گزینههای فهرستشده پیام را تغییر دهید.
برای ذخیره کردن آزمایش، روی مرور کلیک کنید.
شما مجاز به داشتن حداکثر ۳۰۰ آزمایش در هر پروژه (شامل عرضه) هستید، که میتواند شامل حداکثر ۲۴ آزمایش و عرضه درحال اجرا باشد، و بقیه بهعنوان آزمایشهای تکمیلشده درنظر گرفته میشوند.
آزمایشتان را در دستگاه آزمایشی اعتبارسنجی کنید
برای هر نصب Firebase میتوانید FCM کد ثبت مرتبط با آن را بازیابی کنید. میتوانید از این کد برای آزمایش انواع آزمایش خاص در دستگاه آزمایشی که برنامهتان در آن نصب شده است استفاده کنید. برای اعتبارسنجی آزمایشتان در دستگاه آزمایشی، کارهای زیر را انجام دهید:
- نماد ثبت FCM را بهصورت زیر دریافت کنید:
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; // display message NSLog(@"%@", message); } }];
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()); } });
Unity
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، به DevOps و تعامل > آزمایش A/B بروید.
- روی پیشنویس کلیک کنید، روی آزمایشتان نگه دارید، روی منوِ بافت (more_vert) کلیک کنید، و سپس روی مدیریت دستگاههای آزمایشی کلیک کنید
- FCM کد را برای دستگاه آزمایشی وارد کنید و متغیر آزمایش را برای ارسال به آن دستگاه آزمایشی انتخاب کنید.
- برنامه را اجرا کنید و مطمئن شوید که متغیر انتخابشده در دستگاه آزمایشی دریافت میشود.
مدیریت آزمایش
چه آزمایشی را با Remote Config، «سازنده اعلانها»، یا Firebase In-App Messaging ایجاد کنید، میتوانید آزمایشتان را اعتبارسنجی و شروع کنید، آزمایشتان را درحین اجرا پایش کنید، و تعداد کاربران موجود در آزمایش درحال اجرا را افزایش دهید.
وقتی آزمایشتان تمام شد، میتوانید تنظیمات استفادهشده توسط گونه برنده را یادداشت کنید و سپس آن تنظیمات را برای همه کاربران عرضه کنید. یا میتوانید آزمایش دیگری اجرا کنید.
شروع آزمایش
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
- روی پیشنویس کلیک کنید، سپس روی عنوان آزمایشتان کلیک کنید.
- برای تأیید اینکه برنامهتان کاربرانی دارد که در آزمایشتان گنجانده میشوند، جزئیات پیشنویس را ازهم باز کنید و ببینید آیا عددی بزرگتر از ۰٪ در بخش هدفیابی و توزیع وجود دارد (برای مثال، ۱٪ از کاربران با معیارها مطابقت دارند).
- برای تغییر آزمایش، روی ویرایش کلیک کنید.
- برای شروع آزمایش، روی شروع آزمایش کلیک کنید. میتوانید حداکثر ۲۴ آزمایش برای هر پروژه بهطور همزمان اجرا کنید.
پایش آزمایش
وقتی آزمایشی برای مدتی اجرا شد، میتوانید پیشرفت آن را بررسی کنید و ببینید نتایج شما برای کاربرانی که تاکنون در آزمایشتان شرکت کردهاند چگونه است.
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
روی درحال اجرا کلیک کنید، سپس روی عنوان آزمایشتان کلیک کنید یا آن را جستجو کنید. در این صفحه، میتوانید آمار مشاهدهشده و مدلسازیشده مختلفی را درباره آزمایش درحال اجرای خود مشاهده کنید، ازجمله:
- ٪ تفاوت از مقدار پایه: معیاری برای بهبود سنجه برای متغیری معین در مقایسه با مقدار پایه. با مقایسه کردن محدوده مقدار برای متغیر با محدوده مقدار برای خط مبنا محاسبه میشود.
- احتمال زدن خط مبنا: احتمال تخمینی اینکه یک متغیر معین خط مبنا را برای سنجه انتخابشده بزند.
- observed_metric بهازای هر کاربر: براساس نتایج آزمایش، این محدوده پیشبینیشدهای است که مقدار سنجه درطول زمان در آن قرار خواهد گرفت.
- مجموع observed_metric: مقدار تجمعی مشاهدهشده برای خط مبنا یا متغیر. این مقدار برای اندازهگیری میزان عملکرد هریک از گونههای آزمایش استفاده میشود و برای محاسبه بهبود، محدوده مقدار، احتمال زدن خط مبنا، و احتمال بهترین گونه بودن استفاده میشود. بسته به سنجهای که اندازهگیری میشود، این ستون ممکن است با برچسب «مدت برای هر کاربر»، «درآمد برای هر کاربر»، «نرخ حفظ»، یا «نرخ تبدیل» نشان داده شود.
پساز اینکه آزمایشتان مدتی اجرا شد (حداقل ۷ روز برای FCM و In-App Messaging یا ۱۴ روز برای Remote Config)، دادههای این صفحه نشان میدهد کدام متغیر، درصورت وجود، «پیشتاز» است. برخیاز اندازهگیریها با نمودار میلهای همراه است که دادهها را در قالب تصویری ارائه میدهد.
عرضه کردن آزمایش برای همه کاربران
پساز اینکه آزمایش بهاندازه کافی اجرا شد و «پیشتاز» یا متغیر برنده را برای سنجه هدفتان بهدست آوردید، میتوانید آزمایش را برای ۱۰۰٪ کاربران منتشر کنید. این کار به شما امکان میدهد متغیری را برای انتشار برای همه کاربران در آینده انتخاب کنید. حتی اگر آزمایشتان برنده مشخصی نداشته باشد، همچنان میتوانید انتخاب کنید که گونهای را برای همه کاربرانتان منتشر کنید.
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
- روی تکمیلشده یا درحال اجرا کلیک کنید، روی آزمایشی که میخواهید برای همه کاربران عرضه شود کلیک کنید، روی منوِ زمینهای () عرضه کردن متغیر کلیک کنید.
با انجام یکی از کارهای زیر، آزمایشتان را برای همه کاربران عرضه کنید:
- برای آزمایشی که از سازنده اعلانها استفاده میکند، از کادر گفتگوی عرضه پیام برای ارسال پیام به کاربران هدف باقیمانده که بخشی از آزمایش نبودند استفاده کنید.
- برای آزمایش Remote Config، متغیری را انتخاب کنید تا مشخص شود کدام مقادیر پارامتر Remote Config بهروز شود. معیارهای هدفیابی تعریفشده هنگام ایجاد آزمایش بهعنوان شرط جدیدی در الگو اضافه میشود تا اطمینان حاصل شود که عرضه فقط بر کاربرانی که هدف آزمایش هستند تأثیر میگذارد. پساز کلیک کردن روی مرور در پیکربندی از راه دور برای مرور تغییرات، روی انتشار تغییرات کلیک کنید تا عرضه تکمیل شود.
- برای آزمایش In-App Messaging، از کادر گفتگو برای تعیین اینکه کدام گونه باید بهعنوان پویش مستقل In-App Messaging عرضه شود استفاده کنید. پساز انتخاب، به صفحه نوشتن FIAM هدایت میشوید تا قبلاز انتشار، هرگونه تغییری را که لازم است اعمال کنید.
ازهم باز کردن آزمایش
اگر متوجه شدید که آزمایشی کاربران کافی برای A/B Testing جذب نمیکند تا بتواند پیشرو را اعلام کند، میتوانید توزیع آزمایشتان را افزایش دهید تا به درصد بیشتری از پایگاه کاربر برنامه دسترسی پیدا کنید.
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
- آزمایش درحال اجرا را که میخواهید ویرایش کنید انتخاب کنید.
- در نمای کلی آزمایش، روی منوِ بافت () کلیک کنید، و سپس روی ویرایش آزمایش درحال اجرا کلیک کنید.
- کادر گفتگوی هدفیابی گزینهای را برای افزایش درصد کاربرانی که در آزمایش درحال اجرا هستند نمایش میدهد. عددی بزرگتر از درصد فعلی انتخاب کنید و روی انتشار کلیک کنید. آزمایش به درصدی از کاربران که مشخص کردهاید ارسال خواهد شد.
تکرار یا متوقف کردن آزمایش
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
- روی تکمیلشده یا درحال اجرا کلیک کنید، نشانگر را روی آزمایشتان نگه دارید، روی منوِ بافت () کلیک کنید، و سپس روی تکرار آزمایش یا توقف آزمایش کلیک کنید.
هدفیابی کاربر
میتوانید کاربران را هدف قرار دهید تا بااستفاده از معیارهای هدفیابی کاربر زیر، در آزمایشتان گنجانده شوند.
| معیار هدفیابی | اپراتور(ها) | مقدار(ها) | توجه |
|---|---|---|---|
| نسخه | شامل،
شامل نیست، دقیقاً مطابقت دارد، شامل عبارت باقاعده (regex) است |
مقداری برای یک یا چند نسخه برنامه که میخواهید در آزمایش لحاظ شود وارد کنید. |
هنگام استفاده از هریک از عملگرهای شامل، شامل نمیشود، یا دقیقاً مطابقت دارد، میتوانید فهرستی از مقادیر جداشده با کاما ارائه دهید. هنگام استفاده از عملگر شامل عبارت باقاعده، میتوانید عبارتهای باقاعده را در قالب RE2 ایجاد کنید. عبارت باقاعده شما میتواند با همه یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت دادن ابتدا، انتها، یا کل رشته هدف استفاده کنید. |
| مخاطب(های) کاربر | شامل همه موارد،
شامل حداقل یکی از موارد، شامل همه موارد نیست، شامل حداقل یکی از موارد نیست |
یک یا چند مخاطب Analytics را برای هدفیابی کاربرانی که ممکن است در آزمایشتان گنجانده شوند انتخاب کنید. | برخیاز آزمایشهایی که مخاطبان Google Analytics را هدف قرار میدهند ممکن است به چند روز زمان برای جمعآوری داده نیاز داشته باشند چون مشمول تأخیر پردازش داده Analytics هستند. بهاحتمال زیاد با این تأخیر برای کاربران جدید مواجه میشوید که معمولاً ۲۴ تا ۴۸ ساعت پساز ایجاد در مخاطبان واجدشرایط ثبتنام میشوند، یا برای مخاطبان اخیراً ایجادشده. |
| مشخصه کاربر | برای نوشتار:
دربردارنده، دربرندارنده، دقیقاً منطبق با، دربردارنده عبارت باقاعده (regex) برای اعداد: <، ≤، =، ≥، > |
از مشخصه کاربر Analytics برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده میشود، با طیفی از گزینهها برای انتخاب مقادیر مشخصه کاربر.
در کلاینت، فقط میتوانید مقادیر رشتهای را برای مشخصههای کاربر تنظیم کنید. برای شرایطی که از عملگرهای عددی استفاده میکنند، سرویس Remote Config مقدار مشخصه کاربر مربوطه را به عدد صحیح/اعشاری تبدیل میکند. |
هنگام استفاده از عملگر حاوی عبارت باقاعده، میتوانید عبارتهای باقاعده را در قالب RE2 ایجاد کنید. عبارت باقاعده شما میتواند با همه یا بخشی از رشته نسخه هدف مطابقت داشته باشد. همچنین میتوانید از لنگرهای ^ و $ برای مطابقت دادن ابتدا، انتها، یا کل رشته هدف استفاده کنید. |
| کشور/منطقه | نامربوط | یک یا چند کشور یا منطقه که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده میشود. | |
| زبانها | نامربوط | یک یا چند زبان و منطقه زبانی که برای انتخاب کاربرانی که ممکن است در آزمایش گنجانده شوند استفاده میشود. | |
| نخستین باز کردن |
بیشتر از
کمتر از بین |
کاربران را براساس اولین باری که برنامهتان را باز کردهاند (به روز) هدفیابی کنید. | |
| آخرین تعامل برنامه |
بیشتر از
کمتر از بین |
کاربران را براساس آخرین باری که با برنامهتان تعامل داشتهاند (به روز) هدفیابی کنید. |
سنجههای A/B Testing
وقتی آزمایشتان را ایجاد میکنید، سنجه اصلی یا هدف را انتخاب میکنید که برای تعیین نوع برنده استفاده میشود. همچنین باید سنجههای دیگر را ردیابی کنید تا به شما کمک کند عملکرد هر متغیر آزمایش را بهتر درک کنید و روندهای مهمی را که ممکن است برای هر متغیر متفاوت باشد ردیابی کنید، مانند حفظ کاربر، پایداری برنامه، و درآمد خرید درونبرنامه. میتوانید تا پنج سنجه غیرهدف را در آزمایشتان پیگیری کنید.
برای مثال، فرض کنید خریدهای درونبرنامهای جدیدی به برنامهتان اضافه کردهاید و میخواهید اثربخشی دو پیام «تلنگر» متفاوت را مقایسه کنید. در این مورد، ممکن است تصمیم بگیرید درآمد خرید را بهعنوان سنجه هدف خود انتخاب کنید زیرا میخواهید گونه برنده نشاندهنده اعلانی باشد که منجر به بالاترین درآمد خرید درونبرنامهای شده است. و چون میخواهید ردیابی کنید که کدام نوع منجر به تبدیلهای بیشتر در آینده و حفظ کاربران شده است، میتوانید موارد زیر را در سنجشهای دیگر برای ردیابی اضافه کنید:
- کل درآمد تخمینی برای دیدن اینکه درآمد ترکیبی آگهی و خرید درونبرنامهای شما چه تفاوتی بین دو نوع دارد.
- حفظ کاربر (۱ روز)، حفظ کاربر (۲ تا ۳ روز)، حفظ کاربر (۴ تا ۷ روز) برای ردیابی حفظ کاربر روزانه یا هفتگی.
جدولهای زیر جزئیات مربوط به نحوه محاسبه سنجههای هدف و سنجههای دیگر را ارائه میدهند.
سنجههای هدف
| سنجه | شرح |
|---|---|
| کاربران بدون تجربه خرابی | درصد کاربرانی که درطول آزمایش با خطاهایی در برنامهتان که توسط کیت توسعه نرمافزار Firebase Crashlytics شناسایی شدهاند مواجه نشدهاند.
توجه: Firebase Crashlytics برای برنامههای وب پشتیبانی نمیشود. |
| درآمد تخمینی آگهی | درآمد تخمینی آگهی. |
| درآمد کل تخمینی | مقدار ترکیبی برای خرید و درآمد آگهی تخمینی. |
| درآمد خرید | مقدار ترکیبی برای همه رویدادهای purchase و
in_app_purchase.
|
| نگهداری (۱ روز) | تعداد کاربرانی که بهطور روزانه به برنامهتان برمیگردند. |
| نگهداری (۲ تا ۳ روز) | تعداد کاربرانی که ظرف ۲ تا ۳ روز به برنامهتان برمیگردند. |
| نگهداری (۴ تا ۷ روز) | تعداد کاربرانی که ظرف ۴ تا ۷ روز به برنامهتان برمیگردند. |
| نگهداری (۸ تا ۱۴ روز) | تعداد کاربرانی که ظرف ۸ تا ۱۴ روز به برنامهتان برمیگردند. |
| نگهداری (بیشاز ۱۵ روز) | تعداد کاربرانی که ۱۵ روز یا بیشتر پساز آخرین استفاده از برنامهتان به آن برمیگردند. |
| first_open | رویداد Analytics که وقتی کاربر برای اولینبار پساز نصب یا بازنصب برنامه آن را باز میکند، راهاندازی میشود. بهعنوان بخشی از قیف تبدیل استفاده میشود. |
سنجههای دیگر
| سنجه | شرح |
|---|---|
| notification_dismiss | رویداد Analytics که وقتی اعلانی که توسط «سازنده اعلانها» ارسال شده است بسته میشود، راهاندازی میشود (فقط Android). |
| notification_receive | رویداد Analytics که وقتی اعلانی که توسط «سازنده اعلانها» ارسال شده است درحالیکه برنامه در پسزمینه است دریافت میشود، راهاندازی میشود (فقط Android). |
| os_update | رویداد Analytics که زمان بهروزرسانی سیستمعامل دستگاه به نسخه جدید را ردیابی میکند.برای کسب اطلاعات بیشتر، رویدادهای خودکار ثبتشده را ببینید.
این سنجه برای برنامههای وب پشتیبانی نمیشود. |
| screen_view | رویداد Analytics که صفحههای مشاهدهشده در برنامهتان را ردیابی میکند. برای کسب اطلاعات بیشتر، به ردیابی بازدیدهای صفحه مراجعه کنید. |
| session_start | رویداد 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
- دسترسی به دادههای A/B Testing بااستفاده از BigQuery
- کاوش پرسمانهای نمونه
صادر کردن BigQuery را برای Google Analytics در کنسول Firebase فعال کنید
اگر در طرح Spark هستید، میتوانید از جعبه امن BigQuery برای دسترسی به BigQuery بدون هزینه استفاده کنید، مشروط به محدودیتهای جعبه امن. برای اطلاعات بیشتر، قیمتگذاری و محیط آزمایشی BigQuery را ببینید.
ابتدا مطمئن شوید که دادههای Analytics خود را به BigQuery صادر میکنید:
در کنسول Firebase، به
تنظیمات > زبانه «ادغامها» بروید.در کارت BigQuery، روی مدیریت کلیک کنید و تأیید کنید که پروژهتان دادههای Analytics را به BigQuery صادر میکند.
اگر روی کارت پیوند نوشته شده است، باید بیرونبرد را راهاندازی کنید (به مرحله بعدی بروید).
اگر لازم است صادر کردن را راهاندازی کنید:
درباره پیوند دادن Firebase به BigQuery را مرور کنید، سپس روی بعدی کلیک کنید.
در بخش پیکربندی ادغام، 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 پیدا کنید؛ همچنین وقتی نام پروژهتان را برای نمایش نام جدول رویداد Google Analytics (
project_name.analytics_000000000.events) ازهم باز میکنید، در BigQuery نشان داده میشود. - تاریخ آزمایش: برای نوشتن پُرسمان سریعتر و کارآمدتر،
بهتر است پُرسمانهایتان را به Google Analytics بخشهای جدول رویداد روزانه
که حاوی دادههای آزمایشتان است محدود کنید—جدولهایی که با پسوند
YYYYMMDDمشخص شدهاند. بنابراین، اگر آزمایشتان از ۲ فوریه ۲۰۲۶ تا ۲ مه ۲۰۲۶ اجرا شده باشد، باید_TABLE_SUFFIX between '20260202' AND '20260502'را مشخص کنید. برای مثال، انتخاب مقادیر آزمایشی خاص را ببینید. - نامهای رویداد: معمولاً این نامها با
سنجههای هدف
که در آزمایش پیکربندی کردهاید مطابقت دارند. برای مثال،
in_app_purchaseرویداد،ad_impression، یاuser_retentionرویداد.
پساز جمعآوری اطلاعاتی که برای تولید پُرسمان نیاز دارید:
- در کنسول Google Cloud، به BigQuery بروید.
- پروژهتان را انتخاب کنید، سپس ایجاد پُرسمان SQL را انتخاب کنید.
- پُرسمانتان را وارد کنید. برای دیدن نمونه پُرسمانهایی که میتوانید اجرا کنید، کاوش نمونه پُرسمانها را ببینید.
- روی اجرا کلیک کنید.
پُرسمان کردن دادههای آزمایش بااستفاده از پُرسمان تولیدشده بهطور خودکار در کنسول Firebase
اگر از طرح Blaze استفاده میکنید، صفحه نمای کلی آزمایش یک پُرسمان نمونه ارائه میدهد که نام آزمایش، متغیرها، نام رویدادها، و تعداد رویدادهای آزمایشی را که مشاهده میکنید برمیگرداند.
برای دریافت و اجرای پُرسمان خودکار تولیدشده:
- در کنسول Firebase، به DevOps و تعامل > آزمایش A/B بروید.
- آزمایش A/B Testing را که میخواهید پُرسمان کنید انتخاب کنید تا نمای کلی آزمایش باز شود.
- از منو «گزینهها»، در زیر ادغام BigQuery، پرسوجو کردن دادههای آزمایش را انتخاب کنید. با این کار، پروژهتان در 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 '20260202' AND '20260502')
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 یکطرفه استفاده کنید تا تأیید کنید که
نتایجی که 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