App Center Analytics (Android)

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

App Center Analytics membantu Anda memahami perilaku pengguna dan keterlibatan pelanggan untuk meningkatkan aplikasi Anda. SDK secara otomatis menangkap jumlah sesi dan properti perangkat seperti model, versi OS, dll. Anda dapat menentukan peristiwa kustom Anda sendiri untuk mengukur hal-hal yang penting bagi Anda. Semua informasi yang diambil tersedia di portal App Center bagi Anda untuk menganalisis data.

Ikuti bagian Memulai SDK jika Anda belum menyiapkan SDK di aplikasi Anda.

Informasi sesi dan perangkat

Setelah Anda menambahkan App Center Analytics ke aplikasi dan memulai SDK, app Center Analytics akan secara otomatis melacak sesi dan properti perangkat seperti Versi OS, model, dll. tanpa menulis kode tambahan apa pun.

Kode Negara

SDK secara otomatis melaporkan kode negara pengguna jika perangkat memiliki modem data seluler dan kartu SIM yang diinstal. Perangkat khusus WiFi tidak akan melaporkan kode negara secara default. Untuk mengatur kode negara pengguna tersebut, Anda harus mengambil lokasi pengguna Anda sendiri dan menggunakan setCountryCode: metode di SDK:

AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")

Catatan

Agar kode negara ditampilkan pada sesi Analytics, AppCenter.setCountryCode harus dipanggil sebelum memanggil AppCenter.start.

Peristiwa kustom

Anda dapat melacak peristiwa kustom Anda sendiri dengan hingga 20 properti untuk memahami interaksi antara pengguna dan aplikasi Anda.

Setelah Anda memulai SDK, gunakan trackEvent() metode untuk melacak peristiwa Anda dengan properti. Anda dapat mengirim hingga 200 nama peristiwa yang berbeda. Selain itu, ada batas karakter maksimum:

  • 256 karakter per event name.
  • 125 karakter per event property name & event property value.
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)

Properti untuk peristiwa sepenuhnya opsional - jika Anda hanya ingin melacak peristiwa, gunakan sampel ini sebagai gantinya:

Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")

Prioritas dan persistensi peristiwa

Anda dapat melacak peristiwa penting bisnis yang memiliki kepentingan lebih tinggi daripada peristiwa lain.

  • Pengembang dapat menetapkan prioritas peristiwa sebagai Normal (Flags.NORMAL di API) atau Kritis (Flags.CRITICAL di API).
  • Peristiwa dengan prioritas ditetapkan sebagai Kritis akan diambil dari penyimpanan terlebih dahulu dan dikirim sebelum peristiwa Normal .
  • Ketika penyimpanan lokal penuh, dan peristiwa baru perlu disimpan, peristiwa terlama dengan prioritas terendah dihapus terlebih dahulu.
  • Jika penyimpanan penuh dengan log dengan prioritas Kritis , maka melacak peristiwa dengan prioritas Normal akan gagal karena SDK tidak dapat memberi ruang dalam hal ini.
  • Jika Anda juga menggunakan layanan Crash , log crash diatur sebagai Kritis dan berbagi penyimpanan yang sama dengan peristiwa.
  • Interval transmisi hanya diterapkan ke peristiwa Normal , Peristiwa penting akan dikirim setelah 3 detik.

Anda dapat menggunakan API berikut untuk melacak peristiwa sebagai Kritis:

Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("eventName", properties, Flags.CRITICAL);

// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)

// If you're using name only, you can pass null as properties.

Menjeda dan melanjutkan pengiriman log

Menjeda transmisi peristiwa dapat berguna dalam skenario ketika aplikasi perlu mengontrol bandwidth jaringan untuk kebutuhan yang lebih penting bagi bisnis. Anda dapat menjeda pengiriman log ke backend App Center. Saat dijeda, peristiwa masih dapat dilacak dan disimpan, tetapi tidak segera dikirim. Setiap peristiwa yang dilacak aplikasi Anda saat dijeda hanya akan dikirim setelah Anda memanggil resume.

Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()

Mengaktifkan atau menonaktifkan Analitik App Center saat runtime

Anda dapat mengaktifkan dan menonaktifkan Analitik App Center saat runtime. Jika Anda menonaktifkannya, SDK tidak akan mengumpulkan informasi analitik lagi untuk aplikasi.

Analytics.setEnabled(false);
Analytics.setEnabled(false)

Untuk mengaktifkan Analitik App Center lagi, gunakan API yang sama tetapi teruskan true sebagai parameter.

Analytics.setEnabled(true);
Analytics.setEnabled(true)

Status ini bertahan di penyimpanan perangkat di seluruh peluncuran aplikasi.

API ini asinkron, Anda dapat membaca lebih lanjut tentang itu di panduan API Asinkron App Center kami.

Catatan

Metode ini hanya boleh digunakan setelah Analytics dimulai.

Periksa apakah App Center Analytics diaktifkan

Anda juga dapat memeriksa apakah App Center Analytics diaktifkan atau tidak.

Analytics.isEnabled();
Analytics.isEnabled()

API ini asinkron, Anda dapat membaca lebih lanjut tentang itu di panduan API Asinkron App Center kami.

Catatan

Metode ini hanya boleh digunakan setelah Analytics dimulai, metode ini akan selalu kembali false sebelum dimulai.

Mengelola sesi mulai

Secara default, ID sesi tergantung pada siklus hidup aplikasi. Jika Anda ingin mengontrol awal sesi baru secara manual, ikuti langkah-langkah berikutnya:

Catatan

Perhatikan bahwa setiap panggilan Analytics.StartSession() API akan menghasilkan sesi baru. Jika dalam mode pelacak sesi manual, API ini tidak akan dipanggil maka semua log pengiriman akan memiliki nilai sesi null.

Catatan

Perhatikan bahwa setelah aplikasi baru meluncurkan id sesi akan diregenerasi.

  • Panggil metode berikut sebelum SDK dimulai:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
  • Kemudian Anda dapat menggunakan startSession API setelah AppCenter.start:
Analytics.startSession();
Analytics.startSession()

Ukuran penyimpanan lokal

Secara default, SDK menyimpan semua log peristiwa hingga 10 MB. Pengembang dapat menggunakan API untuk meningkatkan ukuran penyimpanan dan SDK akan terus menyimpan log hingga penyimpanan penuh.

Tidak ada akses internet

Ketika tidak ada konektivitas jaringan, SDK menghemat hingga 10 MB log di penyimpanan lokal. Setelah penyimpanan penuh, SDK mulai membuang log lama untuk memberi ruang bagi log baru. Setelah konektivitas jaringan kembali, SDK mengirim log dalam batch 50 atau setelah setiap 6 detik (secara default).

Catatan

Log yang lebih lama dari 25 hari tidak akan diterima oleh backend.

Batching log peristiwa

App Center SDK mengunggah log dalam batch 50 dan jika SDK tidak memiliki 50 log untuk dikirim, SDK masih akan mengirim log setelah 6 detik (secara default). Mungkin ada maksimal tiga batch yang dikirim secara paralel. Interval transmisi dapat diubah:

// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)

Nilai interval transmisi harus antara 6 detik dan 86400 detik (satu hari) dan metode ini harus dipanggil sebelum layanan dimulai.

Logika coba lagi dan back-off

App Center SDK mendukung percobaan ulang back-off pada kesalahan jaringan yang dapat dipulihkan. Di bawah ini adalah logika coba lagi:

  • 3 mencoba maksimum per permintaan.
  • Setiap permintaan memiliki mesin status coba lagi sendiri.
  • Semua saluran transmisi dinonaktifkan (hingga proses aplikasi berikutnya) setelah satu permintaan habis semua percobaan ulang.

Logika back-off

  • Pengacakan 50%, coba lagi pertama antara 5 dan 10 detik, berikutnya coba antara 2,5 dan 5 menit, terakhir coba antara 10 dan 20 menit.
  • Jika jaringan beralih dari nonaktif ke aktif (atau dari wi-fi ke seluler), status coba lagi diatur ulang dan permintaan segera dicoba ulang.