1. Pengantar
Anggaplah Anda perlu menyesuaikan nilai beberapa parameter di aplikasi setelah memublikasikan aplikasi di Play Store. Biasanya, Anda sebaiknya 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 jangka panjang pada aplikasi Anda. Namun, bagaimana jika Anda sering menyesuaikan nilai beberapa parameter dalam 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 perlu waktu cukup lama hingga update diterapkan sepenuhnya kepada pengguna. Selain itu, menjalankan eksperimen di beberapa versi aplikasi juga cukup sulit.
Selain itu, bagaimana Anda dapat menentukan apakah perjalanan pengguna aplikasi berfungsi sebagaimana mestinya? Anda dapat mengandalkan komentar pengguna di Konsol Play. Namun, hal ini mungkin tidak cukup tepat untuk membuat keputusan yang jelas.
Jika Anda mengalami masalah (bug kode, kesalahan gramatikal, susunan kata yang tidak jelas, dll.) saat mengerjakan codelab ini, laporkan masalah tersebut melalui link Laporkan kesalahan di pojok kiri bawah codelab.
Yang akan Anda pelajari
- Cara membuat funnel di Google Analytics for Firebase
- Cara menggunakan Firebase Remote Config
- Cara menjalankan Firebase A/B Testing
Yang Anda butuhkan
- Android Studio versi 4.1+
- Akun Google
- Perangkat pengujian dengan Android 5.0+ yang dilengkapi kabel USB untuk menghubungkan perangkat, atau Android Emulator yang menjalankan AVD(Perangkat Virtual Android) dengan image sistem yang mendukung Play Store/Google API
Bagaimana Anda menilai tingkat pengalaman Anda menggunakan AdMob?
Bagaimana Anda menilai 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-android-master
.
...atau membuat clone repositori GitHub dari command line.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-android
Repositori 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 & pemicu untuk codelab 102.
- 102-complete — Kode lengkap untuk codelab 102.
Mengimpor aplikasi awal
Luncurkan Android Studio, pilih "Import project" di layar sambutan. Kemudian, pilih direktori 101-complete_and_102-base dari kode yang telah Anda download.
Sekarang Anda seharusnya sudah membuka project di Android Studio.
Menambahkan file konfigurasi Firebase ke project Android
- Dari layar ringkasan project Awesome Drawing Quiz, klik ikon Setelan.
- Pada tab Umum, pilih aplikasi Android untuk mendownload file google-service.json.
- Pindahkan file konfigurasi ke direktori app di project Anda.
3. Membuka project Firebase dari konsol
Sebelum melanjutkan ke langkah berikutnya, buka project dari Firebase console yang telah Anda buat di langkah 'Setup Firebase Project' dalam 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, seperti jumlah total, jumlah rata-rata per pengguna, demografi, dll.
Namun, bagaimana jika Anda ingin melihat rasio penyelesaian rangkaian acara, dan bukan 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 telah Anda buat sebelumnya.
- Klik Funnel.
- 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 tingkat 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 terperinci dari setiap funnel.
Klik Tingkat keberhasilan level sebagai contoh. Tindakan ini akan menampilkan detail funnel 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 berdasarkan jumlah peristiwa akan ditampilkan sebagai berikut:
Berdasarkan metrik pada screenshot di atas, ada 116 upaya (memicu peristiwa level_start) dan 57 clear (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, sebaiknya optimalkan aplikasi Anda. Ini biasanya mencakup fine-tuning nilai parameter dalam aplikasi. Untuk mengubah nilai parameter tersebut, Anda harus mengupdate aplikasi agar perubahan dapat diterapkan ke 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 untuk mendownload update.
Dalam Codelab ini, Anda akan mempelajari cara membuat jumlah reward (jumlah huruf yang akan diungkapkan setelah menonton Iklan Video Reward) yang dapat disesuaikan tanpa update aplikasi menggunakan Remote Config.
Menambahkan Remote Config ke dependensi aplikasi
Mari kita mulai dengan menambahkan Firebase Remote Config ke dependensi aplikasi.
app/build.gradle
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
// TODO: Add Firebase Remote Config dependency (102)
implementation 'com.google.firebase:firebase-config-ktx'
...
}
...
Menyinkronkan project dengan file gradle
Guna memastikan bahwa semua dependensi tersedia untuk aplikasi Anda, sinkronkan project Anda dengan file gradle. Pilih File > Menu Sync Project with Gradle Files untuk menyinkronkan project Anda dengan file gradle.
Menetapkan nilai default parameter Remote Config
Mengambil nilai dari Remote Config memerlukan koneksi jaringan. Jika jaringan tidak tersedia, Anda harus menentukan nilai default untuk setiap parameter Remote Config.
Buat file remote_config_defaults.xml
di folder res/xml
. Kemudian, tetapkan nilai default jumlah reward (reward_amount)
seperti berikut.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
Perhatikan bahwa reward_amount
adalah nama parameter dalam Remote Config.
Mengambil jumlah reward dari Remote Config
Ubah AwesomeDrawingQuiz.kt
untuk membuat class GameSettings
untuk menyimpan referensi ke instance RemoteConfig
.
Perlu diperhatikan bahwa instance RemoteConfig
dikonfigurasi untuk mengambil nilai terbaru dari server dalam mode debug untuk membantu proses pengembangan. (Tetapkan interval pengambilan minimum ke nol detik dengan memanggil fetch(0L)
)
AwesomeDrawingQuiz.kt
class AwesomeDrawingQuiz : Application() {
...
// COMPLETE: Provide FirebaseRemoteConfig instance (102)
private fun provideGameSettings() = GameSettings(provideRemoteConfig())
// COMPLETE: Add a function that provides a FirebaseRemoteConfig instance (102)
private fun provideRemoteConfig(): FirebaseRemoteConfig {
val rc = Firebase.remoteConfig.apply {
setDefaultsAsync(R.xml.remote_config_defaults)
}
val fetchTask = if (BuildConfig.DEBUG) rc.fetch(0L) else rc.fetch()
fetchTask.addOnCompleteListener {
if (it.isSuccessful) {
Log.d("AwesomeDrawingQuiz", "Remote config value fetched")
rc.activate()
}
}
return rc
}
}
Kemudian, ubah class GameSettings
untuk mengambil jumlah reward dari Remote Config.
GameSettings.kt
// TODO: Add FirebaseRemoteConfig as a class member
class GameSettings(private val rc: FirebaseRemoteConfig) {
...
// TODO: Apply reward amount from the Remote Config (102)
val rewardAmount: Int
get() = rc.getLong(KEY_REWARD_AMOUNT).toInt()
companion object {
...
// TODO: Add a key for 'reward_amount' Remote Config parameter (102)
private const val KEY_REWARD_AMOUNT = "reward_amount"
}
}
Membuat parameter Remote Config dari konsol
Selanjutnya, Anda akan membuat parameter Remote Config baru untuk jumlah reward agar 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 Remote Config -> Tombol TAMBAHKAN PARAMETER PERTAMA.
Beri nama parameter sebagai reward_amount
dan tetapkan nilai defaultnya ke 1
. Lalu klik tombol Tambahkan Parameter.
Klik tombol Publikasikan Perubahan untuk menerapkan perubahan kepada pengguna.
6. Mengubah perilaku aplikasi dengan Remote Config
Jumlah reward di Awesome Drawing Quiz sekarang dapat dikonfigurasi di Firebase console 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.
Memperbarui nilai default parameter reward_amount
Buka Firebase console, lalu pilih project Awesome Drawing Quiz yang telah Anda buat sebelumnya. Klik Remote Config, lalu klik reward_amount
dari daftar. Selanjutnya, ubah nilai default ke 2, lalu klik tombol Update.
Klik tombol Publikasikan perubahan untuk menayangkan perubahan kepada pengguna.
Memverifikasi perubahan perilaku aplikasi
Untuk mengonfirmasi perubahan perilaku aplikasi, jalankan kembali project. Setelah selesai menonton Iklan Reward, Anda akan melihat bahwa aplikasi sekarang menampilkan dua huruf sebagai reward, seperti yang telah kami konfigurasi di konsol Remote Config.
Sebelum menonton Iklan Reward | Menampilkan 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 mengetahui bahwa jumlah yang telah diubah bagus untuk aplikasi?
Dengan Firebase A/B Testing, Anda dapat menjalankan eksperimen untuk mengoptimalkan pengalaman pengguna aplikasi secara keseluruhan 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 eksperimen yang jelas. Pastikan untuk memeriksa daftar periksa berikut sebelum Anda membuat eksperimen baru.
- Apa: Apa yang ingin Anda optimalkan? (misalnya, tingkat kesulitan game, Waktu/visibilitas iklan, dll.)
- Mengapa: Apa sasaran bisnis Anda untuk menjalankan eksperimen? (misalnya, untuk memaksimalkan Pendapatan iklan, meningkatkan retensi, dll.)
- Siapa: Siapa yang akan disertakan dalam eksperimen? (mis., Semua pengguna, Audiens pengguna spesifik, dll.)
Dalam Codelab ini, Anda akan membuat eksperimen untuk mengoptimalkan nilai jumlah reward guna memaksimalkan engagement pengguna harian dari Awesome Drawing Quiz.
Membuat eksperimen
Buka project Awesome Drawing Quiz dari Firebase console. Pilih menu A/B Testing, lalu klik tombol Create experiment.
Pilih Remote Config untuk membuat eksperimen Remote Config.
Beri nama eksperimen dengan 'Jumlah Reward' seperti yang ditampilkan di screenshot berikut.
Konfigurasikan 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 perlu dilacak.
Terakhir, siapkan kontrol dan grup varian agar Anda dapat mengetahui grup mana yang berperforma lebih baik. Pilih reward_amount
dari grup kontrol, dan jangan ubah nilainya. Untuk grup varian, beri nama ‘Kurang reward', lalu ubah nilai reward_amount
menjadi 1.
Dengan konfigurasi ini, orang-orang dalam grup ‘Lebih sedikit reward' akan menerima satu huruf sebagai reward, sementara orang-orang dalam Grup kontrol akan menerima dua huruf sebagai reward. Dengan demikian, Anda akan melihat pengaruh jumlah reward terhadap pengguna.
Setelah mengklik tombol Review, Anda akan melihat ringkasan eksperimen sebagai berikut.
Menjalankan eksperimen
Klik tombol Mulai eksperimen untuk menjalankan eksperimen. Perhatikan bahwa Anda tidak dapat mengubah konfigurasi eksperimen setelah dimulai.
8. Mengelola eksperimen
Lihat 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 posisi teratas (yaitu varian dengan performa terbaik), Anda akan melihat pesan ‘Terlalu dini untuk menyatakan posisi teratas'.
Setelah 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.
Luncurkan pemimpin ke semua pengguna
Setelah eksperimen berjalan lama sehingga muncul varian posisi teratas atau varian yang unggul, Anda dapat meluncurkan eksperimen kepada 100% pengguna. Setelah A/B Testing menemukan varian dominan, Anda akan terdorong untuk meluncurkan varian dominan kepada semua pengguna.
Namun, meskipun eksperimen belum menyatakan posisi teratas yang jelas, Anda tetap dapat memilih untuk meluncurkan satu varian ke semua pengguna.
Di layar detail eksperimen, klik menu konteks ( ), lalu klik Luncurkan varian.
Pilih varian yang akan diluncurkan ke semua pengguna, lalu klik tombol Review in Remote Config untuk meninjau perubahan sebelum Anda membuat perubahan di Remote Config.
Setelah mengonfirmasi bahwa draf tersebut tidak memiliki masalah, klik tombol Publikasikan perubahan untuk menayangkan perubahan kepada semua pengguna.
9. Selesai!
Anda telah menyelesaikan AdMob+Firebase 102 Android Codelab. Anda dapat menemukan kode lengkap untuk Codelab ini di folder 102-complete.