1. Pengantar
Misalkan Anda perlu menyesuaikan nilai beberapa parameter di aplikasi setelah memublikasikan aplikasi di Play Store. Biasanya, Anda harus memublikasikan ulang versi baru aplikasi, dan pengguna juga harus mengupdate aplikasi di ponsel mereka.
Secara umum, update aplikasi akan berfungsi jika Anda ingin melakukan perubahan yang bertahan lama pada aplikasi. Namun, bagaimana jika Anda akan sering menyesuaikan nilai beberapa parameter di aplikasi? Atau, bagaimana jika Anda ingin menjalankan beberapa eksperimen untuk menemukan konfigurasi aplikasi yang optimal?
Dalam kasus ini, update aplikasi tidak akan berfungsi dengan baik. Karena diperlukan waktu beberapa saat hingga update sepenuhnya diterapkan kepada pengguna. Selain itu, cukup sulit untuk menjalankan eksperimen di beberapa versi aplikasi.
Selain itu, bagaimana cara Anda menentukan apakah perjalanan pengguna aplikasi berfungsi sebagaimana mestinya? Anda dapat mengandalkan komentar pengguna di Konsol Play. Namun, mungkin tidak cukup akurat untuk membuat keputusan yang jelas.
Yang akan Anda pelajari
- Cara membuat funnel di Google Analytics for Firebase
- Cara menggunakan Firebase Remote Config
- Cara menjalankan pengujian A/B Firebase
Yang Anda butuhkan
- Unity 2018.4.4f1 atau yang lebih baru
- Xcode 10 atau yang lebih baru (untuk membuat target bagi iOS)
- Akun Google
- Perangkat pengujian dengan Android 5.0+ dengan kabel USB untuk menghubungkan perangkat Anda, atau Emulator Android yang menjalankan AVD(Android Virtual Device) dengan image sistem yang mendukung Play Store/Google API
- Perangkat iOS atau simulator yang menjalankan iOS 8.0 atau yang lebih tinggi
Bagaimana Anda menilai tingkat pengalaman Anda menggunakan AdMob?
Menurut Anda, bagaimana tingkat pengalaman Anda dengan Firebase?
2. Menyiapkan lingkungan pengembangan
Download kodenya
Klik tombol berikut untuk mendownload semua kode untuk codelab ini:
Ekstrak file ZIP yang didownload. Tindakan ini akan mengekstrak folder root bernama admob-firebase-codelabs-unity-master.
...atau clone repositori GitHub dari command line.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity
Repositori ini berisi empat folder sebagai berikut:
101-base — Memulai kode yang akan Anda buat di codelab ini.
101-complete_and_102-base — Kode lengkap untuk codelab ini & kode awal untuk codelab 102.
102-complete — Kode lengkap untuk codelab 102.
Menyiapkan file yang diperlukan
Awesome Drawing Quiz menggunakan beberapa kode open source, yang diperlukan untuk mengompilasi dan menjalankan project.
Buka terminal, lalu pindah ke direktori root repositori. Kemudian, jalankan ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles di Windows) dari terminal untuk menyalin file yang diperlukan ke dalam project.
Mengimpor aplikasi awal
Luncurkan Unity, pilih "Open" di layar selamat datang. Kemudian, pilih direktori 101-complete_and_102-base dari kode yang telah Anda download.
Sekarang Anda akan membuka project di Unity.
Menambahkan Plugin Google Mobile Ads Unity
Untuk menayangkan Iklan AdMob di aplikasi Unity, Anda perlu menambahkan Plugin Google Mobile Ads Unity ke dalam project.
- Download paket Google Mobile Ads Unity Plugin 3.18.1. (Perhatikan bahwa Codelab ini mungkin tidak kompatibel dengan versi plugin lainnya)
- Di project Unity Awesome Drawing Quiz. Di project, buka Assets > Import Package > Custom Package.
- Impor GoogleMobileAds.unitypackage ke dalam project yang telah Anda download.
Anda juga perlu menetapkan ID aplikasi AdMob. Di editor Unity, pilih Assets > Google Mobile Ads > Settings dari menu.

Aktifkan AdMob dengan mencentang kotak Diaktifkan di bagian Google AdMob. Kemudian, masukkan ID aplikasi AdMob sebagai berikut:
- Android:
ca-app-pub-3940256099942544~3048611032 - iOS:
ca-app-pub-3940256099942544~2753522596

Menambahkan file konfigurasi Firebase ke project Unity
- Dari layar ringkasan project Awesome Drawing Quiz, klik ikon Setelan.

- Di tab Umum, pilih setiap aplikasi Android dan iOS untuk mendownload file google-service.json (untuk Android) dan GoogleService-Info.plist (untuk iOS).
- Pindahkan kedua file konfigurasi ke folder
Assets di project Unity.

Tambahkan Firebase Analytics SDK
- Download Firebase Unity SDK 5.5.0 dan ekstrak di tempat yang mudah diakses. (lewati langkah ini jika Anda sudah mendownload SDK)
- Buka project Unity Awesome Drawing Quiz, lalu buka Assets > Import Package > Custom Package.
- Dari SDK yang telah diekstrak, impor Firebase Analytics SDK (
dotnet4/FirebaseAnalytics.unitypackage). - Di jendela Import Unity package, klik Import.
3. Membuka project Firebase dari konsol
Sebelum melanjutkan ke langkah berikutnya, buka project dari Firebase console yang telah Anda buat di langkah 'Menyiapkan Project Firebase' pada Codelab AdMob+Firebase 101.

4. Membuat funnel peristiwa aplikasi
Mungkin ada beberapa peristiwa aplikasi yang telah Anda tambahkan untuk melacak aktivitas pengguna di dalam aplikasi. Dengan membaca laporan setiap peristiwa aplikasi, Anda bisa mendapatkan detail yang terkait dengan peristiwa tersebut seperti jumlah total, jumlah rata-rata per pengguna, demografi, dll.
Namun, bagaimana jika Anda ingin melihat rasio penyelesaian serangkaian peristiwa, alih-alih berfokus pada peristiwa tertentu? Di Google Analytics for Firebase, Anda dapat menggunakan Funnel untuk memvisualisasikan dan mengoptimalkan rasio penyelesaian serangkaian peristiwa aplikasi.
Membuat funnel
Untuk membuat funnel:
- Buka Firebase console dan pilih project Awesome Drawing Quiz yang Anda buat sebelumnya.
- Klik Funnels.
- Klik FUNNEL BARU.
- Masukkan nama dan deskripsi untuk funnel.
- Pilih 2 peristiwa pertama yang ingin Anda gunakan sebagai langkah di funnel.
- Klik TAMBAHKAN PERISTIWA LAIN untuk masing-masing langkah tambahan, lalu pilih peristiwa.
- Klik BUAT.
Dengan mengikuti langkah-langkah di atas, buat funnel berikut:
#1 Nama funnel: Tingkat keberhasilan Peristiwa: level_start, level_success
#2 Nama funnel: Rasio penyelesaian Iklan Reward Peristiwa: ad_reward_prompt, ad_reward_impression, ad_reward
#3 Nama funnel: Rasio penyelesaian game Peristiwa: game_start, game_complete
Melihat analisis funnel
Setelah membuat beberapa funnel, Anda dapat mengaksesnya di menu Funnel di Firebase console. Dengan mengklik nama funnel dalam daftar, Anda dapat melihat analisis mendetail dari setiap funnel.

Sebagai contoh, klik Tingkat keberhasilan level. Detail funnel akan ditampilkan sebagai berikut:

Dari screenshot di atas, Anda dapat melihat % pengguna yang telah menyelesaikan level (memicu peristiwa level_success) setelah memulai level (memicu peristiwa level_start). Di sini, Anda dapat melihat bahwa 46,2% pengguna telah menyelesaikan level.
Setelah Anda mengklik Jumlah peristiwa, metrik akan ditampilkan berdasarkan jumlah peristiwa sebagai berikut:

Berdasarkan metrik pada screenshot di atas, ada 116 upaya (memicu peristiwa level_start) dan 57 penyelesaian (memicu peristiwa level_success) selama periode tersebut.
Karena rasio penyelesaian berdasarkan peristiwa(49,1%) sedikit lebih tinggi daripada rasio berdasarkan pengguna(46,2%), Anda dapat mengatakan bahwa ada beberapa orang yang berperforma lebih baik daripada yang lain.
5. Mengintegrasikan Remote Config ke dalam aplikasi
Karena Anda bisa mendapatkan beberapa insight tentang aplikasi berdasarkan peristiwa aplikasi dan funnel, Anda mungkin ingin mengoptimalkan aplikasi. Hal ini biasanya mencakup penyesuaian nilai parameter dalam aplikasi. Untuk mengubah nilai parameter tersebut, Anda harus mengupdate aplikasi agar perubahan dapat diterapkan kepada pengguna.
Dengan menggunakan Remote Config di Firebase, Anda dapat menyesuaikan nilai tersebut tanpa update aplikasi, yang berarti Anda dapat mengubah perilaku aplikasi tanpa harus mengganggu pengguna dengan memaksa mereka mendownload update.
Dalam Codelab ini, Anda akan mempelajari cara membuat jumlah reward (jumlah huruf yang akan diungkapkan setelah menonton Iklan Video Reward) dapat disesuaikan tanpa update aplikasi menggunakan Remote Config.
Tambahkan Firebase Remote Config SDK
- Download Firebase Unity SDK 5.5.0 dan ekstrak di tempat yang mudah diakses.
- Buka project Unity Awesome Drawing Quiz, lalu buka Assets > Import Package > Custom Package.
- Dari SDK yang telah diekstrak, impor Remote Config SDK (
dotnet4/FirebaseRemoteConfig.unitypackage). - Di jendela Import Unity package, klik Import.
Import Firebase.RemoteConfig
Ubah Main.cs agar Anda dapat menggunakan jenis dari Firebase.RemoteConfig tanpa harus menggunakan nama yang sepenuhnya memenuhi syarat.
Scenes/Main.cs
...
using AwesomeDrawingQuiz.Game;
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Scene {
...
}
Menginisialisasi & Mengambil nilai Remote Config
Ubah metode InitAndFetchRemoteConfig() di Main.cs untuk melakukan inisialisasi instance Remote Config sebagai berikut. Perhatikan bahwa GameSettings.KEY_REWARD_AMOUNT menyimpan nama parameter di Remote Config. (Anda akan segera mendeklarasikan kolom ini di Codelab ini)
Scenes/Main.cs
private Task InitAndFetchRemoteConfig() {
// TODO: Initialize and Fetch values from the Remote Config (102)
Dictionary<string, object> defaults = new Dictionary<string, object>();
defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
FirebaseRemoteConfig.SetDefaults(defaults);
if (Debug.isDebugBuild) {
ConfigSettings config = new ConfigSettings();
config.IsDeveloperMode = true;
FirebaseRemoteConfig.Settings = config;
return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
} else {
return FirebaseRemoteConfig.FetchAsync();
}
}
Anda akan melihat bahwa instance FirebaseRemoteConfig dikonfigurasi untuk mengambil nilai terbaru dari server dalam mode debug untuk membantu proses pengembangan. (IsDeveloperMode = true dan FetchAsync(System.TimeSpan.Zero))
Mengaktifkan nilai Remote Config yang diambil
Setelah berhasil mengambil nilai Remote Config, Anda harus mengaktifkan nilai tersebut agar tersedia di aplikasi. Ubah metode ActivateRemoteConfigValues() sebagai berikut.
Scenes/Main.cs
private void ActivateRemoteConfigValues() {
// TODO: Activate fetched Remote Config values (102)
FirebaseRemoteConfig.ActivateFetched();
}
Ubah metode Start()
Agar aplikasi mengambil & mengaktifkan nilai Remote Config saat peluncuran aplikasi, ubah metode Start() dalam file Main.cs sebagai berikut.
Scenes/Main.cs
void Start () {
...
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
...
}).ContinueWith(task => {
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig();
}).ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
// Enable 'Start a game' button
UnityMainThreadDispatcher.Instance()
.Enqueue(() => buttonStartGame.interactable = true);
});
#else
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig().ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
});
#endif
}
Mengambil jumlah reward dari Remote Config
Ubah class GameSettings untuk mengambil jumlah reward dari Remote Config.
Game/GameSettings.cs
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Game {
public class GameSettings {
...
// TODO: Apply reward amount from the Remote Config (102)
public const string KEY_REWARD_AMOUNT = "reward_amount";
public static GameSettings Instance {
get {
return instance;
}
}
...
public int RewardAmount {
get {
// TODO: Apply reward amount from the Remote Config (102)
return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
}
private set { }
}
}
}
Membuat parameter Remote Config dari konsol
Selanjutnya, Anda akan membuat parameter Remote Config baru untuk jumlah reward sehingga Anda dapat menyesuaikan nilainya dengan cepat.
Untuk membuat parameter baru, buka Firebase console, lalu pilih project Awesome Drawing Quiz yang telah Anda buat sebelumnya. Klik tombol Remote Config -> ADD YOUR FIRST PARAMETER.

Beri nama parameter sebagai reward_amount dan tetapkan nilai defaultnya ke 1. Kemudian, klik tombol Tambahkan Parameter.

Klik tombol Publikasikan Perubahan agar perubahan dapat dilihat oleh pengguna.

6. Mengubah perilaku aplikasi dengan Remote Config
Jumlah reward dalam Kuis Gambar Keren kini dapat dikonfigurasi di konsol Firebase tanpa harus memperbarui kode aplikasi.
Di bagian ini, Anda akan mengubah jumlah reward dari 1 menjadi 2 agar aplikasi menampilkan dua karakter lagi sebagai petunjuk setelah menonton Iklan Reward.
Perbarui nilai default parameter reward_amount
Buka Firebase console, lalu pilih project Awesome Drawing Quiz yang Anda buat sebelumnya. Klik Remote Config, lalu klik reward_amount dari daftar. Selanjutnya, ubah nilai default menjadi 2, lalu klik tombol Update.

Klik tombol Publikasikan perubahan agar perubahan dapat dilihat oleh pengguna.

Memverifikasi perubahan perilaku aplikasi
Untuk mengonfirmasi perubahan perilaku aplikasi, jalankan project lagi. Setelah selesai menonton Iklan Bersama Hadiah, Anda akan melihat bahwa aplikasi kini menampilkan dua huruf sebagai hadiah, seperti yang kita konfigurasi di konsol Remote Config.
Sebelum menonton Iklan Reward | Mengungkapkan dua huruf tambahan sebagai reward |
7. Buat eksperimen untuk mengoptimalkan jumlah reward
Sekarang Anda dapat mengubah jumlah reward tanpa harus memublikasikan update aplikasi. Namun, bagaimana Anda dapat menentukan jumlah perubahan yang baik untuk aplikasi?
Dengan Firebase A/B Testing, Anda dapat menjalankan eksperimen untuk mengoptimalkan keseluruhan pengalaman pengguna aplikasi tanpa perlu mengupdate aplikasi atau membuat alat terpisah untuk menjalankan dan melacak performa setiap eksperimen.
Mendesain eksperimen
Sebelum membuat eksperimen baru, Anda harus menetapkan tujuan atau sasaran yang jelas untuk eksperimen tersebut. Pastikan Anda memeriksa checklist berikut sebelum membuat eksperimen baru.
- Apa: Apa yang ingin Anda optimalkan? (misalnya, tingkat kesulitan game, pengaturan waktu/visibilitas Iklan, dll.)
- Alasan: Apa sasaran bisnis Anda dalam menjalankan eksperimen? (misalnya, untuk memaksimalkan pendapatan Iklan, untuk meningkatkan retensi, dll.)
- Siapa: Siapa yang menjadi subjek dalam eksperimen? (misalnya, Semua pengguna, Audiens pengguna tertentu, dll.)
Dalam Codelab ini, Anda akan membuat eksperimen untuk mengoptimalkan nilai jumlah reward guna memaksimalkan engagement pengguna harian Awesome Drawing Quiz.
Buat eksperimen
Buka project Awesome Drawing Quiz dari Firebase console. Pilih menu Pengujian A/B, lalu klik tombol Buat eksperimen.
Pilih Remote Config untuk membuat eksperimen Remote Config.

Beri nama eksperimen sebagai 'Jumlah Reward' seperti yang ditunjukkan pada screenshot berikut.

Konfigurasi opsi penargetan. Dalam Codelab ini, Anda akan menargetkan 100% pengguna Awesome Drawing Quiz.

Karena tujuan utama eksperimen ini adalah menemukan nilai optimal yang memaksimalkan engagement pengguna harian, pilih Engagement pengguna harian sebagai metrik utama yang akan dilacak.

Terakhir, siapkan grup kontrol dan varian sehingga Anda dapat mengetahui grup mana yang berperforma lebih baik. Pilih reward_amount dari grup kontrol, dan biarkan nilainya tidak berubah. Untuk grup varian, beri nama 'Lebih sedikit reward', lalu ubah nilai reward_amount menjadi 1.

Dengan konfigurasi ini, orang-orang dalam grup 'Lebih sedikit reward' akan menerima satu huruf sebagai reward, sedangkan orang-orang dalam Grup kontrol akan menerima dua huruf sebagai reward. Dengan demikian, Anda akan melihat pengaruh jumlah reward terhadap pengguna.
Setelah mengklik tombol Tinjau, Anda akan melihat ringkasan eksperimen sebagai berikut.

Jalankan eksperimen
Klik tombol Mulai eksperimen untuk menjalankan eksperimen. Perhatikan bahwa Anda tidak dapat mengubah konfigurasi eksperimen setelah dimulai.

8. Mengelola eksperimen
Melihat progres eksperimen
Anda dapat memeriksa progres eksperimen dari menu A/B Testing di Firebase console, yang akan terlihat seperti screenshot berikut. Perhatikan bahwa Anda juga dapat melihat jumlah pengguna yang berpartisipasi dalam eksperimen dalam 30 menit terakhir di kartu.

Setelah mengklik eksperimen dari daftar, Anda dapat melihat detail eksperimen. Hingga eksperimen dapat menyatakan pemenang (yaitu, varian dengan performa terbaik), Anda akan melihat pesan 'Terlalu dini untuk menyatakan pemenang'.

Setelah eksperimen berjalan selama beberapa waktu, eksperimen akan mulai menampilkan data yang dikumpulkan selama eksperimen sejauh ini di bagian Ringkasan peningkatan. Anda dapat membandingkan performa setiap varian untuk melihat varian mana yang berperforma lebih baik. Screenshot berikut menunjukkan contoh bagian Ringkasan peningkatan.

Dari tabel di bawah bagian Ringkasan peningkatan, Anda dapat memeriksa detail metrik sasaran eksperimen serta metrik tambahan yang dilacak dalam eksperimen. Screenshot berikut menunjukkan contoh bagian detail metrik.

Meluncurkan pemimpin kepada semua pengguna
Setelah eksperimen berjalan cukup lama sehingga muncul varian dominan, Anda dapat meluncurkan eksperimen ke 100% pengguna. Setelah Pengujian A/B menemukan varian dominan yang jelas, Anda akan didorong untuk meluncurkan varian dominan tersebut kepada semua pengguna.

Namun, meskipun eksperimen belum menyatakan varian unggul secara jelas, Anda tetap dapat memilih untuk meluncurkan varian kepada semua pengguna.
Di layar detail eksperimen, klik menu konteks (
), lalu klik Luncurkan varian.

Pilih varian yang akan diluncurkan kepada semua pengguna, lalu klik tombol Tinjau di Remote Config untuk meninjau perubahan sebelum Anda membuat perubahan di Remote Config.

Setelah Anda mengonfirmasi bahwa draf tidak memiliki masalah, klik tombol Publikasikan perubahan untuk menerapkan perubahan tersebut kepada semua pengguna.

9. Selesai!
Anda telah menyelesaikan Codelab AdMob+Firebase 102 Unity. Anda dapat menemukan kode lengkap untuk Codelab ini di folder
102-complete.

