Engsel memungkinkan pengguna untuk meminta ekspor data pribadi mereka yang dikumpulkan saat mereka menggunakan aplikasi. Jika Anda memiliki akun Engsel, Anda dapat meminta data Anda dengan membuka Pengaturan -> Unduh Data Saya. Biasanya diperlukan waktu antara 24 dan 48 jam untuk memenuhi permintaan ini, dan setelah data siap, Engsel menyediakan file .zip
dengan data pribadi Anda.
Ekspor data yang disediakan oleh Engsel berisi beberapa file, namun yang utama adalah file index.html
, yang digunakan untuk merender halaman web dengan tab yang menampilkan data berbeda. Tab yang disediakan oleh Engsel diberi label: Pengguna, Kecocokan, Anjuran, Media, Langganan, Awal Baru, dan Verifikasi Selfie. Selain melihat perubahan pada petunjuk Anda atau melihat gambar mana yang telah Anda unggah, data ini tidak terlalu berguna, terutama pada tab Kecocokan yang seharusnya menjadi bagian paling menarik.
Tab Kecocokan di ekspor Engsel berisi daftar "Kecocokan", atau lebih tepatnya "interaksi" sebagaimana saya menyebutnya dalam proyek ini, seperti ini:
Cocokkan #1 22-01-2024 20:13:22 Suka
Cocokkan #2 23-01-2024 20:15:42 Suka
Pertandingan #3 23-01-2024 20:37:27 Pertandingan
23-01-2024 20:39:45 Obrolan: Halo Dunia!
23-01-2024 21:49:26 Hapus
Daftar Kecocokan yang disediakan oleh Engsel menyisakan banyak hal yang diinginkan, itulah sebabnya saya memutuskan untuk membangun proyek ini dengan menganalisis dan memvisualisasikan wawasan menarik dari ekspor data Engsel.
Aplikasi ini adalah aplikasi Dash Plotly multi halaman yang berjalan di container Docker pada port 8050
. Buat image build Docker dengan: docker compose build
dan jalankan aplikasi dengan: docker compose up -d
. Aplikasi ini akan tersedia di http://0.0.0.0:8050/. Untuk menurunkan container, gunakan docker compose down
.
Halaman tersebut akan ditampilkan dengan informasi tentang aplikasi dan instruksi tentang cara menggunakannya.
Bagian "Unggah File" memungkinkan pengguna mengunggah file matches.json
atau user.json
untuk dianalisis. Saat ini, program mengharapkan file tersebut diberi nama matches.json
atau user.json
, karena keduanya dalam ekspor yang disediakan oleh Engsel. Setelah file dipilih, nama file yang diunggah akan ditampilkan di bawah kotak unggah.
Bagian "Data Insights" berisi link untuk menampilkan halaman dengan data terkait data pencocokan atau data pengguna. Klik "Kecocokan" atau "Pengguna" untuk menampilkan informasi dan grafik untuk topik mana pun. Visualisasi awalnya akan ditampilkan sebagai grafik kosong hingga file telah diunggah dan grafik telah dimuat ulang. Mengklik tombol "Muat Ulang Grafik" akan membuat ulang grafik dengan data yang diunggah.
Halaman analisis pertandingan berisi beberapa grafik yang menunjukkan berbagai aspek data pertandingan. Engsel hanya menyediakan data tentang tindakan pengguna untuk alasan privasi, sehingga sebagian besar data berkaitan dengan cara pengguna berinteraksi dengan pengguna lain.
Grafik pertama adalah Corong Interaksi , yang merupakan visualisasi berbagai jenis interaksi yang terjadi antara pengguna dengan pengguna lainnya. Bagian terluar dari corong "Interaksi Berbeda" adalah jumlah total interaksi unik yang terjadi. Ini adalah kombinasi suka yang diterima pengguna dan tidak dibalas, suka yang dikirim pengguna dan tidak dibalas, serta suka yang dikirim pengguna yang mengarah ke kecocokan dan obrolan.
Corong adalah cara yang baik untuk melihat berapa banyak interaksi yang dimulai oleh pengguna dan berapa banyak yang mengarah pada kecocokan dan percakapan.
Bagian Suka Keluar yang Anda Kirim berisi bagan yang menjelaskan lebih detail tentang suka keluar pengguna. Bagan pertama menunjukkan pengguna pada aplikasi yang disukai pengguna lebih dari satu kali. Skenario ini membingungkan, karena tidak jelas bagaimana hal ini bisa terjadi, namun jarang terjadi pada data. Diagram lingkaran kedua di sebelah kanan menunjukkan rasio berapa banyak suka yang dikirim pengguna dengan komentar.
Di bawah diagram lingkaran, terdapat tabel bernama Apa yang Anda Komentari Saat Anda Menyukai Konten Seseorang , yang menampilkan komentar yang ditinggalkan pengguna di profil pengguna lain saat pengguna menyukainya. Tabel ini berguna untuk melihat apa yang dikatakan pengguna kepada pengguna lain saat mereka menyukainya.
Bagian berikutnya Frekuensi Jenis Tindakan menurut Hari , menunjukkan frekuensi berbagai tindakan yang dilakukan pengguna pada aplikasi menurut hari. Ini berguna untuk melihat pola aktivitas dan waktu paling aktif di aplikasi.
Setelah itu, ada diagram lingkaran berjudul Berapa Banyak Orang yang Anda Berikan Nomor Anda? , yang menunjukkan hal itu. Dari semua interaksi yang dilakukan pengguna yang mengarah ke chat, grafik ini menunjukkan rasio berapa banyak chat yang menyebabkan pengguna memberikan nomor teleponnya. Ini beroperasi dengan asumsi bahwa pengguna membagikan nomor teleponnya dalam salah satu format umum yang tercantum di bawah.
Bagian terakhir dari Analisis Pencocokan menunjukkan Pesan Keluar per Obrolan . Grafik batang ini merupakan distribusi berapa banyak pesan yang dikirim oleh pengguna dalam setiap interaksi pertukaran pesan. Ini berguna untuk melihat rata-rata durasi percakapan pengguna dengan orang lain.
Tab ini sedang dibangun dan akan tersedia pada rilis mendatang.
Engsel mengubah dan memperbarui skema ekspor data dari waktu ke waktu, dan hal itu mungkin merusak atau tidak merusak kode analisis saat ini dan membuat semuanya menjadi usang. Sejauh ini, saya belum mengalami perubahan skema apa pun yang merusak kode saya, tetapi saya berasumsi bahwa seiring berjalannya waktu, perubahan akan terjadi dan segala sesuatunya tidak akan berfungsi lagi. Saya belum menemukan cara untuk tetap mengetahui perubahan skema mereka saat ini.
Karena tidak ada dokumentasi yang disediakan oleh Engsel, berikut beberapa asumsi yang saya buat tentang data tersebut:
where block_type = 'remove'
) dapat mengarah ke salah satu arah, artinya blok tersebut dapat mewakili seseorang yang menghapus kecocokan dengan pengguna, atau dapat mewakili pengguna yang menghapus blok tersebut dengan orang lainAda beberapa kemungkinan skenario yang terjadi dalam data ekspor yang disebut Engsel sebagai "kecocokan". Ini tidak semuanya "kecocokan", karena beberapa peristiwa hanyalah suka yang tidak dibalas. Inilah sebabnya saya menyebutnya sebagai interaksi , di mana interaksi mewakili pertemuan (suka, kecocokan, obrolan, blokir) yang terjadi antara pengguna dan orang lain.
Berikut adalah berbagai skenario interaksi yang terjadi dalam data:
Menyukai | Cocok | Obrolan | Memblokir | Arti |
---|---|---|---|---|
X | Pengguna mengirim pesan keluar, orang tersebut tidak menyukainya kembali | |||
X | X | X | Pengguna mengirim suka keluar, orang lain membalasnya, setidaknya satu pesan dipertukarkan | |
X | X | Pengguna menerima suka yang masuk, pengguna membalas menyukai orang lain dan setidaknya satu pesan dipertukarkan | ||
X | Kecocokan telah dihapus atau "tidak cocok", tidak dapat membedakan siapa yang tidak cocok dengan siapa. Untuk beberapa alasan, banyak di antaranya ada tanpa informasi lain dan tidak ada cara untuk mengetahui interaksi mana yang awalnya terkait | |||
X | X | Pengguna menerima suka yang masuk, pengguna membalas menyukai orang lain, tidak ada pesan yang dipertukarkan, dan kecocokan dihapus |
Saya memiliki daftar panjang penyempurnaan dan perbaikan yang ingin saya lakukan pada aplikasi agar lebih baik. Untuk melihat apa yang ada di dek, lihat tab Proyek di repo.