Rasio pentalan butuh satu bit, bukan pelacak
Hingga 28 Agustus situs ini tidak menampilkan rasio pentalan, dan halaman Tentang menyebutkan bahwa itu disengaja: rasio itu memerlukan sesi yang diikuti di beberapa tayangan halaman, dan itu memerlukan banner persetujuan.
Separuh pertama benar. Separuh kedua berhenti benar sejak kami mulai mencatat halaman keluar, dan tidak ada yang memperbarui kalimat itu.
Mengapa ini tidak bisa dihitung begitu saja
Ada sebuah tabel perpindahan dari halaman ke halaman. Tabel itu tampak berisi semua yang dibutuhkan rasio pentalan: kunjungan yang berpindah dari satu halaman ke halaman lain bukan pentalan, jadi hitung saja kunjungan tanpa perpindahan.
Itu tidak berhasil, dan alasannya ada di tiga baris kode pencatatan. Sebuah perpindahan dibuang jika kedua halamannya sama, jika lebih dari tiga puluh menit berlalu di antara keduanya, dan setelah tiga ratus pasangan baru pada satu penghitung dalam satu hari. Setiap aturan itu tepat untuk tujuan tabel tersebut — menunjukkan halaman mana mengarah ke halaman mana — dan setiap aturan membuat halaman kedua yang nyata menjadi tidak terlihat.
Sementara itu, sebuah kunjungan, untuk keperluan penghitungannya, berlangsung satu jam: selama itulah baris di tabel aktif bertahan. Jadi pembilangnya akan memakai satu definisi kunjungan dan penyebutnya definisi lain. Angkanya tidak akan sekadar sedikit keliru, melainkan tidak berpijak pada apa pun.
Apa yang memang dikatakan data
Selama 27 dan 28 Agustus ada 8.669 kunjungan dan 2.817 perpindahan, jadi rata-rata 1,32 halaman per kunjungan. Dari 572 penghitung, hanya 99 yang mencatat perpindahan sama sekali.
Itu bukan karena sakelarnya mati — pencatatan jalur aktif secara bawaan, dan kesemua 166.453 penghitung mengaktifkannya. Situs-situs itu memang hanya satu halaman: halaman profil, situs satu halaman, galeri foto di platform milik orang lain. Rasio pentalan bagi sebagian besar di antaranya akan mendekati seratus persen, dan itu benar.
Satu bit, tanpa pengumpulan data baru
Sebuah kunjungan sudah memiliki satu baris selama satu jam. Kini baris itu memuat satu hal lagi: apakah kunjungan ini pernah melihat halaman kedua yang berbeda. Nilainya disetel di dalam pernyataan yang memang sudah dijalankan, tanpa kueri tambahan:
ON DUPLICATE KEY UPDATE mehr = mehr | (url <> VALUES(url)),
last_seen = UNIX_TIMESTAMP(), url = VALUES(url)
Urutan penugasan itulah seluruh kuncinya. Basis data mengevaluasinya dari kiri ke kanan, sehingga url masih berisi alamat sebelumnya saat perbandingan dijalankan. Letakkan url lebih dulu, maka baris itu membandingkan alamat baru dengan dirinya sendiri, bit-nya tetap nol selamanya, dan rasio pentalan menunjukkan seratus persen untuk semua orang. Itu kegagalan yang tampak persis seperti hasil yang masuk akal, itulah sebabnya hal ini perlu dibuktikan pada baris sekali pakai sebelum dipercaya.
Setelah satu jam lewat, pembersihan malam menghitung baris-baris yang kedaluwarsa — berapa kunjungan, berapa di antaranya yang lebih dari satu halaman — menulis satu baris per penghitung dan hari, lalu menghapus baris-baris itu. Bit itu hidup selama satu jam. Tanpa cookie, dan tidak ada yang bertahan lebih lama darinya.
Yang berlaku secara umum
Pertanyaan yang menarik tidak pernah soal cara melacak sesi. Pertanyaannya adalah hal mana di antara yang sudah kami catat yang kebetulan menjawab pertanyaan itu, dan apakah jawaban yang diberikannya berpijak pada definisi yang sama dengan pertanyaannya.
Dua sumber yang sama-sama tampak mengukur kunjungan, yang satu dengan aturan tiga puluh menit dan yang lain dengan aturan enam puluh menit, akan menghasilkan rasio yang berupa angka tetapi tidak berarti apa-apa. Menambahkan satu bit ke baris yang sudah ada lebih mudah daripada menjelaskan, di kemudian hari, mengapa rasionya seperti itu.