Retensi: cara kami menulis alat sumber terbuka untuk analisis produk dengan Python dan Pandas

Halo, Habr. Artikel ini dikhususkan untuk hasil empat tahun pengembangan serangkaian metode dan alat untuk memproses lintasan pergerakan pengguna dalam suatu aplikasi atau situs web. Penulis pengembangan - Maxim Godzi, yang mengepalai tim pembuat produk dan juga penulis artikel. Produknya sendiri bernama Retentioneering; kini telah diubah menjadi perpustakaan sumber terbuka dan diposting di Github sehingga siapa pun dapat menggunakannya. Semua ini mungkin menarik bagi mereka yang terlibat dalam analisis produk dan pemasaran, promosi dan pengembangan produk. Omong-omong, di HabrΓ© sebuah artikel telah diterbitkan tentang salah satu kasus bekerja dengan Retentioneering. Materi baru ini menjelaskan fungsi produk dan cara penggunaannya.

Setelah membaca artikel ini, Anda sendiri akan dapat menulis Retentioneering Anda sendiri; ini bisa berupa metode standar apa pun untuk memproses lintasan pengguna dalam aplikasi dan seterusnya, memungkinkan Anda melihat secara detail karakteristik perilaku dan mengekstraksi wawasan darinya untuk pertumbuhan metrik bisnis.

Apa itu Retentioneering dan mengapa diperlukan?

Tujuan awal kami adalah memindahkan Growth Hacking dari dunia β€œilmu sihir digital” ke dunia angka, analitik, dan perkiraan. Sebagai konsekuensinya, analisis produk direduksi menjadi matematika murni dan pemrograman bagi mereka yang lebih menyukai angka daripada cerita fantastis, dan rumus menjadi kata kunci seperti β€œrebranding”, β€œrepositioning”, dll., yang kedengarannya bagus, namun dalam praktiknya tidak banyak membantu.

Untuk mengatasi masalah ini, kami memerlukan kerangka kerja analisis melalui grafik dan lintasan, dan pada saat yang sama perpustakaan yang menyederhanakan rutinitas analis yang umum, sebagai cara untuk menggambarkan tugas analisis produk reguler yang dapat dipahami oleh manusia dan robot. Perpustakaan menyediakan kemampuan untuk mendeskripsikan perilaku pengguna dan menghubungkannya dengan metrik bisnis produk dalam bahasa yang formal dan jelas sehingga menyederhanakan dan mengotomatiskan tugas rutin pengembang dan analis, serta memfasilitasi komunikasi mereka dengan bisnis.

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

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

Semuanya sudah terbungkus ke perpustakaan sumber terbuka yang nyaman di repositori Github terbuka - alat retensi. Menggunakan perpustakaan ini tidaklah sulit; hampir semua orang yang menyukai analisis produk, namun belum pernah menulis kode sebelumnya, dapat menerapkan metode analisis kami pada data mereka secara mandiri dan tanpa investasi waktu yang signifikan.

Nah, seorang programmer, pembuat aplikasi, atau anggota tim pengembangan atau pengujian yang belum pernah melakukan analisis sebelumnya dapat mulai bermain-main dengan kode ini dan melihat pola penggunaan aplikasi mereka tanpa bantuan dari luar.

Lintasan pengguna sebagai elemen dasar analisis dan metode pengolahannya

Lintasan pengguna adalah urutan status pengguna pada titik waktu tertentu. Apalagi peristiwa bisa berasal dari sumber data yang berbeda, baik online maupun offline. Peristiwa yang terjadi pada pengguna adalah bagian dari lintasannya. Contoh:
β€’ menekan tombol
β€’ melihat gambarnya
β€’ menekan layar
β€’ menerima email
β€’ merekomendasikan produk tersebut ke teman
β€’ mengisi formulir
β€’ mengetuk layar
β€’ menggulir
β€’ pergi ke kasir
β€’ memesan burrito
β€’ makan burrito
β€’ keracunan karena memakan burrito
β€’ memasuki kafe dari pintu belakang
β€’ masuk dari pintu depan
β€’ meminimalkan aplikasi
β€’ menerima pemberitahuan push
β€’ terjebak di layar lebih lama dari X
β€’ membayar pesanan
β€’ membeli pesanan tersebut
β€’ ditolak pinjamannya

Jika Anda mengambil data lintasan sekelompok pengguna dan mempelajari bagaimana transisi disusun, Anda dapat melacak dengan tepat bagaimana perilaku mereka dalam aplikasi disusun. Lebih mudah untuk melakukan ini melalui grafik di mana negara bagian adalah node, dan transisi antar negara bagian adalah sisinya:

Retensi: cara kami menulis alat sumber terbuka untuk analisis produk dengan Python dan Pandas

"Lintasan" adalah konsep yang sangat mudah digunakan - berisi informasi terperinci tentang semua tindakan pengguna, dengan kemampuan untuk menambahkan data tambahan apa pun ke deskripsi tindakan ini. Hal ini menjadikannya objek universal. Jika Anda memiliki alat cantik dan nyaman yang memungkinkan Anda bekerja dengan lintasan, Anda dapat menemukan kesamaan dan mengelompokkannya.

Segmentasi lintasan mungkin tampak sangat rumit pada awalnya. Dalam situasi normal, hal ini terjadi - Anda perlu menggunakan perbandingan matriks konektivitas atau penyelarasan urutan. Kami berhasil menemukan cara yang lebih sederhana - mempelajari sejumlah besar lintasan dan mengelompokkannya melalui pengelompokan.

Ternyata, mengubah lintasan menjadi suatu titik dapat dilakukan dengan menggunakan representasi kontinu, misalnya, TF-IDF. Setelah transformasi, lintasan menjadi suatu titik dalam ruang di mana kemunculan berbagai peristiwa yang dinormalisasi dan transisi di antara peristiwa-peristiwa tersebut dalam lintasan diplot sepanjang sumbu. Benda dari ruang berdimensi ribuan atau lebih ini (dimS=sum(tipe peristiwa)+jumlah(tipe ngrams_2)) dapat diproyeksikan ke bidang menggunakan TSNE. TSNE adalah transformasi yang mereduksi dimensi ruang menjadi 2 sumbu dan, jika memungkinkan, mempertahankan jarak relatif antar titik. Oleh karena itu, pada peta datar, peta proyeksi kiasan lintasan, menjadi mungkin untuk mempelajari bagaimana titik-titik lintasan yang berbeda ditempatkan satu sama lain. Ini menganalisis seberapa dekat atau berbedanya mereka satu sama lain, apakah mereka membentuk kelompok atau tersebar di seluruh peta, dll.:

Retensi: cara kami menulis alat sumber terbuka untuk analisis produk dengan Python dan Pandas

Alat analitik retensi memberikan kemampuan untuk mengubah data dan lintasan yang kompleks menjadi tampilan yang dapat dibandingkan satu sama lain, dan kemudian hasil transformasi dapat diperiksa dan diinterpretasikan.

Berbicara tentang metode standar untuk memproses lintasan, yang kami maksud adalah tiga alat utama yang telah kami terapkan dalam Retentioneering - grafik, matriks langkah, dan peta proyeksi lintasan.

Bekerja dengan Google Analytics, Firebase, dan sistem analisis serupa cukup rumit dan tidak 100% efektif. Masalahnya adalah sejumlah batasan bagi pengguna, akibatnya pekerjaan analis dalam sistem tersebut bergantung pada klik mouse dan pemilihan irisan. Retensi memungkinkan untuk bekerja dengan lintasan pengguna, dan tidak hanya dengan corong, seperti di Google Analytics, di mana tingkat detail sering kali direduksi menjadi corong, meskipun dibuat untuk segmen tertentu.

Retensi dan kasus

Sebagai contoh penggunaan alat yang dikembangkan, kita dapat mengutip kasus layanan khusus yang besar di Rusia. Perusahaan ini memiliki aplikasi seluler Android yang populer di kalangan pelanggan. Omset tahunan dari aplikasi seluler adalah sekitar 7 juta rubel, fluktuasi musiman berkisar antara 60-130 ribu Perusahaan yang sama juga memiliki aplikasi untuk iOS, dan tagihan rata-rata pengguna aplikasi Apple lebih tinggi daripada tagihan rata-rata pengguna aplikasi Apple. klien menggunakan aplikasi Android - 1080 gosok. versus 1300 gosok.

Perusahaan memutuskan untuk meningkatkan efisiensi aplikasi Android dan melakukan analisis menyeluruh. Beberapa lusin hipotesis dihasilkan tentang peningkatan efektivitas penerapan. Setelah menggunakan Retentionneering, ternyata masalahnya ada pada pesan yang ditampilkan kepada pengguna baru. Mereka menerima informasi tentang merek, manfaat perusahaan dan harga. Namun, ternyata, pesan-pesan tersebut seharusnya membantu pengguna mempelajari cara bekerja dalam aplikasi.

Retensi: cara kami menulis alat sumber terbuka untuk analisis produk dengan Python dan Pandas

Hal ini dilakukan, sehingga aplikasi menjadi lebih sedikit di-uninstall, dan peningkatan konversi ke pesanan sebesar 23%. Pada awalnya, 20 persen lalu lintas masuk diberikan untuk pengujian, tetapi setelah beberapa hari, setelah menganalisis hasil pertama dan menilai trennya, mereka membalikkan proporsinya dan, sebaliknya, menyisakan 20 persen untuk kelompok kontrol, dan delapan puluh persen ditempatkan dalam ujian. Seminggu kemudian, diputuskan untuk menambahkan pengujian dua hipotesis lagi secara berurutan. Hanya dalam waktu tujuh minggu, omzet dari aplikasi Android meningkat satu setengah kali lipat dibandingkan level sebelumnya.

Bagaimana cara bekerja dengan Retensi?

Langkah pertama cukup sederhana - unduh perpustakaan dengan perintah pip install retensieering. Repositori itu sendiri berisi contoh dan kasus pemrosesan data yang sudah jadi untuk beberapa tugas analisis produk. Set ini terus diperbarui hingga cukup untuk kenalan pertama. Siapa pun dapat mengambil modul yang sudah jadi dan segera menerapkannya pada tugas mereka - ini memungkinkan mereka untuk segera mengatur proses analisis yang lebih rinci dan optimalisasi lintasan pengguna secepat dan seefisien mungkin. Semua ini memungkinkan untuk menemukan pola penggunaan aplikasi melalui kode yang jelas dan berbagi pengalaman ini dengan rekan kerja.

Retentioneering adalah alat yang layak digunakan sepanjang masa pakai aplikasi Anda, dan inilah alasannya:

  • Retensi efektif untuk melacak dan terus mengoptimalkan lintasan pengguna serta meningkatkan kinerja bisnis. Oleh karena itu, fitur-fitur baru sering kali ditambahkan ke aplikasi e-niaga, yang dampaknya terhadap produk tidak selalu dapat diprediksi dengan benar. Dalam beberapa kasus, masalah kompatibilitas muncul antara fungsi baru dan lama - misalnya, fungsi baru β€œmengkanibal” fungsi yang sudah ada. Dan dalam situasi ini, analisis lintasan yang konstan adalah hal yang dibutuhkan.
  • Situasi serupa terjadi ketika bekerja dengan saluran periklanan: sumber lalu lintas baru dan materi iklan periklanan terus-menerus diuji, perlu untuk memantau musim, tren, dan pengaruh peristiwa lain, yang mengarah pada munculnya semakin banyak kelas masalah baru. Hal ini juga memerlukan pemantauan dan interpretasi yang konstan terhadap mekanisme pengguna.
  • Ada sejumlah faktor yang secara konstan mempengaruhi kinerja suatu aplikasi. Misalnya, rilis baru dari pengembang: menutup masalah saat ini, tanpa disadari mereka mengembalikan masalah lama atau membuat masalah yang benar-benar baru. Seiring waktu, jumlah rilis baru bertambah, dan proses pelacakan kesalahan perlu diotomatisasi, termasuk dengan menganalisis lintasan pengguna.

Secara keseluruhan, Retentioneering adalah alat yang efektif. Namun kesempurnaan tidak ada batasnya - kesempurnaan dapat dan harus ditingkatkan, dikembangkan, dan produk-produk baru yang keren dibangun berdasarkan kesempurnaan tersebut. Semakin aktif komunitas proyek, semakin banyak cabang yang ada, dan opsi baru yang menarik untuk menggunakannya akan muncul.

Informasi lebih lanjut tentang alat Retensi:

Sumber: www.habr.com

Tambah komentar