Firebase Remote Config ile Unity oyununuz için A/B testleri uygulayın

1. Giriş

Bu codelab'de, Firebase Remote Config ile oyununuzu Enstrümanla'da değiştirdiğiniz örnek oyun MechaHamster: Firebase sürümü ile Seviye Atlama için A/B Testini kullanarak bir Remote Config denemesinin nasıl oluşturulacağını öğreneceksiniz.

Remote Config ile A/B Testi, uygulamanızın kullanıcı arayüzünde, özelliklerinde veya etkileşim kampanyalarında yapılan değişiklikleri daha geniş bir kitleye sunmadan önce hedef kitle üzerinde test etmenize olanak tanır. Ayrıca deneme sonuçlarını şu amaçlarla da kullanabilirsiniz:

  • Hangi parametre değeri varyantlarının gelir ve elde tutma gibi temel metrikleri iyileştirdiğini belirleyin.
  • Hangi kullanıcı alt gruplarının hangi varyantları tercih ettiğini keşfedin.
  • Farklı parametre değerlerinin ayarlanmasının etkilerine ilişkin ek analizler gerçekleştirmek için deney verilerini toplayın ve saklayın.

A/B Testinin özü budur: Remote Config için kullanılan kodu almanıza ve Remote Config koşullarına (Google Analytics kullanıcı özellikleri dahil), kullanıma sunma yüzdesine, Analytics dönüşüm etkinliklerine dayalı olarak müşterilerin aldığı değerleri kontrol eden denemeler başlatmanıza olanak tanır. ve bunların bazı kombinasyonları.

Öncelikle kullanıcı özelliklerini kullanıcı eylemlerine göre ayarlayarak, denemeye kimlerin dahil edileceğini kapılara koyacak bir koşul uygulayacaksınız. Ardından, denemeye hangi müşterilerin dahil edildiğini belirlemek için Google Analytics kullanıcı özelliklerini kullanan bir A/B Testi denemesi oluşturacaksınız. Ve son olarak, bu verileri hedef kitleniz hakkında daha fazla bilgi edinmek için kullanacaksınız.

Ne öğreneceksin

  • Aletlenmiş Remote Config değerlerini kullanarak A/B Testi nasıl kurulur?
  • A/B testlerine kabul koşullarının bir parçası olarak Google Analytics kullanıcı özellikleri nasıl kullanılır?

Önkoşullar

İhtiyacınız olan şey

  • Unity 2019.1.0f1 veya üzeri, iOS ve/veya Android derleme desteğiyle

2. Hata Ayıklama Menüsünü Etkinleştirme

Projede gizli bir Hata Ayıklama Menüsü var ve bu menüye erişim sağlayan düğme oyunda mevcut ancak şu anda etkin değil. MainMenu hazır yapısından erişmek için düğmeyi etkinleştirmeniz gerekir.

  1. Unity düzenleyicisinde Proje sekmesini seçin, ardından Varlıklar altında Hamster > Prefabrikler > Menüler'i genişletin ve Ana Menü'ye tıklayın.

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. Prefabrik hiyerarşide, DebugMenuButton adlı devre dışı bırakılmış alt nesneyi bulun ve onu Denetçi sekmesinde açmak için tıklayın.

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. Denetçi sekmesinde, DebugMenuButton'u etkinleştirmek için sol üst köşedeki metin alanının yanındaki kutuyu işaretleyin.

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Prefabrik'i kaydedin.

Oyunu editörde veya cihazınızda çalıştırırsanız menüye artık erişebilirsiniz.

3. Uzaktan Yapılandırma alt menüsünü etkinleştirin

  1. Unity Düzenleyicisi'ndeki Proje sekmesinden Varlıklar > Hamster > Prefabrik Yapılar > Menüler'i genişletin ve DebugMenu nesnesine çift tıklayarak onu düzenleyici Hiyerarşi sekmesinde açın.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. Hiyerarşi sekmesinde hiyerarşiyi genişletin ve DebugMenu > Panel altında Remote Config Actions etiketli alt nesneye tıklayın.

Remote Config Actions nested under\nCanvas, DebugMenu

  1. Unity Inspector sekmesinde, nesnenin adını içeren metin alanının solundaki kutuyu işaretleyerek Uzaktan Yapılandırma Eylemlerini etkinleştirin.

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

Bunun, Set Bored Of Subtitle ve Set Enjoys Subtitle adlı iki GameObject alt öğesi vardır; bunların her ikisi de DebugMenu.cs mevcut ancak uygulanmamış yöntemleri çağıracak şekilde yapılandırılmıştır.

4. Altyazı geçersiz kılmayı uygulama içi varsayılana sıfırlayın

Önceki codelab'de , bir parametrenin varsayılan değerini JSON olarak geçersiz kıldınız ve farklı değişkenleri sunmak için koşulları kullandınız. Bu codelab'in bir parçası olarak, oluşturduğunuz koşulu silecek, uygulama içi varsayılanı yeniden uygulayacak ve bunu yalnızca A/B Testi sonucuyla geçersiz kılacaksınız.

Uygulama içi varsayılanı yeniden etkinleştirmek için:

  1. Firebase konsolunda Remote Config sayfasını açın ve Parametreyi düzenle yan panelini açmak için subtitle_override parametresinin yanındaki kalem simgesini tıklayın.
  2. Silmek için koşulun yanındaki X simgesini tıklayın.
  3. Kalan varsayılan değerin yanında Uygulama içi varsayılanı kullan geçişini etkinleştirin.

Deleting a condition from the Remote\nConfig parameter editor

  1. Değişikliklerinizi kaydetmek için Kaydet'i tıklayın, ardından değişikliklerinizi yayınlamak için Değişiklikleri yayınla'yı tıklayın. Publish\nchanges option on the Remote Config page

5. Hata Ayıklama işlevlerinde Kullanıcı Özelliklerini ayarlayın

Artık DebugMenu.cs (Varlıklar > Hamster > Komut Dosyaları > Durumlar bölümünde bulunabilir) önceden yapılandırılmış ancak uygulanmamış bazı Google Analytics işlevleri için işlev gövdeleri yazacaksınız.

Bu işlevler, kullanıcı tabanınızın bölümlerini tanımlamanın yolları olan ve kullanıcının oyunun altyazısı hakkında ne hissettiğini kaydetmek için kullanılan kullanıcı özelliklerini ayarlar .

SetUserBoredOfSubtitle ve SetUserEnjoysSubtitle mevcut sürümlerini DebugMenu.cs bularak ve üzerine yazarak aşağıdaki gibi uygulayın:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Uygulamanız Google Analytics ile doğru şekilde yapılandırıldıysa mülkün Remote Config koşullarında kullanılabilir olmasını sağlamak için bu işlevlerden birini çağırabilirsiniz. SetUserBoredOfSubtitle mobil cihazdan çağırmak için oyunu başlatın ve ana menüdeki Debug Menu butonuna basın, ardından Set Bored of Subtitle tuşuna basın.

6. Özel Bir Boyut Oluşturun

Daha sonra, hangi altyazının en iyi şekilde çalıştığını görmek için subtitle_override için çeşitli altyazı değişkenleri ayarlayacaksınız. Ancak, A/B testinizde, bu varyantları yalnızca mevcut altyazı hakkındaki duyguları ( subtitle_sentiment kaydedildiği gibi) "sıkıldım" kelimesini içeren kullanıcılara sunacaksınız.

Analytics etkinliklerinde özel parametreler oluşturmak ve izlemek için özel bir boyut kullanacaksınız. Daha fazla bilgi için Özel boyutlar ve metrikler konusuna bakın.

Yeni bir özel boyut oluşturmak için:

  1. Firebase konsolunu açın, Analytics menüsünü genişletin ve Özel tanımlar'ı seçin.
  2. Özel tanımlar sayfasında Özel boyutlar oluştur'u tıklayın.
  3. Yeni özel boyut penceresinde Boyut adını "Altyazı Yaklaşımı" olarak ayarlayın ve Kapsam açılır menüsünden Kullanıcı öğesini seçin.
  4. Kullanıcı özelliği alanı için subtitle_sentiment.

7. A/B Testi denemesini kurun

Daha sonra, iki ila üç günlük kullanıcı elde tutma oranını optimize etmek amacıyla, subtitle_override için birbirine karşı test edilecek farklı değerleri ayarlamak üzere bir A/B Testi denemesi oluşturun.

  1. Öncelikle Firebase konsolunun Remote Config sayfasında subtitle_override parametresinde Düzenle'yi seçin:

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. Görüntülenen Parametreyi düzenle iletişim kutusunda Yeni ekle öğesine tıklayın.

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. Görüntülenen listeden Deney'i seçin.

Remote Config parameter page: Add new\nexperiment

  1. Denemeniz için bir ad ve açıklama girin.

Experiment name and description\nsection

  1. Ardından hedefleme koşullarını seçin. Öncelikle açılır menüden Uygulamanızı seçin.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. Ardından, yeni bir koşul eklemek için Ve'ye tıklayın, ardından Kullanıcı Özelliği'ni ve subtitle_sentiment seçin. Görünmüyorsa manuel olarak girin.
  2. Yalnızca mevcut altyazı duyarlılığı "sıkılmış"ı içerenler için bir altyazı ayarlamak istediğinizden, içerir seçeneğini seçin ve bored yazın.
  3. İsteğe bağlı olarak, yukarıdaki ölçütlerle eşleşen hedef kitlenin yüzde kaçının teste tabi tutulacağını seçin. Kolayca kontrol edemediğiniz rastgeleliği önlemek için %100'ü seçin.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. Daha sonra, testin en üst düzeye çıkarmaya çalışacağı hedefi seçin. Saklama (2-3 gün) öğesini seçin.

A/B Testing Goals section

  1. Daha sonra deneyin parametrelerini ayarlayın ve farklı altyazı çeşitleri oluşturun. Bu varyantlar, A/B Testinin subtitle_sentiment 'sıkılmış' içeren kullanıcılara sunacağı farklı değerlerdir ve A/B Testi, elde tutmayı en üst düzeye çıkarmak için hangi varyantın en iyi olduğunu belirleyecektir.
  2. Varyant A için aşağıdaki parametre değerini girin:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Varyant B için aşağıdaki parametre değerini girin:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Tam sayılarla varyant oranlarını aşağıdaki gibi ayarlayın:
    • Temel : 1
    • A Varyantı : 100
    • B Varyantı : 100
    Bu, Başlangıç ​​Değeri için %0,5, Varyant A için %49,8 ve Varyant B için %49,8 toplam ağırlıkla sonuçlanacaktır. Variant weights configuration\nsection Bu varyantlar, A/B Testinin 201 seferden birinde altyazılardan sıkılanlar için varsayılan olarak hizmet ettiğini, ancak 200/201 seferden birinde iki yeni değerden birine hizmet edeceğini ve başlık ekranını geçersiz kılacağını belirtiyor.
  5. Denemeyi başlat 'ı tıklayarak kaydedin ve gönderin, ardından onay açılır penceresinde Başlat'ı tıklayın. Click Start to start the\nexperiment

8. Kullanıcı Özelliğini Ayarla yöntemini çalıştırın ve yenileyin

Artık kullanıcı hakkında, oyununuzun mantığını veya sunumunu yönlendirmek için kullanılabilecek çeşitli özellikleri ayarladınız.

Daha önce SetUserProperty yöntemini çalıştırmadıysanız ya da enjoys olarak ayarladıysanız, oyunu açarken yine de varsayılan altyazıyı görmeniz gerekir.

Eğer onu bored ayarladıysanız (yeniden getirmeden önce), kabaca 50/50 oranında yeni değerlerden birini görmelisiniz.

Bir cihaz bir A/B Testi denemesine girdiğinde, bu denemeden aldığı değerler değişmez ve kurulum başına kalıcı olur. Sonuç olarak, diğer deneysel değerlerden birini alabilmek için oyunu aynı cihaza/simülatöre yeniden yükleyerek veya oyunu yeni bir cihaza/simülatöre yükleyerek yeni bir kurulum oluşturmalısınız.

Kullanıcı tabanınız genelinde başlatılan gerçek bir A/B testinde, temele diğer değişkenlere benzer bir ağırlık vermelisiniz. Ancak bu durumda deneyin işe yaradığını doğrulamak için çok çarpık olasılıklar atarsınız. Eğer (1/201 durumunda) hala varsayılan değeri alıyorsanız, oyunu cihazınıza/simülatörünüze yeniden yüklemeyi deneyin.

Bunun başka bir etkisi de, kullanıcı özelliğini tekrar enjoys çevirmenin, değeri taban çizgisine geri döndürmemesidir , ancak yine, bunu enjoys geçip yeniden yükleyerek yapabilirsiniz.

9. Tebrikler!

Farklı Remote Config değerleriyle denemeler yapmak ve her birinin Analytics metriklerini nasıl etkilediğini belirlemek için Remote Config A/B Testi'ni kullandınız.

Neleri ele aldık?

  • Aletlenmiş Remote Config değerlerini kullanarak A/B Testi nasıl kurulur?
  • A/B Testi denemelerine kabul koşullarının bir parçası olarak Google Analytics Kullanıcı Özellikleri nasıl kullanılır?

Sonraki adımlar

Deneme bittiğinde, projenizdeki deneyler listesinden birini seçerek onunla ne yapmak istediğinize karar verebilirsiniz. Birini "kazanan" olarak mı seçmek istiyorsunuz yoksa daha fazla deney mi yapmak istiyorsunuz?