1. مقدمه
در این کد لبه، نحوه ایجاد یک آزمایش Remote Config را با استفاده از تست A/B برای نمونه بازی، MechaHamster: Level Up with Firebase edition ، که در Instrument بازی خود را با Firebase Remote Config تغییر دادید، خواهید آموخت.
تست A/B با پیکربندی از راه دور به شما امکان میدهد تغییرات در رابط کاربری، ویژگیها، یا کمپینهای تعامل برنامهتان را قبل از اینکه آنها را در اختیار مخاطبان بیشتری قرار دهید، روی یک مخاطب هدف آزمایش کنید. همچنین می توانید از نتایج آزمایش برای موارد زیر استفاده کنید:
- تعیین کنید کدام متغیرهای مقدار پارامتر معیارهای کلیدی مانند درآمد و حفظ را بهبود میبخشند.
- کشف کنید که کدام زیرگروه از کاربران کدام نوع را ترجیح می دهند.
- دادههای آزمایش را جمعآوری و ذخیره کنید تا تجزیه و تحلیل بیشتری بر روی تأثیرات تنظیم مقادیر پارامترهای مختلف انجام دهید.
این جوهره آزمایش A/B است: به شما امکان میدهد کدهایی را برای پیکربندی از راه دور دریافت کنید و آزمایشهایی را اجرا کنید که مقادیر دریافتی مشتریان را کنترل میکنند، بر اساس شرایط پیکربندی از راه دور (از جمله ویژگیهای کاربر Google Analytics)، درصد عرضه، رویدادهای تبدیل Analytics، و ترکیبی از اینها
ابتدا، شرطی را پیادهسازی میکنید که دروازههایی که در آزمایش گنجانده میشوند با تنظیم ویژگیهای کاربر بر اساس اقدامات کاربر. سپس، یک آزمایش A/B Testing ایجاد میکنید که از ویژگیهای کاربر Google Analytics برای تعیین اینکه کدام کلاینتها در آزمایش گنجانده شدهاند، استفاده میکند. و در نهایت، از این داده ها برای درک بیشتر مخاطبان خود استفاده خواهید کرد.
چیزی که یاد خواهید گرفت
- نحوه تنظیم A/B Testing با استفاده از مقادیر تنظیم از راه دور
- نحوه استفاده از ویژگی های کاربر Google Analytics به عنوان بخشی از شرایط پذیرش در آزمون های A/B
پیش نیازها
- بازی خود را با Firebase Remote Config کامل کنید
آنچه شما نیاز دارید
- Unity 2019.1.0f1 یا بالاتر با پشتیبانی از ساخت iOS و/یا Android
2. فعال کردن منوی Debug
یک منوی Debug در پروژه پنهان است و دکمه دسترسی به این منو در بازی وجود دارد اما در حال حاضر فعال نیست. برای دسترسی به آن از پیش ساخته MainMenu باید دکمه را فعال کنید.
- در ویرایشگر Unity، تب Project را انتخاب کنید، سپس در قسمت Assets ، Hamster > Prefabs > Menu را باز کنید و روی MainMenu کلیک کنید.
- در سلسله مراتب پیش ساخته، شی فرعی غیرفعال شده به نام DebugMenuButton را پیدا کنید و روی آن کلیک کنید تا در تب Inspector باز شود.
- در برگه Inspector ، کادر گوشه سمت چپ بالای کنار فیلد متنی حاوی DebugMenuButton را علامت بزنید تا فعال شود.
- پیش ساخته را ذخیره کنید.
اگر بازی را در ویرایشگر یا در دستگاه خود اجرا می کنید، اکنون باید منو در دسترس باشد.
3. زیر منوی Remote Config را فعال کنید
- از تب Project در Unity Editor، Assets > Hamster > Prefabs > Menu را باز کنید و روی شی DebugMenu دوبار کلیک کنید تا در تب Hierarchy ویرایشگر باز شود.
- در برگه سلسله مراتب ، سلسله مراتب را گسترش دهید و روی شی فرعی در DebugMenu > Panel کلیک کنید، که با برچسب Remote Config Actions است.
- در تب Unity Inspector ، با علامت زدن کادر سمت چپ فیلد متنی حاوی نام شی، Remote Config Actions را فعال کنید.
این دارای دو فرزند GameObject به نامهای Set Bored Of Subtitle و Set Enjoys Subtitle است که هر دو برای فراخوانی روشهای موجود اما اجرا نشده در DebugMenu.cs
پیکربندی شدهاند.
4. لغو زیرنویس را به حالت پیش فرض درون برنامه بازنشانی کنید
در codelab قبلی ، مقدار پیشفرض یک پارامتر را بهعنوان JSON لغو کردید و از شرایط برای ارائه انواع مختلف استفاده کردید. به عنوان بخشی از این کد، شرایطی را که ایجاد کردهاید حذف میکنید و پیشفرض درون برنامهای را مجدداً معرفی میکنید و فقط با نتیجه آزمایش A/B آن را لغو میکنید.
برای فعال کردن مجدد پیشفرض درون برنامه:
- صفحه Remote Config را در کنسول Firebase باز کنید و روی نماد مداد در کنار پارامتر
subtitle_override
کلیک کنید تا پانل کناری ویرایش پارامتر باز شود. - روی نماد X در کنار شرط کلیک کنید تا آن را حذف کنید.
- در کنار مقدار پیشفرض باقیمانده، گزینه Use in-app default را فعال کنید.
- برای ذخیره تغییرات روی ذخیره کلیک کنید، سپس برای انتشار تغییرات روی انتشار تغییرات کلیک کنید.
5. ویژگی های کاربر را در توابع Debug تنظیم کنید
اکنون بدنه های تابع را برای برخی از توابع Google Analytics از پیش پیکربندی شده اما اجرا نشده در DebugMenu.cs
می نویسید (که در Assets > Hamster > Scripts > State یافت می شود).
این توابع ویژگیهای کاربر را تنظیم میکنند که روشهایی برای توصیف بخشهایی از پایگاه کاربر شما هستند و برای ثبت احساس کاربر در مورد زیرنویس بازی استفاده میشوند.
SetUserBoredOfSubtitle
و SetUserEnjoysSubtitle
را با پیدا کردن نسخههای موجود در DebugMenu.cs
و بازنویسی آنها به صورت زیر پیادهسازی کنید:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
اگر برنامه شما به درستی با Google Analytics پیکربندی شده است، می توانید با یکی از این توابع تماس بگیرید تا ویژگی را در شرایط Remote Config در دسترس قرار دهید. برای تماس با SetUserBoredOfSubtitle
از یک دستگاه تلفن همراه، بازی را شروع کنید و دکمه Debug Menu را در منوی اصلی فشار دهید، سپس Set Bored of Subtitle را فشار دهید.
6. یک بعد سفارشی ایجاد کنید
در مرحله بعد، انواع مختلف زیرنویس را برای subtitle_override
تنظیم خواهید کرد تا ببینید کدام زیرنویس بهتر عمل می کند. اما، در تست A/B خود، این گونهها را فقط به کاربرانی ارائه میدهید که احساساتشان در مورد زیرنویس فعلی (همانطور که در subtitle_sentiment
ثبت شده است) شامل کلمه "bored" است.
شما از یک بعد سفارشی برای ایجاد و ردیابی پارامترهای سفارشی در رویدادهای Analytics استفاده خواهید کرد. برای اطلاعات بیشتر به ابعاد و معیارهای سفارشی مراجعه کنید.
برای ایجاد یک بعد سفارشی جدید:
- کنسول Firebase را باز کنید، منوی Analytics را باز کنید و تعاریف سفارشی را انتخاب کنید.
- از صفحه تعاریف سفارشی، روی ایجاد ابعاد سفارشی کلیک کنید.
- در پنجره ابعاد سفارشی جدید ، نام Dimension را روی "Subtitle Sentiment" تنظیم کنید و از منوی کشویی Scope ، User را انتخاب کنید.
- برای قسمت ویژگی User ،
subtitle_sentiment.
7. آزمایش A/B Testing را تنظیم کنید
در مرحله بعد، یک آزمایش A/B Testing ایجاد کنید تا مقادیر مختلفی را برای subtitle_override
تنظیم کنید تا در مقابل یکدیگر آزمایش شوند تا حفظ کاربر دو تا سه روزه بهینه شود.
- ابتدا Edit را روی پارامتر
subtitle_override
در صفحه پیکربندی راه دور کنسول Firebase انتخاب کنید:
- از درون کادر گفتگوی ویرایش پارامتر که ظاهر می شود، روی افزودن جدید کلیک کنید.
- از لیستی که ظاهر میشود، آزمایش را انتخاب کنید.
- یک نام و توضیح برای آزمایش خود وارد کنید.
- بعد، شرایط هدف گذاری را انتخاب کنید. ابتدا اپلیکیشن خود را از منوی کشویی انتخاب کنید.
- سپس روی And کلیک کنید تا یک شرط جدید اضافه کنید، سپس User Property را انتخاب کنید و
subtitle_sentiment
انتخاب کنید. اگر ظاهر نشد، آن را به صورت دستی وارد کنید. - از آنجایی که میخواهید فقط برای کسانی که احساس زیرنویس فعلیشان «خستهشده» است، یک زیرنویس تنظیم کنید، حاوی را انتخاب کنید و
bored
را تایپ کنید. - به صورت اختیاری، درصدی از مخاطبان را انتخاب کنید که با معیارهای بالا مطابقت دارند تا در معرض آزمون قرار گیرند. برای جلوگیری از تصادفی که به راحتی نمی توانید آن را کنترل کنید، 100٪ را انتخاب کنید.
- در مرحله بعد، هدفی را انتخاب کنید که آزمون سعی می کند آن را به حداکثر برساند. نگهداری (2-3 روز) را انتخاب کنید.
- در مرحله بعد، پارامترهای آزمایش را تنظیم کنید و انواع مختلف زیرنویس را ایجاد کنید. این گونهها مقادیر متفاوتی هستند که A/B Testing برای کاربرانی که
subtitle_sentiment
حاوی «bored» است ارائه میکند، و A/B Testing تعیین میکند که کدام نوع برای به حداکثر رساندن ماندگاری بهتر است. - مقدار پارامتر زیر را برای نوع A وارد کنید:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- مقدار پارامتر زیر را برای نوع B وارد کنید:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- نسبت های متغیر را با اعداد کامل به صورت زیر تنظیم کنید:
- خط مبنا : 1
- نوع A : 100
- نوع B : 100
- با کلیک بر روی شروع آزمایش ، ذخیره و ارسال کنید، سپس روی Start در پنجره تأیید کلیک کنید.
8. متد Set User Property را اجرا کرده و Refresh کنید
شما اکنون ویژگی های مختلفی را در مورد کاربر تنظیم کرده اید که می توان از آنها برای هدایت منطق یا ارائه بازی خود استفاده کرد.
اگر قبلاً متد SetUserProperty
را اجرا نکردهاید یا آن را روی enjoys
تنظیم کردهاید، همچنان باید زیرنویس پیشفرض را هنگام باز کردن بازی ببینید.
اگر آن را روی bored
تنظیم کرده اید (قبل از واکشی مجدد)، باید یکی از مقادیر جدید را با نسبت 50/50 ببینید.
هنگامی که دستگاه وارد آزمایش A/B Testing شد، مقادیری که از آن آزمایش دریافت میکنند تغییر نمیکنند و در هر نصب ثابت هستند. در نتیجه، برای دریافت یکی از مقادیر آزمایشی دیگر، باید با نصب مجدد بازی در همان دستگاه/شبیه ساز یا نصب بازی در دستگاه/شبیه ساز جدید، نصب جدیدی ایجاد کنید.
در یک تست واقعی A/B که در پایه کاربر شما راه اندازی می شود، باید به خط پایه وزن مشابهی با سایر انواع بدهید. اما در این مورد، شما احتمالات بسیار ناهنجاری را برای تایید اینکه آزمایش کار می کند اختصاص می دهید. اگر (در مورد 1/201)، همچنان مقدار پیش فرض را دریافت می کنید، سعی کنید بازی را دوباره در دستگاه/شبیه ساز خود نصب کنید.
یکی دیگر از تأثیرات این کار این است که تغییر ویژگی کاربر به enjoys
مقدار را به خط پایه تغییر نمیدهد ، اما باز هم، میتوانید این کار را با تغییر به enjoys
و نصب مجدد انجام دهید.
9. تبریک!
شما از Remote Config A/B Testing برای آزمایش مقادیر مختلف Remote Config و تعیین اینکه هر کدام چگونه بر معیارهای Analytics تأثیر میگذارند استفاده کردهاید.
آنچه را پوشش داده ایم
- نحوه تنظیم A/B Testing با استفاده از مقادیر تنظیم از راه دور
- نحوه استفاده از ویژگیهای کاربر Google Analytics به عنوان بخشی از شرایط پذیرش در آزمایشهای A/B Testing
مراحل بعدی
پس از پایان آزمایش، می توانید یکی از لیست آزمایش های پروژه خود را انتخاب کنید تا تصمیم بگیرید که می خواهید با آن چه کاری انجام دهید. آیا می خواهید یکی را به عنوان "برنده" انتخاب کنید یا آزمایش های بیشتری انجام دهید؟