Kisah tentang Yandex.Metrika ReachGoal, gadis Lida dan bahwa tidak ada masalah yang tak terpecahkan
Dunia tidak sempurna, web di seluruh dunia bahkan lebih tidak sempurna. Terkadang, Anda bisa menutup mata terhadap hal ini. Tetapi tidak hanya ketika seorang gadis cantik bernama Lida dari "departemen pemasaran" berdiri di depan Anda, menatap ke mata Anda dan mengajukan pertanyaan: "Untuk beberapa alasan, di Y. Metrica, data yang saya lihat dalam urutan corong berbeda dari yang ada yang saya lihat di sistem akuntansi kami. Dan kami memiliki lebih banyak pesanan. "
Karena gadis-gadis dengan mata yang cantik harus dicintai dan dihargai dengan segala cara yang memungkinkan, diputuskan untuk menghubungkan pencatatan peristiwa yang terjadi dengan klien selama proses pemesanan mereka.
Terutama tidak mengharapkan efek yang menarik dan karenanya tidak dengan bijak licik, sebuah layanan ditambahkan dengan cepat yang merekam peristiwa yang terjadi di frontend di browser pengunjung ke situs kami.
Pertama-tama, kami tertarik pada peristiwa yang dapat terjadi selama eksekusi kode Y. Metrica, yaitu yaCounterXXXXXX.reachGoal ().
Jadi, kami mengatur di mana-mana di mana kami perlu menangkap pengecualian dan mengirim acara ini ke server:
try { yaCounterXXXXXX.reachGoal("EVENT_XXX"); } catch(e) { $.get("/front/service/event", {event: "YM-warning", goal: " EVENT_XXX ", message: e.message}); }
Waktu berlalu, kami ingat bahwa kami melemparkan pancing, tetapi tidak memeriksa tangkapannya.
Kami pergi untuk melihat log, dan kami terkejut kami melihat ada kira-kira berikut ini:
[2018-04-17 09:04:51.431] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36] [2018-04-17 09:09:18.082] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:21.369] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:24.990] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:27.001] [] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:12:44.778] [ORDER_CREATED] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] ...
Perhitungan cepat menunjukkan bahwa sekitar 3..4..5% dari peristiwa dalam keranjang dilewati oleh Y. Metrika. Lida benar. Dan karena gadis itu benar, sesuatu harus dilakukan. Meskipun ketika gadis itu salah, maka Anda masih perlu melakukan sesuatu.
Kami mulai mencari alasan. Penghitung diatur dengan benar, sebagian besar peristiwa dicatat oleh mereka dengan benar. Kami mencoba untuk google keberadaan masalah serupa di antara rekan-rekan di bengkel. Tidak ada yang ditemukan.
Yandex TechSupport membalas dengan surat yang berisi tautan ke dokumentasi untuk memasang penghitung metrik, yang tentu saja, terima kasih yang terpisah dan hangat untuk mereka!
Saya tidak akan menjelaskan semua hipotesis yang telah kami coba. Intinya adalah bahwa pada saat halaman dimuat, kode penghitung Yandex.Metrica tidak dimuat ke browser klien dan tidak diinisialisasi di sana. Ini mungkin pemblokir iklan dan / atau pelacak pelacakan, mungkin ada beberapa masalah jaringan antara klien dan server Yandex (ini tidak mungkin).
Saya harus mengambil tangan Lida, menatap matanya yang tak berdasar dan dengan enggan mengatakan kebenaran yang keras: "Lida, kita harus menerima kenyataan bahwa beberapa pengunjung ke situs kami tidak akan mendapatkan acara" memesan / menolak untuk memesan "di Y. Metrika. Tapi kami pasti akan menemukan sesuatu. "
Musim panas berlalu, dan musim gugur hampir berakhir, ketika Lida muncul lagi di ambang kantor. Di matanya yang berlinangan air mata, menjadi jelas bahwa ketertarikan yang disayangkan itu menghalanginya untuk tidak menunjukkan laporan yang indah kepada atasannya dan dengan demikian mendapatkan bonus tahunan, yang sudah termasuk dalam anggarannya untuk perjalanan ke Thailand untuk liburan Tahun Baru.
Jantungnya bergetar. Seluruh tim dari kelompok ujung depan berkumpul, dan
dalam kondisi yang sulit diperintahkan untuk "menggali dari sini sampai makan siang!" tugas telah diatur untuk menyelesaikan masalah ini dengan cara apa pun! Bukan itu !!! Kalau tidak, Lida tidak akan bisa pergi ke Thailand ...
Frontend tidak ingin menggali untuk waktu yang lama dan solusi cepat ditawarkan segera:
Hasil keputusan ini dapat dilihat pada grafik, ini adalah analisis dari log peristiwa yang sangat Seperti yang Anda lihat, jumlah kesalahan turun menjadi hampir 0
Jika Anda belum memverifikasi keberhasilan mengunduh skrip Yandex.Metrica di situs Anda, pastikan untuk memeriksa. Penemuan menarik mungkin menanti Anda juga.
Penafian: Saya memiliki pemahaman bahwa solusi di atas masih jauh dari optimal. Saya akan senang mendengar pemikiran dan pendapat tentang masalah ini.