قصة Yandex.Metrika ReachGoal ، الفتاة ليدا وأنه لا توجد مشاكل غير قابلة للذوبان
العالم ناقص ، الشبكة العالمية غير كاملة. في بعض الأحيان ، يمكنك أن تغمض عينيك عن هذا. ولكن ليس فقط عندما تقف فتاة جميلة تدعى ليدا من "قسم التسويق" أمامك وتنظر إلى عينيك وتطرح السؤال: "لسبب ما ، في Y. Metrica ، تختلف البيانات التي أراها في مسار التحويل عن تلك وهو ما أراه في نظامنا المحاسبي. ولدينا المزيد من الطلبات. "
نظرًا لأن البنات ذات العيون الجميلة يجب أن تكون محبوبة ومحبوبة بكل طريقة ممكنة ، فقد تقرر ربط تسجيل الأحداث التي تحدث مع العملاء أثناء عملية الطلب.
لا سيما إذا كنت لا تأمل في الحصول على أي تأثير مثير للاهتمام ، وبالتالي ليس بحكمة ، فقد تمت إضافة خدمة بسرعة تسجل الأحداث التي تحدث على الواجهة الأمامية في متصفحات زوار موقعنا.
بادئ ذي بدء ، كنا مهتمين بالأحداث التي يمكن أن تحدث أثناء تنفيذ كود Y. Metrica ، أي yaCounterXXXXXX.reachGoal ().
لذلك ، أنشأنا في كل مكان حيث نحتاج إلى الاستثناء وإرسال هذه الأحداث إلى الخادم:
try { yaCounterXXXXXX.reachGoal("EVENT_XXX"); } catch(e) { $.get("/front/service/event", {event: "YM-warning", goal: " EVENT_XXX ", message: e.message}); }
مع مرور الوقت ، نتذكر أننا ألقينا قصبة الصيد ، لكننا لم نتحقق من المصيد.
نذهب إلى إلقاء نظرة على السجلات ، وللدهشة لدينا نرى ما يلي تقريبا:
[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] ...
وأظهر حساب سريع أن حوالي 3..4..5 ٪ من الأحداث في سلة تمر Y. Metrika. كان ليدا على حق. وبما أن الفتاة على حق ، يجب القيام بشيء ما. رغم أنه عندما تكون الفتاة مخطئة ، فأنت لا تزال بحاجة إلى القيام بشيء ما.
نبدأ في البحث عن سبب. يتم تعيين العداد بشكل صحيح ، يتم تسجيل الغالبية العظمى من الأحداث بها بشكل صحيح. نحن نحاول غوغل وجود مشاكل مماثلة بين الزملاء في ورشة العمل. لم يتم العثور على شيء من هذا القبيل.
ردت Yandex TechSupport بحرف يحتوي على رابط إلى الوثائق لتثبيت العداد المتري ، والذي ، بالطبع ، بفضلهم منفصل ودافئ!
لن أصف كل الفرضيات التي جربناها. خلاصة القول هي أنه في الوقت الذي تم فيه تحميل الصفحة ، لم يتم تحميل رمز عداد Yandex.Metrica في متصفح العميل ولم تتم تهيئة هناك. قد يكون هناك مانع للإعلانات و / أو متعقبات التتبع ، وقد تكون هناك بعض مشاكل الشبكة بين العميل وخادم Yandex (هذا غير محتمل).
اضطررت إلى أخذ Lida بأيديها ، والنظر في عينيها القاعتين وأقول على مضض الحقيقة القاسية: "Lida ، سيتعين علينا أن نتعرف على حقيقة أن بعض زوار موقعنا لن يحصلوا على أحداث" وضع / رفض تقديم طلب "في Y. Metrika. لكن بالتأكيد سنأتي بشيء ما ".
مر الصيف ، وكان الخريف يقترب من نهايته ، عندما ظهر ليدا مرة أخرى على عتبة المكتب. في عيونها المليئة بالدموع ، أصبح من الواضح أن تلك الفائدة المؤسفة التي تمر بها منعتها من تقديم تقارير جميلة لرؤسائها وبالتالي الحصول على مكافأة سنوية ، والتي أدرجتها بالفعل في ميزانيتها لرحلات إلى تايلاند لقضاء عطلة رأس السنة الجديدة.
ارتعد القلب. تم تجميع الفريق بأكمله من المجموعة الأمامية ، وفي
شكل صعب أمر "الحفر من هنا حتى الغداء!" تم تعيين المهمة لحل هذه المشكلة بأي وسيلة! ليس هذا !!! خلاف ذلك ، لن يكون Lida قادراً على الذهاب إلى تايلاند ...
لم ترغب Frontend في الحفر لفترة طويلة وتم تقديم حل سريع على الفور تقريبًا:
يمكن رؤية نتيجة هذا القرار على الرسم البياني ، وهذا تحليل لسجل الأحداث ذاته كما ترون ، انخفض عدد الأخطاء إلى 0 تقريبًا
إذا لم تكن قد تحقق بعد من نجاح تنزيل البرامج النصية Yandex.Metrica على موقعك ، فتأكد من التحقق. الاكتشافات المثيرة للاهتمام قد تنتظرك أيضًا.
إخلاء المسئولية: لديّ فهم بأن الحل أعلاه بعيد عن الحل الأمثل. سأكون سعيدًا لسماع الأفكار والآراء حول هذا الموضوع.