Retentioneering: bagaimana kami menulis alat analisis produk open-source dengan Python dan Pandas

Hai, Habr. Artikel ini dikhususkan untuk hasil pengembangan empat tahun dari serangkaian metode dan alat untuk memproses jalur pengguna dalam aplikasi atau di situs. Penulis pengembangannya adalah Maxim Godzi , yang berada di kepala tim pembuat produk, ia juga penulis artikel tersebut. Produk itu sendiri disebut Retentioneering, sekarang diubah menjadi perpustakaan open-source dan di-host di Github sehingga siapa pun dapat menggunakannya. Semua ini mungkin menarik bagi mereka yang terkait dengan analisis produk dan pemasaran, promosi dan pengembangan produk . Ngomong-ngomong, artikel tentang salah satu kasus bekerja dengan Retentioneering sudah diterbitkan di Habré. Materi baru berbicara tentang apa produk mampu dan bagaimana itu dapat digunakan.

Setelah membaca artikel, Anda sendiri dapat menulis Retentioneering Anda, itu bisa menjadi metode standar untuk memproses lintasan pengguna dalam aplikasi dan seterusnya, memungkinkan Anda untuk melihat secara rinci perilaku dan mengekstrak wawasan dari dalamnya untuk pertumbuhan metrik bisnis.

Apa itu Retentioneering dan mengapa itu diperlukan?


Awalnya, tujuan kami adalah untuk mentransfer Pertumbuhan Peretasan dari dunia "pengobatan digital" ke dunia angka, analitik dan ramalan. Akibatnya, mengurangi analitik produk menjadi matematika murni dan pemrograman adalah bagi mereka yang lebih suka angka daripada cerita fiksi ilmiah dan formula untuk kata-kata pintar seperti "rebranding", "reposisi", dll. Yang terdengar indah, tetapi dalam praktiknya sedikit membantu.

Untuk mengatasi masalah ini, kami membutuhkan kerangka kerja untuk analitik melalui grafik dan lintasan, dan pada saat yang sama perpustakaan yang menyederhanakan rutinitas analitik yang khas, sebagai cara menggambarkan tugas rutin analitik produk, yang dapat dimengerti oleh orang dan robot. Perpustakaan memberikan kesempatan untuk menggambarkan perilaku pengguna dan mengaitkannya dengan metrik bisnis produk dalam bahasa formal dan jelas seperti itu untuk menyederhanakan dan mengotomatisasi tugas rutin pengembang dan analis, dan memfasilitasi komunikasi mereka dengan bisnis.

Retentioneering adalah metode dan perangkat lunak analitis yang dapat diadaptasi dan diintegrasikan ke dalam produk digital apa pun (dan bukan hanya).

Kami mulai mengerjakan produk pada tahun 2015. Sekarang ini adalah toolkit yang siap pakai, meskipun belum ideal, untuk Python dan Pandas untuk bekerja dengan data, model pembelajaran mesin dengan api seperti sklearn, alat untuk menafsirkan hasil eli5 dan model pembelajaran mesin shap.

Semua ini dibungkus dengan pustaka open-source yang nyaman di repositori terbuka Github - retentioneering-tools . Menggunakan perpustakaan itu mudah, hampir setiap orang yang menyukai analitik produk, tetapi belum menulis kode sebelumnya, dapat menerapkan metode analitik kami ke data mereka secara mandiri dan tanpa pengeluaran waktu yang signifikan.

Nah, seorang programmer, pencipta aplikasi atau anggota tim pengembangan atau pengujian yang belum pernah terlibat dalam analitik dapat mulai bermain dengan kode ini dan melihat pola menggunakan aplikasinya tanpa bantuan dari luar.

Lintasan pengguna sebagai elemen dasar analisis dan metode untuk pengolahannya


Lintasan pengguna - urutan status pengguna pada titik waktu tertentu. Selain itu, acara dapat berasal dari berbagai sumber data, baik online maupun offline. Peristiwa yang terjadi pada pengguna adalah bagian dari lintasannya. Contoh:
• menekan tombol
• melihat gambar
• tekan layar
• menerima email
• merekomendasikan produk ke teman
• mengisi formulir
• layar yang direkam
• digulir
• pergi ke kasir
• memesan burrito
• makan burrito
• diracuni oleh burrito yang dimakan
• memasuki kafe dari pintu belakang
• masuk dari pintu depan
• meminimalkan aplikasi
• menerima pemberitahuan push
• bodoh di layar untuk waktu yang lebih lama X
• membayar pesanan
• membeli pesanan
• ditolak pinjaman

Jika Anda mengambil data lintasan grup pengguna dan mempelajari bagaimana transisi disusun, Anda dapat melacak bagaimana perilaku mereka dibangun dalam aplikasi. Ini mudah dilakukan melalui grafik di mana status adalah simpul, dan transisi antara keadaan adalah tepi:



"Trajectory" adalah konsep yang sangat mudah - berisi informasi terperinci tentang semua tindakan pengguna, dengan kemungkinan menambahkan data tambahan apa pun ke deskripsi tindakan ini. Ini membuatnya menjadi objek universal. Jika Anda memiliki alat yang cantik dan nyaman yang memungkinkan Anda bekerja dengan jalur, maka Anda dapat menemukan kesamaan, mengelompokkannya.

Segmentasi lintasan pada awalnya mungkin tampak seperti sesuatu yang sangat rumit. Dalam situasi normal, inilah yang terjadi - Anda harus menggunakan perbandingan matriks koneksi atau perataan urutan. Kami berhasil menemukan cara yang lebih mudah - untuk mempelajari sejumlah besar lintasan dan mensegmentasikannya melalui pengelompokan.

Ternyata, Anda dapat mengubah lintasan menjadi titik menggunakan representasi berkelanjutan, misalnya, TF-IDF . Setelah transformasi, lintasan menjadi titik di ruang, di mana kejadian normal dalam lintasan berbagai peristiwa dan transisi di antara keduanya diplot di sepanjang sumbu. Benda ini dari ribuan ruang dimensi besar atau lebih (dimS = jumlah (jenis acara) + jumlah (jenis ngrams_2)) dapat diproyeksikan ke pesawat menggunakan TSNE . TSNE - transformasi, mengurangi dimensi ruang menjadi 2 sumbu dan, jika mungkin, mempertahankan jarak relatif antara titik. Dengan demikian, menjadi mungkin pada peta datar, sebuah peta proyeksi figuratif lintasan, untuk mempelajari bagaimana titik-titik lintasan yang berbeda diatur di antara mereka sendiri. Dianalisa seberapa dekat atau berbeda mereka satu sama lain, apakah mereka membentuk kelompok atau tersebar di sepanjang peta, dll:



Alat analitik retensi memungkinkan untuk mengubah array data dan lintasan yang kompleks menjadi presentasi yang dapat dibandingkan satu sama lain, dan kemudian memeriksa dan menafsirkan hasil transformasi.

Berbicara tentang metode pemrosesan lintasan standar, kita berbicara tentang tiga alat utama yang kami implementasikan dalam Retentioneering - grafik, matriks langkah, dan peta peta proyeksi.

Bekerja dengan Google Analytics, Firebase dan sistem analisis serupa cukup rumit dan tidak 100% efektif. Masalahnya adalah sejumlah pembatasan bagi pengguna, akibatnya pekerjaan analis terletak pada sistem seperti itu dengan klik mouse dan pilihan irisan. Retentioneering memungkinkan untuk bekerja dengan jalur pengguna, dan bukan hanya corong, seperti di Google Analytics, di mana tingkat detail sering kali turun ke corong, meskipun dibuat untuk segmen tertentu.

Retensi dan kasus


Contoh menggunakan alat yang dikembangkan adalah kasus layanan niche besar di Rusia. Perusahaan ini memiliki aplikasi seluler untuk Android, yang populer di kalangan pelanggan. Omset tahunan dari aplikasi mobile adalah sekitar 7 juta rubel, fluktuasi musiman di kisaran 60-130 ribu. Perusahaan yang sama memiliki aplikasi iOS, dan rata-rata cek pengguna aplikasi "apel" lebih tinggi daripada rata-rata cek klien menggunakan aplikasi Android - 1,080 gosok. terhadap 1.300 gosok.

Perusahaan memutuskan untuk meningkatkan efisiensi aplikasi Android, yang melakukan analisis menyeluruh. Beberapa lusin hipotesis dibentuk tentang peningkatan efektivitas aplikasi. Setelah menggunakan Retentionneering, ternyata masalahnya ada di pesan yang diperlihatkan kepada pengguna baru. Mereka menerima informasi tentang merek, manfaat perusahaan, dan harga. Tetapi, ternyata, pesan-pesan itu seharusnya membantu pengguna belajar cara bekerja dalam aplikasi.



Ini dilakukan, akibatnya aplikasi mulai dihapus lebih sedikit, dan peningkatan konversi dalam urutan adalah 23%. Awalnya, 20 persen dari lalu lintas masuk diberikan untuk pengujian, tetapi setelah beberapa hari, setelah menganalisis hasil pertama dan mengevaluasi tren, mereka mengubah proporsi dan, sebaliknya, meninggalkan 20 persen untuk kelompok kontrol, dan delapan puluh dimasukkan ke dalam tes. Seminggu kemudian, diputuskan untuk secara konsisten menambahkan pengujian dua hipotesis lagi. Hanya dalam tujuh minggu, omset dari aplikasi Android meningkat satu setengah kali dibandingkan level sebelumnya.

Bagaimana cara bekerja dengan retensi?


Langkah-langkah pertama cukup sederhana - memuat perpustakaan dengan perintah pip install retentioneering. Repositori itu sendiri berisi contoh siap pakai dan kasus pemrosesan data untuk beberapa tugas analitik produk. Set ini terus diperbarui, sementara itu sudah cukup untuk kenalan pertama. Semua orang dapat mengambil modul yang sudah jadi dan langsung menerapkan tugas mereka - ini memungkinkan Anda untuk segera mengonfigurasi proses analisis yang lebih terperinci dan optimalisasi jalur pengguna secepat dan seefisien mungkin. Semua ini memungkinkan untuk menemukan pola untuk menggunakan aplikasi melalui kode yang jelas dan berbagi pengalaman ini dengan kolega.

Retentioneering adalah alat yang harus digunakan sepanjang umur aplikasi, dan inilah alasannya:
  • Retentioneering efektif untuk melacak dan terus mengoptimalkan jalur pengguna dan meningkatkan kinerja bisnis. Jadi, dalam aplikasi e-commerce sering menambahkan fitur baru, dampaknya pada produk tidak selalu dapat diprediksi dengan benar. Dalam beberapa kasus, masalah kompatibilitas muncul antara fungsi-fungsi baru dan lama - misalnya, yang baru “mengkanibalkan” yang sudah ada. Dan dalam situasi ini, diperlukan analisis lintasan yang konstan.
  • Situasi dengan saluran periklanan serupa: sumber lalu lintas baru dan materi iklan terus diuji, perlu untuk memantau musiman, tren dan pengaruh peristiwa lainnya, yang mengarah pada munculnya kelas masalah baru. Ini juga membutuhkan pemantauan dan interpretasi konstan mekanika khusus.
  • Ada sejumlah faktor yang secara konstan mempengaruhi operasi suatu aplikasi. Misalnya, rilis baru dari pengembang: menutup masalah yang sebenarnya, tanpa disadari mereka mengembalikan yang lama atau membuat yang sama sekali baru. Seiring waktu, jumlah rilis baru terus bertambah, dan proses pelacakan bug perlu diotomatisasi - termasuk melalui analisis lintasan pengguna.

Secara keseluruhan, Retentioneering adalah alat yang efektif. Tetapi tidak ada batasan untuk kesempurnaan - itu dapat dan harus ditingkatkan, dikembangkan, dibangun atas dasar produk-produk keren baru. Semakin aktif komunitas proyek, semakin banyak fork akan ada, opsi menarik baru untuk penggunaannya akan muncul.

Informasi tambahan tentang alat Retentioneering:

Source: https://habr.com/ru/post/id468721/


All Articles