1. Pengantar
Iklan adalah bagian penting dari keseluruhan pengalaman pengguna aplikasi Anda. Penerapan iklan yang baik dapat membantu meningkatkan pengalaman aplikasi secara keseluruhan, bahkan meningkatkan retensi dan engagement pengguna. Misalnya, Iklan reward memungkinkan Anda memberi reward berupa item atau mata uang dalam aplikasi kepada pengguna karena sudah menonton iklan video, sehingga pengguna dapat mencapai level baru yang sebelumnya mungkin sulit dicapai dan membuat mereka berhenti bermain.
Namun, menciptakan pengalaman iklan yang luar biasa tidaklah mudah. Anda mungkin memiliki pertanyaan seperti: Seberapa sering Anda harus menampilkan iklan ini? Di mana dan kapan Anda harus menayangkannya? Apa penghargaan yang harus diberikan? Sayangnya, jawabannya berbeda-beda untuk setiap aplikasi dan penempatan. Tidak ada jawaban yang cocok untuk semua.
Dengan Google Analytics for Firebase, AdMob, dan beberapa alat canggih namun mudah digunakan lainnya yang ditawarkan Firebase, penyesuaian aplikasi Anda secara berbasis data menjadi jauh lebih mudah dan efisien. Hari ini, kami akan menunjukkan cara memulai.
Yang akan Anda bangun
Codelab ini adalah yang pertama dari tiga codelab yang akan memandu Anda mem-build aplikasi bernama Awesome Drawing Quiz, sebuah game yang memungkinkan pemain menebak nama dari gambar tersebut. Contoh ini akan menunjukkan cara menggabungkan Iklan Bersama Hadiah dan layanan Firebase dalam game Anda.
Dalam codelab ini, Anda akan mengintegrasikan Google Analytics for Firebase untuk merekam beberapa peristiwa aplikasi penting. Selain itu, Anda akan mempelajari cara membaca analisis aplikasi yang ditampilkan di Firebase console.
|
|
Yang akan Anda pelajari
- Cara menyiapkan Google Analytics for Firebase di aplikasi Anda
- Cara merekam peristiwa aplikasi
- Cara membaca analisis aplikasi yang ditampilkan di Firebase console
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-base dari kode yang telah Anda download.
Sekarang Anda akan membuka project di Unity.
3. Menyiapkan Unit Iklan Video Reward (Opsional)
Aplikasi awal sudah menyertakan Unit Iklan Video Reward khusus untuk memudahkan Anda. Anda sepenuhnya bebas melewati langkah ini jika tidak ingin membuat akun baru di akun AdMob Anda.
Penyiapan untuk Android
Untuk membuat aplikasi AdMob baru di akun Anda, ikuti petunjuk berikut:
- Buka Konsol AdMob.
- Dari menu Aplikasi, klik "Tambahkan Aplikasi".
- Saat ditanya "Sudahkah Anda memublikasikan aplikasi di Google Play atau App Store", jawab "TIDAK."
- Beri nama aplikasi "Awesome Drawing Quiz," pilih "Android" sebagai Platform, lalu klik "Add".
Setelah membuat aplikasi AdMob di akun Anda, ikuti langkah-langkah seperti yang dijelaskan di bawah untuk membuat Unit Iklan Video Reward baru.
- Klik menu Aplikasi di frontend AdMob, lalu pilih "Awesome Drawing Quiz" dari daftar aplikasi.
- Klik menu Unit iklan, lalu klik TAMBAHKAN UNIT IKLAN untuk membuat unit iklan Video Reward baru.
- Pilih Reward untuk Format iklan.

- Berikan nama unit iklan sesuai keinginan Anda. Kemudian, tetapkan jumlah reward ke 1, dan item reward ke "petunjuk" (ini adalah reward yang saat ini diberikan aplikasi kepada pengguna). Kemudian, klik BUAT UNIT IKLAN untuk membuat unit iklan Video Reward baru.

- Jika berhasil dibuat, Anda akan melihat petunjuk seperti berikut.

- Kembali ke project Unity, lalu perbarui konstanta ID aplikasi AdMob dan ID unit iklan ke ID yang telah Anda buat pada langkah sebelumnya.
Ads/AdManager.cs
namespace AwesomeDrawingQuiz.Ads {
public class AdManager {
public const string APP_ID_ANDROID = "YOUR_ADMOB_APP_ID";
...
#elif UNITY_ANDROID
private const string APP_ID = APP_ID_ANDROID;
public const string AD_UNIT_ID = "<YOUR_AD_UNIT_ID>";
...
}
}
Penyiapan untuk iOS
Untuk membuat aplikasi AdMob baru di akun Anda, ikuti petunjuk berikut:
- Buka Konsol AdMob.
- Dari menu Aplikasi, klik "Tambahkan Aplikasi".
- Saat ditanya "Sudahkah Anda memublikasikan aplikasi di Google Play atau App Store", jawab "TIDAK."
- Beri nama aplikasi "Awesome Drawing Quiz," pilih "iOS" sebagai Platform, lalu klik "Tambahkan".
Setelah membuat aplikasi AdMob di akun Anda, ikuti langkah-langkah seperti yang dijelaskan di bawah untuk membuat Unit Iklan Video Reward baru.
- Klik menu Aplikasi di frontend AdMob, lalu pilih "Awesome Drawing Quiz" dari daftar aplikasi.
- Klik menu Unit iklan, lalu klik TAMBAHKAN UNIT IKLAN untuk membuat unit iklan Video Reward baru.
- Pilih Reward untuk Format iklan.

- Berikan nama unit iklan sesuai keinginan Anda. Kemudian, tetapkan jumlah reward ke 1, dan item reward ke "petunjuk" (ini adalah reward yang saat ini diberikan aplikasi kepada pengguna). Kemudian, klik BUAT UNIT IKLAN untuk membuat unit iklan Video Reward baru.

- Jika berhasil dibuat, Anda akan melihat petunjuk seperti berikut.

- Kembali ke project Unity, lalu perbarui konstanta ID aplikasi AdMob dan ID unit iklan ke ID yang telah Anda buat pada langkah sebelumnya.
Ads/AdManager.cs
namespace AwesomeDrawingQuiz.Ads {
public class AdManager {
public const string APP_ID_IOS = "YOUR_ADMOB_APP_ID";
...
#elif UNITY_IOS
private const string APP_ID = APP_ID_IOS;
public const string AD_UNIT_ID = "<YOUR_AD_UNIT_ID>";
...
}
}
4. Menambahkan Plugin Google Mobile Ads Unity
Mengimpor plugin
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.
Mengonfigurasi 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

5. Menyiapkan Project Firebase
Membuat project baru dari Firebase Console
- Buka Firebase console.
- Pilih Tambahkan Project, lalu beri nama project Anda "Awesome Drawing Quiz".
Tambahkan aplikasi Unity
- Dari layar ringkasan project baru Anda, klik Tambahkan Firebase ke aplikasi Unity Anda.
- Centang kotak Daftar sebagai aplikasi iOS.
- Masukkan ID paket iOS sebagai: com.codelab.awesomedrawingquiz.unity
- Berikan nama panggilan aplikasi sebagai: Awesome Drawing Quiz (Unity di iOS)
- Centang kotak Daftar sebagai aplikasi Android.
- Masukkan nama paket Android sebagai: com.codelab.awesomedrawingquiz.unity
- Berikan nama panggilan aplikasi sebagai: Awesome Drawing Quiz (Unity di Android)
- Pilih Daftarkan Aplikasi untuk mendaftarkan aplikasi Android dan iOS.
Menambahkan file konfigurasi Firebase ke project Unity
Selanjutnya, Anda akan melihat layar yang memungkinkan Anda mendownload file konfigurasi yang berisi semua metadata Firebase yang diperlukan untuk aplikasi Anda. Download file google-service.json dan GoogleService-Info.plist, lalu pindahkan keduanya ke folder
Assets di project Unity.

Tambahkan Firebase Analytics 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/FirebaseAnalytics.unitypackage). - Di jendela Import Unity package, klik Import.
6. Menautkan AdMob ke Project Firebase
Selesaikan langkah-langkah berikut untuk menautkan aplikasi Anda ke Firebase.
- Login ke akun AdMob Anda di https://apps.admob.com.
- Klik Aplikasi di sidebar.
- Pilih "Awesome Drawing Quiz". Jika tidak melihatnya dalam daftar aplikasi terbaru, Anda dapat mengklik Lihat semua aplikasi untuk menelusuri daftar semua aplikasi yang telah ditambahkan ke AdMob.
- Klik Setelan aplikasi di sidebar.
- Klik Tautkan ke Firebase.
- Pilih opsi "Tautkan ke project Firebase yang ada dan buat aplikasi Firebase baru". Kemudian, pilih project "Awesome Drawing Quiz" dari menu dropdown.
- Setelah mengklik tombol "LANJUTKAN", Anda akan melihat pesan "Berhasil ditautkan". Klik tombol "SELESAI" untuk menyelesaikan.
Setelah Anda menautkan aplikasi AdMob ke Project Firebase, beberapa fitur tambahan di konsol AdMob dan Firebase akan tersedia seperti berikut:
Kartu pendapatan (AdMob)
Dari kartu Pendapatan, Anda dapat melihat secara menyeluruh semua kemungkinan arus pendapatan di satu tempat. Sumber pendapatan yang didukung adalah sebagai berikut:
- AdMob (Estimasi)
- Jaringan Iklan yang Dimediasi (Diamati)
- Pembelian dalam aplikasi
- Pembelian E-commerce

Kartu metrik pengguna (AdMob)
Dari kartu metrik pengguna, Anda dapat melihat pengaruh perubahan pada pengalaman iklan terhadap perilaku pengguna.

Laporan Iklan Reward (AdMob)
Laporan Iklan Reward menawarkan berbagai metrik yang akan membantu penayang memahami cara pengguna berinteraksi dengan iklan reward mereka.

Kartu total pendapatan (Firebase)
Setelah Anda menautkan aplikasi AdMob ke Firebase, kartu Total pendapatan di dasbor Firebase akan menampilkan pendapatan dari AdMob beserta pembelian dalam aplikasi dan pembelian e-commerce.

Pelaporan peristiwa iklan (Firebase)
Peristiwa khusus iklan (peristiwa klik, tayangan, dan reward) dikumpulkan secara otomatis dan tersedia untuk digunakan di Google Analytics for Firebase.

7. Menjalankan project
Setelah mengompilasi dan menjalankan project, Anda akan melihat layar berikut saat aplikasi dimulai.

Setelah mengklik 'MULAI GAME', Anda akan melihat gambar di layar. Misi Anda adalah menebak nama gambar dengan menggunakan petunjuk yang ditampilkan di bagian atas, yang dapat Anda gunakan untuk menyimpulkan huruf pertama dan panjang nama gambar.

Jika tidak tahu nama gambarnya, Anda dapat melewati level dengan mengklik tombol 'LEWATI'.
Anda mungkin menginginkan petunjuk tambahan yang membantu Anda menebak jawabannya. Anda bisa mendapatkan petunjuk tambahan dengan mengklik tombol 'PETUNJUK' dan menonton iklan Video Reward. Setelah Anda selesai menonton iklan, satu huruf tambahan akan diungkapkan sebagai reward.

8. Menambahkan peristiwa aplikasi
Untuk memahami perjalanan pengguna secara mendalam dalam Awesome Drawing Quiz, Anda akan menentukan beberapa peristiwa kustom yang melacak perilaku pengguna dalam game sebagai berikut:
Nama peristiwa | Dipicu... | Parameter |
game_start | saat pengguna memulai game baru | tidak ada |
level_start | saat pengguna memulai level baru (kuis gambar baru) dalam satu tahap. (ada 6 level dalam satu tahap) | level_name |
level_wrong_answer | saat pengguna mengirimkan jawaban yang salah | level_name |
ad_reward_prompt | saat pengguna mengetuk tombol petunjuk, dan diminta untuk menonton Iklan Video Reward | ad_unit_id |
ad_reward_impression | saat pengguna mulai menonton Iklan Video Reward | ad_unit_id |
level_success | saat pengguna mengirimkan jawaban yang benar (menyelesaikan level) | level_name, number_of_attempts, elapsed_time_sec, hint_used |
level_fail | saat pengguna melewati level | level_name, number_of_attempts, elapsed_time_sec, hint_used |
game_complete | saat game selesai | number_of_correct_answers |
Deskripsi setiap parameter yang terkait dengan setiap peristiwa adalah sebagai berikut:
Nama peristiwa | Nama parameter | Deskripsi |
level_start | level_name | Nama gambar yang ditampilkan di level (misalnya, "pisang") |
level_wrong_answer | level_name | Nama gambar yang ditampilkan di level (misalnya, "pisang") |
ad_reward_prompt | ad_unit_id | ID unit iklan yang digunakan untuk menampilkan Iklan Video Reward |
ad_reward_impression | ad_unit_id | ID unit iklan yang digunakan untuk menampilkan Iklan Video Reward |
level_success | level_name | Nama gambar yang ditampilkan di level (misalnya, "pisang") |
level_success | number_of_attempts | Jumlah upaya yang dilakukan untuk menyelesaikan level |
level_success | elapsed_time_sec | Waktu yang berlalu untuk menyelesaikan level, dalam detik |
level_success | hint_used | Apakah pengguna menggunakan petunjuk (menonton Iklan Video Reward) atau tidak untuk menyelesaikan level (1: menggunakan petunjuk / 0: menyelesaikan level tanpa petunjuk) |
level_fail | level_name | Nama gambar yang ditampilkan di level (misalnya, "pisang") |
level_fail | number_of_attempts | Jumlah upaya yang dilakukan untuk menyelesaikan level |
level_fail | elapsed_time_sec | Waktu yang berlalu untuk menyelesaikan level, dalam detik |
level_fail | hint_used | Apakah pengguna menggunakan petunjuk (menonton Iklan Video Reward) atau tidak untuk menyelesaikan level (1: menggunakan petunjuk / 0: menyelesaikan level tanpa petunjuk) |
game_complete | number_of_correct_answers | Jumlah level yang diselesaikan dalam game |
Membuat class helper untuk mencatat peristiwa kustom
Untuk mencatat peristiwa analisis dengan mudah, Anda akan membuat class helper untuk mengelola peristiwa kustom.
Pertama, buat folder baru di bawah folder Assets/Scripts, lalu beri nama Analytics. Kemudian, buat C# Script baru dan beri nama QuizAnalytics.cs di folder Analytics.
Tambahkan kode di bawah ke dalam file QuizAnalytics.cs.
Analytics/QuizAnalytics.cs
using Firebase.Analytics;
namespace AwesomeDrawingQuiz.Analytics {
public class QuizAnalytics {
private const string EVENT_AD_REWARD_PROMPT = "ad_reward_prompt";
private const string EVENT_AD_REWARD_IMPRESSION = "ad_reward_impression";
private const string EVENT_LEVEL_FAIL = "level_fail";
private const string EVENT_LEVEL_SUCCESS = "level_success";
private const string EVENT_LEVEL_WRONG_ANSWER = "level_wrong_answer";
private const string EVENT_GAME_START = "game_start";
private const string EVENT_GAME_COMPLETE = "game_complete";
private const string PARAM_AD_UNIT_ID = "ad_unit_id";
private const string PARAM_ELAPSED_TIME_SEC = "elapsed_time_sec";
private const string PARAM_HINT_USED = "hint_used";
private const string PARAM_NUMBER_OF_ATTEMPTS = "number_of_attempts";
private const string PARAM_NUMBER_OF_CORRECT_ANSWERS = "number_of_correct_answers";
public const string SCREEN_MAIN = "main";
public const string SCREEN_GAME = "game";
public static void LogGameStart() {
FirebaseAnalytics.LogEvent(EVENT_GAME_START);
}
public static void LogLevelStart(string levelName) {
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelStart,
FirebaseAnalytics.ParameterLevelName, levelName);
}
public static void LogLevelWrongAnswer(string levelName) {
FirebaseAnalytics.LogEvent(EVENT_LEVEL_WRONG_ANSWER,
FirebaseAnalytics.ParameterLevelName, levelName);
}
public static void LogAdRewardPrompt(string adUnitId) {
FirebaseAnalytics.LogEvent(EVENT_AD_REWARD_PROMPT, PARAM_AD_UNIT_ID, adUnitId);
}
public static void LogAdRewardImpression(string adUnitId) {
FirebaseAnalytics.LogEvent(EVENT_AD_REWARD_IMPRESSION, PARAM_AD_UNIT_ID, adUnitId);
}
public static void LogLevelSuccess(
string levelName, int numberOfAttemps, int elapsedTimeInSec, bool hintUsed
) {
FirebaseAnalytics.LogEvent(EVENT_LEVEL_SUCCESS, new Parameter[] {
new Parameter(FirebaseAnalytics.ParameterLevelName, levelName),
new Parameter(PARAM_NUMBER_OF_ATTEMPTS, numberOfAttemps),
new Parameter(PARAM_ELAPSED_TIME_SEC, elapsedTimeInSec),
new Parameter(PARAM_HINT_USED, hintUsed ? 1 : 0)
});
}
public static void LogLevelFail(
string levelName, int numberOfAttempts, int elapsedTimeInSec, bool hintUsed
) {
FirebaseAnalytics.LogEvent(EVENT_LEVEL_FAIL, new Parameter[] {
new Parameter(FirebaseAnalytics.ParameterLevelName, levelName),
new Parameter(PARAM_NUMBER_OF_ATTEMPTS, numberOfAttempts),
new Parameter(PARAM_ELAPSED_TIME_SEC, elapsedTimeInSec),
new Parameter(PARAM_HINT_USED, hintUsed ? 1 : 0)
});
}
public static void LogGameComplete(int numberOfCorrectAnswers) {
FirebaseAnalytics.LogEvent(EVENT_GAME_COMPLETE,
PARAM_NUMBER_OF_CORRECT_ANSWERS, numberOfCorrectAnswers);
}
public static void SetScreenName(string screenName) {
FirebaseAnalytics.SetCurrentScreen(screenName, null);
}
}
}
Mencatat peristiwa analisis dalam game
Buka file Game.cs di folder Assets/Scripts/Scenes. Untuk menggunakan class QuizAnalytics, yang berada di namespace AwesomeDrawingQuiz.Analytics, tambahkan direktif penggunaan sebagai berikut.
Scenes/Game.cs
using AwesomeDrawingQuiz.Ads;
// TODO: Import AwesomeDrawingQuiz.Analytics (101)
using AwesomeDrawingQuiz.Analytics;
...
namespace AwesomeDrawingQuiz.Scene {
...
}
Selanjutnya, di fungsi Start(), panggil QuizAnalytics.SetScreenName() untuk mengubah nama layar saat ini. Selain itu, panggil QuizAnalytics.LogGameStart() untuk menunjukkan bahwa game telah dimulai.
Scenes/Game.cs
void Start () {
// TODO: Log screen name (101)
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_GAME);
...
SetHintButtonEnabled(false);
// TODO: Log game_start event (101)
QuizAnalytics.LogGameStart();
...
}
Selanjutnya, di fungsi callback, tambahkan panggilan untuk mencatat log peristiwa kustom sebagai berikut:
Scenes/Game.cs
public void OnClickHint() {
// TODO: Log ad_reward_prompt event (101)
QuizAnalytics.LogAdRewardPrompt(AdManager.AD_UNIT_ID);
...
}
...
public void OnAdStarted(object sender, EventArgs args) {
// TODO: Log ad_reward_impression event (101)
QuizAnalytics.LogAdRewardImpression(AdManager.AD_UNIT_ID);
}
...
public void OnGameOver(object sender, GameOverEventArgs args) {
// TODO: Log game_complete event (101)
QuizAnalytics.LogGameComplete(args.NumCorrectAnswers);
...
}
public void OnLevelCleared(object sender, LevelClearEventArgs args) {
// TODO: Log level_success event (101)
QuizAnalytics.LogLevelSuccess(
args.Drawing.word, args.NumAttempts, args.ElapsedTimeInSeconds, args.IsHintUsed);
...
}
public void OnLevelSkipped(object sender, LevelSkipEventArgs args) {
// TODO: Log level_fail event (101)
QuizAnalytics.LogLevelFail(
args.Drawing.word, args.NumAttempts, args.ElapsedTimeInSeconds, args.IsHintUsed);
}
public void OnNewLevel(object sender, NewLevelEventArgs args) {
// TODO: Log level_start event (101)
QuizAnalytics.LogLevelStart(args.Drawing.word);
...
}
public void OnWrongAnwser(object sender, WrongAnswerEventArgs args) {
// TODO: Log level_wrong_answer event (101)
QuizAnalytics.LogLevelWrongAnswer(args.Drawing.word);
...
}
Terakhir, perbarui file Main.cs di folder Assets/Scripts/Scenes. Anda harus memastikan apakah Firebase sudah siap sebelum memanggil metode apa pun di Firebase SDK.
Scenes/Main.cs
using AwesomeDrawingQuiz.Ads;
// TODO: Import AwesomeDrawingQuiz.Analytics (101)
using AwesomeDrawingQuiz.Analytics;
...
namespace AwesomeDrawingQuiz.Scene {
public class Main : MonoBehaviour {
...
void Start () {
Screen.sleepTimeout = SleepTimeout.SystemSetting;
#if UNITY_ANDROID
// Disable 'Start a game' button until
// Firebase dependencies are ready to use on the Android
buttonStartGame.interactable = false;
// TODO: Check Google Play Services on Android (101)
// Check Google Play Services on Android device is up to date
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
var dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available) {
Debug.Log("All Firebase services are available");
// TODO: Set screen name (101)
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
} else {
throw new System.InvalidOperationException(System.String.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
}
}).ContinueWith(task => {
// Enable 'Start a game' button
UnityMainThreadDispatcher.Instance()
.Enqueue(() => buttonStartGame.interactable = true);
});
#else
// TODO: Set screen name (101)
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
#endif
}
...
}
}
9. Men-debug peristiwa Analytics
Anda dapat menggunakan DebugView untuk memverifikasi peristiwa yang dicatat dengan benar. DebugView dapat digunakan untuk melihat data peristiwa mentah yang dicatat ke dalam log oleh aplikasi Anda di perangkat pengembangan hampir secara real-time.
Fitur ini sangat berguna untuk tujuan validasi selama fase instrumentasi pengembangan dan dapat membantu Anda menemukan error dan kesalahan dalam penerapan analisis.
Mengaktifkan mode debug di Android
Biasanya, peristiwa yang dicatat ke dalam log di aplikasi Anda akan dikelompokkan bersama selama kurang lebih satu jam dan diupload secara bersamaan. Untuk memvalidasi penerapan analisis secara langsung, Anda perlu mengaktifkan mode Debug di perangkat pengembangan guna mengupload peristiwa dengan penundaan minimum.
Pertama, buka alat Terminal di Android Studio. Fitur ini terletak di toolbar bawah.

Kemudian, jalankan perintah berikut (pastikan perangkat Android pengujian terhubung ke komputer Anda atau Android Emulator sedang berjalan):
adb shell setprop debug.firebase.analytics.app com.google.codelab.awesomedrawingquiz
Perilaku ini terus berlanjut hingga Anda menonaktifkan mode Debug secara eksplisit dengan menjalankan perintah berikut:
adb shell setprop debug.firebase.analytics.app .none.
Mengaktifkan mode debug di iOS
Untuk mengaktifkan mode Debug Analytics di perangkat pengembangan Anda, gunakan argumen command line berikut di Xcode:
-FIRDebugEnabled
Perilaku ini tetap ada hingga Anda secara eksplisit menonaktifkan mode Debug dengan menentukan argumen baris perintah berikut:
-FIRDebugDisabled
Melakukan debug pada peristiwa Analytics dengan DebugView
Setelah mengaktifkan mode Debug di perangkat pengujian, buka Firebase console dan pilih DebugView dari menu. Kemudian, di perangkat pengujian, mainkan game Anda untuk melihat peristiwa yang dicatat dan ditampilkan di laporan DebugView.

Anda dapat mengakses informasi mendetail tentang setiap peristiwa dengan mengklik nama peristiwa. Sebagai contoh, screenshot berikut menampilkan detail parameter yang terkait dengan peristiwa level_start.

Lihat artikel pusat bantuan DebugView untuk mengetahui detail selengkapnya.
10. Mengaktifkan pelaporan parameter
Google Analytics for Firebase akan mengumpulkan jumlah total hitungan peristiwa secara default, tetapi pelaporan untuk parameter kustom harus diaktifkan secara eksplisit untuk setiap parameter peristiwa yang Anda minati. Setelah diaktifkan, Google Analytics for Firebase akan menampilkan kartu tambahan untuk menunjukkan statistik parameter kustom.
Untuk mendaftarkan parameter kustom peristiwa:
- Buka Firebase console dan pilih project Awesome Drawing Quiz yang Anda buat sebelumnya.
- Klik Peristiwa dari menu navigasi.
- Di baris untuk peristiwa yang ingin Anda ubah, klik
> Edit pelaporan Parameter.

- Di kolom Masukkan nama parameter, masukkan nama parameter yang ingin Anda daftarkan.
Catatan: Jika tidak ada kecocokan yang ditemukan, cukup masukkan nama parameter, lalu klik TAMBAHKAN.
5. Lihat tabel di bawah, lalu tetapkan kolom Jenis ke Teks atau Angka. Untuk parameter numerik, pastikan Anda juga menetapkan kolom Satuan Ukur. 6. Klik tombol SIMPAN untuk menyelesaikan penyiapan.
Aktifkan pelaporan parameter pada setiap peristiwa yang tercantum di bawah.
Nama peristiwa | Nama parameter | Jenis parameter | Satuan Ukur |
level_start | level_name | Teks | T/A |
level_wrong_answer | level_name | Teks | T/A |
level_success | level_name | Teks | T/A |
level_success | number_of_attempts | Angka | Standar |
level_success | elapsed_time_sec | Angka | Detik |
level_success | hint_used | Angka | Standar |
level_fail | level_name | Teks | T/A |
level_fail | number_of_attempts | Angka | Standar |
level_fail | elapsed_time_sec | Angka | Detik |
level_fail | hint_used | Angka | Standar |
game_complete | number_of_correct_answers | Angka | Standar |
Contoh berikut menunjukkan penyiapan pelaporan parameter kustom untuk peristiwa level_success:

Setelah menyelesaikan penyiapan pelaporan parameter, Anda akan dapat melihat parameter yang terkait dengan setiap peristiwa yang mengaktifkan pelaporan parameter.

11. Mendapatkan insight dari laporan Peristiwa
Setelah menambahkan beberapa peristiwa dalam game, Anda akan dapat menjawab pertanyaan terkait perilaku pengguna dalam game. Berikut adalah beberapa insight yang bisa Anda dapatkan dari laporan peristiwa Firebase.
Level mana yang memiliki jumlah jawaban salah tertinggi?
Untuk menjawab pertanyaan ini, Anda harus mengetahui jumlah peristiwa level_wrong_answer yang dipicu per setiap level.
Klik level_wrong_answer dari laporan peristiwa. Di laporan peristiwa level_wrong_answer, temukan kartu level_name. Anda akan melihat nilai yang terkait dengan parameter level_name pada kartu tersebut sebagai berikut.

Menurut screenshot di atas, Anda dapat dengan mudah mengetahui bahwa horizon memiliki jumlah jawaban salah tertinggi, yang berarti level ini sulit bagi pengguna dibandingkan dengan level lainnya.
Dengan menggunakan insight yang Anda dapatkan dari sini, Anda dapat memutuskan untuk tidak memberikan level sulit kepada pengguna pemula untuk mempertahankan rasio retensi yang tinggi.
Berapa banyak percobaan yang dilakukan untuk menyelesaikan level, rata-rata?
Dalam Kuis Gambar Keren, pengguna dapat mengirimkan jawaban untuk setiap level sebanyak yang mereka inginkan.
Karena Anda telah mengaktifkan pelaporan parameter pada parameter number_of_attempts di peristiwa level_success, Anda dapat melihat metrik mendetail untuk parameter tersebut.
Klik peristiwa level_success dari laporan peristiwa. Di laporan peristiwa level_success, temukan kartu number_of_attemps. Anda akan melihat rata-rata jumlah upaya di kartu tersebut sebagai berikut:

Anda dapat menggunakan insight dari sini untuk mengoptimalkan tingkat kesulitan game secara rata-rata. Misalnya, jika rata-rata jumlah percobaan terlalu mendekati 1, Anda dapat mempertimbangkan untuk membuat game sedikit lebih menantang.
Apakah pengguna mencoba menyelesaikan pertanyaan dengan mendapatkan petunjuk, meskipun mereka gagal menyelesaikan level terakhir?
Saat pengguna memutuskan untuk melewati level, peristiwa level_fail akan dipicu. Ada banyak alasan yang mendasari keputusan pengguna.
Namun, karena game dapat memberi mereka petunjuk setelah mereka menonton Iklan Video Reward, penting untuk mengetahui apakah pengguna mencoba menyelesaikan level dengan bantuan petunjuk tersebut atau tidak.
Klik peristiwa level_fail dari laporan peristiwa. Di laporan peristiwa level_fail, temukan kartu hint_used. Anda akan melihat jumlah rata-rata parameter peristiwa hint_used. Perhatikan bahwa saat petunjuk digunakan, petunjuk akan disetel ke 1, sedangkan jika petunjuk tidak digunakan, petunjuk akan disetel ke 0.

Jika angka pada kartu hint_used mendekati 0, ini adalah sinyal bahwa hadiah (petunjuk) tidak cukup menarik bagi pengguna. Selain itu, Anda kehilangan peluang untuk meningkatkan pendapatan dari Iklan Video Reward.
Oleh karena itu, Anda harus mempertimbangkan untuk membuat reward yang lebih bermanfaat bagi pengguna, sehingga pengguna dapat berinteraksi dengan game secara lebih mendalam serta pendapatan dari Iklan Video Reward dapat ditingkatkan.
Berapa banyak level yang diselesaikan di setiap game, rata-rata?
Ada total 6 level per game di Kuis Menggambar Keren. Setelah pengguna menyelesaikan enam level (terlepas dari apakah mereka berhasil atau gagal di setiap level), peristiwa game_complete dipicu dengan number_of_correct_answers sebagai parameter.
Karena number_of_correct_answers menunjukkan berapa banyak level yang telah diselesaikan pengguna (memberikan jawaban yang benar), Anda dapat menemukan jawabannya dengan melihat metrik parameter number_of_correct_answers.
Klik peristiwa game_complete dari laporan peristiwa. Di laporan peristiwa game_complete, temukan kartu number_of_correct_answers. Anda akan melihat jumlah rata-rata parameter peristiwa number_of_correct_answers.

Jika rata-rata jumlah level yang diselesaikan terlalu rendah, Anda harus mempertimbangkan untuk menyusun ulang game guna membantu orang menyelesaikan level, sehingga mereka dapat terus memainkan game Anda tanpa kehilangan minat.
12. Selesai!
Anda telah menyelesaikan Codelab Unity AdMob+Firebase 101. Anda dapat menemukan kode lengkap untuk Codelab ini di folder
101-complete_and_102-base.
Di bagian berikutnya dari Codelab AdMob+Firebase, Anda akan mempelajari cara menggunakan funnel untuk memvisualisasikan alur peristiwa aplikasi. Selain itu, tutorial ini akan membahas cara menggunakan Remote Config dan pengujian A/B untuk mengoptimalkan parameter value dalam game tanpa update aplikasi.