Bayangkan Anda adalah wirausahawan pemula yang baru saja membuat situs web dan aplikasi seluler (misalnya, untuk toko donat). Anda ingin menghubungkan analitik pengguna dengan anggaran kecil, tetapi tidak tahu caranya. Semua orang di sekitar menggunakan Mixpanel, analisis Facebook, Yandex.Metrica dan sistem lainnya, tetapi tidak jelas apa yang harus dipilih dan bagaimana menggunakannya.

Apa itu sistem analitik?
Pertama-tama, saya harus mengatakan bahwa sistem analitik pengguna bukan sistem analitik dari log layanan itu sendiri. Pemantauan bagaimana layanan bekerja berfokus pada stabilitas dan kinerja, dan dilakukan secara terpisah oleh pengembang. Analisis pengguna dibuat untuk mempelajari dengan tepat perilaku pengguna: tindakan apa yang dia lakukan, seberapa sering, bagaimana dia bereaksi terhadap mendorong atau peristiwa lain dalam layanan. Secara global, analitik pengguna memiliki dua bidang: analisis seluler dan web. Meskipun antarmuka dan kemampuan layanan web dan seluler berbeda, bekerja dengan sistem analitik di kedua arah kurang lebih sama.
Mengapa ini dibutuhkan?
Analisis pengguna diperlukan:
- untuk memantau apa yang terjadi ketika menggunakan layanan;
- untuk mengubah konten, dan memahami di mana mengembangkan, fitur apa yang harus ditambahkan / dihapus;
- untuk menemukan apa yang tidak disukai pengguna dan mengubahnya.
Bagaimana cara kerjanya?
Untuk mempelajari perilaku pengguna, Anda perlu mengumpulkan riwayat perilaku ini. Tapi apa sebenarnya yang harus dikumpulkan? Pertanyaan ini hingga 70% dari kerumitan seluruh tugas. Banyak peserta dalam tim produk harus menjawabnya bersama-sama: manajer produk, programmer, analis. Kesalahan apa pun pada langkah ini mahal: Anda tidak dapat mengumpulkan apa yang Anda butuhkan dan mengumpulkan sesuatu yang tidak memungkinkan Anda membuat kesimpulan yang signifikan.
Setelah Anda memutuskan apa yang akan dirakit, Anda perlu mempertimbangkan arsitektur cara merakitnya. Objek utama yang digunakan sistem analitis bekerja adalah peristiwa. Acara adalah uraian tentang apa yang terjadi yang dikirim ke sistem analitik sebagai respons atas tindakan pengguna. Sebagai aturan, untuk setiap tindakan yang dipilih untuk dilacak pada langkah sebelumnya, acara tersebut terlihat seperti paket JSON dengan bidang yang menggambarkan tindakan sempurna.
Paket JSON seperti apa?Paket JSON adalah file teks yang menjelaskan apa yang terjadi. Misalnya, paket JSON dapat berisi informasi bahwa pengguna Mary melakukan aksi permainan Dimulai pada 23:00 pada 15 November. Bagaimana cara menggambarkan setiap tindakan? Misalnya, pengguna mengklik tombol. Properti apa yang perlu dikumpulkan saat ini? Mereka dibagi menjadi dua jenis:
- properti super - properti yang merupakan karakteristik dari semua peristiwa yang selalu ada. Kali ini, versi perangkat, versi api, versi analitik, versi OS;
- properti spesifik acara - properti ini arbitrer dan kesulitan utama adalah bagaimana memilihnya. Misalnya, untuk tombol "beli koin" di dalam permainan, properti seperti itu akan menjadi "berapa banyak koin yang dibeli pengguna", "berapa biaya koin".
Contoh paket JSON dalam layanan pembelajaran bahasa:

Tapi mengapa tidak mengumpulkan semuanya saja dalam satu baris?
Karena semua acara dibuat secara manual. Dalam sistem analitik, tidak ada tombol "simpan semuanya" (dan itu tidak ada gunanya). Hanya tindakan dari logika layanan yang menarik bagi beberapa bagian tim yang dikumpulkan. Bahkan untuk setiap keadaan tombol atau jendela, tidak semua acara biasanya menarik. Untuk proses yang panjang (misalnya, level permainan), hanya awal dan akhir yang mungkin penting. Apa yang terjadi di tengah mungkin tidak dikumpulkan.
Sebagai aturan, logika layanan terdiri dari objek - entitas. Itu bisa berupa entitas koin, entitas level. Oleh karena itu, dimungkinkan untuk mengkompilasi peristiwa dari entitas, keadaan dan tindakan mereka. Contoh: "level telah dimulai", "level telah berakhir", "level telah berakhir, alasan dimakan oleh naga". Sangat diharapkan bahwa semua entitas yang dapat "ditemukan" ditutup agar tidak melanggar logika dan tidak menyulitkan diri mereka bekerja lebih lanjut dengan analitik.

Berapa banyak kejadian dalam sistem yang kompleks?
Sistem yang kompleks dapat menangani beberapa ratus peristiwa yang dikumpulkan dari semua pelanggan (manajer produk, programmer, analis) dan dengan hati-hati (!) Dibawa ke tablet, dan kemudian ke logika layanan. Persiapan acara adalah pekerjaan interdisipliner besar yang mengharuskan semua orang untuk memahami apa yang perlu dikumpulkan, perhatian dan akurasi.
Apa selanjutnya
Katakanlah kita datang dengan semua acara yang menarik. Sudah waktunya untuk mengumpulkannya. Untuk melakukan ini, Anda perlu menghubungkan analitik klien. Kami masuk ke Google dan mencari analitik seluler (atau memilih dari yang terkenal: Mixpanel , Yandex.Metrica , Google Analytics , analisis Facebook , Tune , Amplitude ). Kami mengambil SDK dari situs dan menanamkannya dalam kode layanan kami (maka nama "klien" - karena SDK tertanam di klien).
Dan di mana mengumpulkan acara?
Semua paket JSON yang akan dibuat harus disimpan di suatu tempat. Ke mana harus mengirim mereka dan ke mana mereka akan pergi? Dalam kasus sistem analitik klien, ia bertanggung jawab untuk ini. Kami tidak tahu di mana paket JSON kami, di mana penyimpanannya, ada berapa banyak dan bagaimana mereka disimpan di sana. Seluruh proses pengumpulan dilakukan oleh sistem dan tidak masalah bagi kami. Di layanan analitik, kami mendapatkan akses ke akun pribadi Anda, tempat kami telah melihat hasil pemrosesan data perilaku awal. Selanjutnya, analis bekerja dengan apa yang mereka lihat di akun Anda.
Dalam versi gratis, data sumber biasanya tidak dapat diunduh. Dalam versi mahal ada peluang seperti itu.
Berapa lama koneksi akan berlangsung?
Analitik sederhana dapat dihubungkan dalam satu jam: itu akan menjadi App Metrika, yang akan menunjukkan hal-hal paling sederhana tanpa menganalisis acara khusus. Waktu setup untuk sistem yang lebih kompleks tergantung pada acara yang dipilih. Ada kesulitan yang membutuhkan pengembangan tambahan:
- Apakah ada antrian acara? Misalnya, bagaimana cara memperbaikinya agar satu peristiwa tidak dapat datang lebih awal dari yang lain?
- Apa yang harus dilakukan jika pengguna telah memindahkan waktu? Mengubah zona waktu?
- Bagaimana jika tidak ada internet?
Rata-rata, Anda dapat mengatur Mixpanel dalam beberapa hari. Ketika direncanakan untuk mengumpulkan sejumlah besar acara tertentu, itu bisa memakan waktu seminggu.

Bagaimana cara memilih yang mana yang saya butuhkan?
Statistik umum di semua sistem analitis berfungsi dengan baik. Sangat cocok untuk pemasar dan tenaga penjualan: Anda dapat melihat retensi, berapa banyak pengguna yang dihabiskan dalam aplikasi, semua metrik tingkat tinggi dasar. Untuk halaman arahan paling sederhana, metrik Yandex akan cukup.
Ketika datang ke tugas-tugas non-standar, pilihan tergantung pada layanan Anda, tugas analitis dan peristiwa yang perlu diproses untuk menyelesaikannya.
- Dalam Mixpanel, misalnya, tes A / B dapat dilakukan. Bagaimana cara melakukannya? Anda membuat percobaan di mana akan ada beberapa sampel dan membuat pilihan (Anda menetapkan pengguna tersebut ke A, yang lain ke B). Untuk A tombolnya akan menjadi hijau, untuk B itu akan menjadi biru. Karena Mixpanel mengumpulkan semua data, ia dapat menemukan id perangkat masing-masing pengguna dari A dan B. Dalam kode layanan, menggunakan SDK, tweak dibuat - ini adalah tempat di mana sesuatu dapat diubah untuk pengujian. Selanjutnya, untuk setiap pengguna, nilai (dalam kasus kami, warna tombol) ditarik dari Mixpanel. Jika tidak ada koneksi Internet, opsi default akan dipilih.
- Seringkali Anda ingin tidak hanya menyimpan dan mempelajari acara, tetapi juga mengumpulkan pengguna. Mixpanel yang sama melakukan ini secara otomatis di tab Pengguna. Di sana Anda dapat melihat semua data pengguna permanen (nama, email, profil facebook) dan riwayat log pengguna. Anda dapat melihat data pengguna sebagai statistik: naga makan 100 kali, membeli 3 bunga . Dalam beberapa sistem, agregasi pengguna dapat diunduh.
- Apa kesejukan utama analitik Facebook ? Ini menggabungkan pengunjung layanan dengan profil Facebook-nya. Karena itu, Anda dapat mengetahui audiens Anda, dan yang paling penting, kemudian mengubahnya menjadi audiens iklan. Misalnya, jika saya mengunjungi situs 1 kali, dan pemiliknya memasukkan iklan (audiens yang dapat diisi ulang dalam analisis Facebook) pada pengunjung, maka di masa mendatang saya akan melihat iklan di situs ini di Facebook. Untuk pemilik situs, ini berfungsi sederhana dan mudah, Anda hanya perlu ingat untuk memberi batasan harian pada anggaran iklan. Yang kurang dari analisis Facebook adalah bahwa itu tidak terlalu nyaman: situs yang agak rumit yang tidak segera jelas, tidak bekerja dengan sangat cepat.
Hampir tidak ada hubungannya dan semuanya bekerja! Mungkin ada kontra?
Ya, dan salah satunya adalah yang biasanya mahal. Untuk startup, bisa sekitar $ 50k per bulan. Tetapi ada juga opsi gratis. Yandex App Metrica gratis dan cocok untuk metrik paling dasar.
Namun, jika solusinya tidak mahal, maka analitiknya tidak akan mendetail: akan mungkin untuk melihat jenis perangkat, OS, tetapi bukan peristiwa khusus, dan itu tidak akan mungkin untuk membuat saluran. Mixpanel dapat berharga 50 ribu dolar setahun (misalnya, aplikasi dengan Am Nyam, dapat makan sangat banyak). Secara umum, akses ke data seringkali sangat terbatas. Anda tidak dapat membayangkan dan menjalankan model Anda sendiri. Pembayaran biasanya dilakukan secara bulanan / berkala.
Lagi?
Tetapi yang terburuk adalah bahwa bahkan Mixpanel menganggap jumlah data yang merupakan karakteristik dari aplikasi seluler aktif sebagai perkiraan (secara terbuka ditunjukkan langsung dalam dokumentasi). Jika Anda membandingkan hasilnya dengan analitik server, nilainya akan berbeda. (Untuk informasi tentang cara membuat analitik server Anda sendiri, baca artikel kami berikutnya!)
Kekurangan besar dari hampir semua sistem analitik adalah bahwa mereka membatasi akses ke log mentah. Jadi, meluncurkan model Anda sendiri, tampaknya, data Anda sendiri tidak akan berfungsi. Misalnya, jika Anda melihat corong di Mixpanel, Anda hanya dapat menghitung waktu rata-rata antar langkah. Metrik yang lebih kompleks, seperti waktu rata-rata atau persentil, tidak dapat dihitung.
Juga, seringkali kemampuan agregasi dan segmentasi yang kompleks tidak cukup. Misalnya, grup licik βuntuk menyatukan pengguna yang lahir pada tahun 1990 dan membeli setidaknya masing-masing 50 donatβ mungkin tidak tersedia.
Analisis Facebook memiliki antarmuka yang sangat kompleks dan lambat.
Dan jika saya mengaktifkan semua sistem sekaligus?
Ide bagus! Sering terjadi bahwa sistem yang berbeda menghasilkan hasil yang berbeda pula. Nomor yang berbeda. Selain itu, beberapa memiliki satu fungsional, yang lain lagi, yang lain gratis.
Selain itu, beberapa sistem dapat dimasukkan secara paralel untuk pengujian: misalnya, untuk membiasakan diri dengan antarmuka baru dan secara bertahap beralih ke sana. Seperti dalam bisnis apa pun, di sini Anda perlu mengetahui ukuran dan menghubungkan analitik dalam volume yang dapat Anda ikuti (dan yang tidak akan memperlambat koneksi jaringan).
Kami semua terhubung, dan kemudian kami merilis fitur baru, bagaimana cara menambahkan acara?
Sama seperti saat menghubungkan analitik dari awal: kumpulkan deskripsi peristiwa yang diperlukan dan gunakan SDK untuk menempelkannya ke dalam kode klien.
Saya harap Anda menemukan jawaban atas pertanyaan umum Anda yang bermanfaat. Jika mereka membantu Anda memahami bahwa analisis klien tidak cocok untuk aplikasi Anda, kami sarankan Anda mencoba analitik server Anda. Saya akan membicarakannya di bagian selanjutnya, dan kemudian saya akan berbicara tentang bagaimana menerjemahkan ini ke dalam proyek saya.