كيفية تعزيز المبيعات وولاء العملاء من خلال إصلاح الأخطاء في صفحة الخروج
نشرت: 2022-05-25في العالم الرقمي الحديث سريع التطور ، يعتمد العملاء على الفرص عبر الإنترنت التي تقدمها الشركات ويتوقعون ألا يقل كل شيء عن الكمال. بعد أن واجهوا أي أخطاء في رحلة عملائهم ، سيتذكر هؤلاء العملاء الخدمة السيئة ويفضلون البحث عن منتجات / خدمات بديلة. لهذا السبب من المهم جدًا منع أي صعوبات ومراقبة أداء العمل باستمرار.
في هذه الحالة ، نصف الحل الذي قدمه فريق OWOX BI لمتاجر تجزئة للإلكترونيات الاستهلاكية والأجهزة المنزلية واجه تحديات في إصلاح الأخطاء في صفحة الخروج لزيادة المبيعات وولاء العملاء.
جدول المحتويات
- تحد
- هدف
- المحلول
- الخطوة 1. اجمع بيانات حول الأخطاء
- الخطوة 2. معالجة البيانات
- الخطوة 3. استخدم البيانات التي تم الحصول عليها
- نتائج
تحد
يزور حوالي 700000 شخص موقع بائع التجزئة يوميًا لقراءة مراجعات المنتج أو التصفح للعثور على ما يرغبون في شرائه. ومع ذلك ، قد يواجه المستخدمون أحيانًا أخطاء في موقع الويب في صفحة الخروج تمنعهم من إكمال طلب عبر الإنترنت ، مما يقلل من إيرادات الشركة.
هدف
درس المحللون والمختبرين بعناية شكاوى العملاء لتحديد سيناريوهات الخطأ النموذجية. تم إصلاح الأخطاء التي تمكن المتخصصون من إعادة إنتاجها. تتطلب بقية الأخطاء الحرجة مراقبة الإعداد. في السابق ، لم تكن الشركة تستخدم لجمع مثل هذه البيانات ، وظلت غير قادرة على تقييم العدد الدقيق للأخطاء وكيفية تأثيرها على معدلات التحويل. احتاجت الشركة أيضًا إلى معرفة كيفية اتصال كل خطأ بمستخدم معين ، لمساعدة المستخدم في تقديم طلب.
اختار المحللون إعداد مراقبة للأخطاء الحرجة على الموقع ويبذلون قصارى جهدهم لمساعدة العملاء على تقديم الطلبات بنجاح في صفحة الخروج. سيؤدي ذلك إلى زيادة المبيعات وتحسين تجربة موقع العميل. كان العامل الصعب هو أن المراقبة في الوقت الفعلي كانت مطلوبة حتى لا تفقد أيًا من العملاء الذين يحاولون حاليًا طلب شيء ما على الموقع.
المحلول
تم إعداد الخطة التالية للوصول إلى الهدف:
- ضع الرمز الإضافي على موقع الويب لجمع البيانات حول الأخطاء وإرسالها إلى Google BigQuery.
- معالجة البيانات التي تم الحصول عليها وتصديرها إلى الجدول مع الهيكل حسب احتياجات الشركة.
- تنظيم إرسال البيانات حول المستخدمين والأخطاء إلى مراكز الاتصال التي ستتواصل مع العملاء لمساعدتهم في تقديم طلب.
إليك كيف يبدو تدفق بيانات الشركة:

الخطوة 1. اجمع بيانات حول الأخطاء
تستخدم الشركة Google Tag Manager لتتبع ما يفعله المستخدمون عبر الإنترنت. على الرغم من ذلك ، لا يمكن تتبع جميع الأخطاء المنطقية على موقع الويب بطرق Google Tag Manager القياسية. هذا هو السبب وراء كتابة النصوص البرمجية المخصصة وتنفيذها على وجه التحديد من خلال Google Tag Manager على صفحات موقع الويب الضرورية. تضيف البرامج النصية بيانات الخطأ التفصيلية إلى DataLayer .
بعد ذلك ، بمساعدة علامات Google Tag Manager ، تنتقل بيانات الخطأ إلى Google BigQuery من خلال OWOX BI Pipeline. يتيح ذلك الحصول على بيانات أولية غير مستندة إلى عينات من موقع الويب في Google BigQuery ، في الوقت الفعلي تقريبًا.
باستخدام واجهة برمجة التطبيقات ، يرسل المحللون البيانات حول المستخدمين من CRM إلى Google BigQuery ، للحصول على جميع البيانات التي يحتاجونها في مستودع البيانات السحابية:
- وقت الخطأ.
- نوع الخطأ.
- معرف المستخدم.
- عنوان البريد الإلكتروني للمستخدم.
- مدينة المستخدم.
- حالة المنتج الحالية في سلة التسوق.
الخطوة 2. معالجة البيانات
باستخدام OWOX BI Pipeline ، تم الحصول على جداول البيانات مع مجموعة واسعة من المعلمات. قام محللو OWOX BI بإنشاء استعلام SQL لسحب البيانات من الجدول ، وإعادتها بهيكل محدد: مجموعة من السطور حيث كل سطر يساوي خطأ واحد.
فيما يلي مثال استعلام SQL:
Select date, hour,minute, email, description, City, productIds, productnames, productprice, cartquantity, cartamount, From ( SELECT usererrors.date as date, usererrors.hour as hour, usererrors.minute as minute, usererrors.userEmail as email, usererrors.action as action, usererrors.error as error, case when action = 'disabled' and error = 'buttonCreateOrder' then 'Unable to checkout in cart' when action = 'notAdded' and error = 'productToCart' then 'Unable to add product to cart' when action = 'open' and error = 'emptyCart' then 'Product can not be viewed in cart' when action = 'open' and error = 'HoldingPageCheckout' then 'Maintenance work in progress (after checkout)' when action = 'absent' and error = ƋdiscountCart' then Ƌ% discount unavailable online (in cart)' when action = 'absent' and error = ƋdiscountCheckout' then Ƌ% discount unavailable online (at the checkout page)' when action = 'disabled' and error = 'buttonSubmit' then 'Button "Place Order" not working at the checkout page' else 'Other' end as description, Dimensions.city as City, Dimensions.productids as productIds, Dimensions.productnames as productnames, customMetrics.productprice as productprice, customMetrics.cartquantity as cartquantity, customMetrics.cartamount as cartamount, FROM (SELECT date, hour,minute, hitId, userEmail, eventInfo.eventAction as action, eventInfo.eventLabel as error, hour(CURRENT_TIMESTAMP())+2-hour as currenthour from TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') ) where eventInfo.eventCategory = 'Errors' and userEmail is not null group by 1,2,3,4,5,6,7,8) as usererrors left join (SELECT hitId, MAX(IF(customDimensions.index=4, customDimensions.value, NULL)) WITHIN hitId AS city, MAX(IF(customDimensions.index=21, customDimensions.value, NULL)) WITHIN hitId AS productids, Max(IF(customDimensions.index=22, customDimensions.value, NULL)) WITHIN hitId AS productnames from TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') )) as Dimensions ON Dimensions.hitId=usererrors.hitId left join (SELECT hitId, MAX(IF(customMetrics.index=1, customMetrics.value, NULL)) WITHIN hitId AS productprice, MAX(IF(customMetrics.index=4, customMetrics.value, NULL)) WITHIN hitId AS cartamount, Max(IF(customMetrics.index=5, customMetrics.value, NULL)) WITHIN hitId AS cartquantity FROM TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') )) as customMetrics ON customMetrics.hitId=usererrors.hitId where usererrors.currenthour=0 ) ORDER BY date asc, hour asc, minute asc, email asc
Select date, hour,minute, email, description, City, productIds, productnames, productprice, cartquantity, cartamount, From ( SELECT usererrors.date as date, usererrors.hour as hour, usererrors.minute as minute, usererrors.userEmail as email, usererrors.action as action, usererrors.error as error, case when action = 'disabled' and error = 'buttonCreateOrder' then 'Unable to checkout in cart' when action = 'notAdded' and error = 'productToCart' then 'Unable to add product to cart' when action = 'open' and error = 'emptyCart' then 'Product can not be viewed in cart' when action = 'open' and error = 'HoldingPageCheckout' then 'Maintenance work in progress (after checkout)' when action = 'absent' and error = ƋdiscountCart' then Ƌ% discount unavailable online (in cart)' when action = 'absent' and error = ƋdiscountCheckout' then Ƌ% discount unavailable online (at the checkout page)' when action = 'disabled' and error = 'buttonSubmit' then 'Button "Place Order" not working at the checkout page' else 'Other' end as description, Dimensions.city as City, Dimensions.productids as productIds, Dimensions.productnames as productnames, customMetrics.productprice as productprice, customMetrics.cartquantity as cartquantity, customMetrics.cartamount as cartamount, FROM (SELECT date, hour,minute, hitId, userEmail, eventInfo.eventAction as action, eventInfo.eventLabel as error, hour(CURRENT_TIMESTAMP())+2-hour as currenthour from TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') ) where eventInfo.eventCategory = 'Errors' and userEmail is not null group by 1,2,3,4,5,6,7,8) as usererrors left join (SELECT hitId, MAX(IF(customDimensions.index=4, customDimensions.value, NULL)) WITHIN hitId AS city, MAX(IF(customDimensions.index=21, customDimensions.value, NULL)) WITHIN hitId AS productids, Max(IF(customDimensions.index=22, customDimensions.value, NULL)) WITHIN hitId AS productnames from TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') )) as Dimensions ON Dimensions.hitId=usererrors.hitId left join (SELECT hitId, MAX(IF(customMetrics.index=1, customMetrics.value, NULL)) WITHIN hitId AS productprice, MAX(IF(customMetrics.index=4, customMetrics.value, NULL)) WITHIN hitId AS cartamount, Max(IF(customMetrics.index=5, customMetrics.value, NULL)) WITHIN hitId AS cartquantity FROM TABLE_DATE_RANGE([mvideo-ru:Streaming.streaming_], DATE_ADD(CURRENT_TIMESTAMP(), 0 ,'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0 , 'DAY') )) as customMetrics ON customMetrics.hitId=usererrors.hitId where usererrors.currenthour=0 ) ORDER BY date asc, hour asc, minute asc, email asc
نتيجة الاستعلام حصل المحللون على جدول يحتوي على المعلومات التالية:

- تاريخ؛
- ساعة؛
- اللحظة؛
- عنوان البريد الإلكتروني للمستخدم ؛
- وصف خاطئ؛
- مدينة المستخدم
- معرف المنتج في سلة التسوق ؛
- أسماء المنتجات في عربة التسوق ؛
- سعر المنتجات في عربة التسوق ؛
- إجمالي عدد المنتجات في سلة التسوق ؛
- السعر الإجمالي للمنتجات في سلة التسوق.
بعد ذلك ، تم إعداد استيراد البيانات إلى جداول بيانات Google ، باستخدام الوظيفة الإضافية OWOX BI BigQuery Reports التي تعمل على تحديث المعلومات في الجداول تلقائيًا وكل ساعة. هذا يعني أن التقرير يحتوي دائمًا على بيانات محدثة حول أخطاء الساعة السابقة.
يمكنك العثور على مثال على هذا التقرير أدناه:

الخطوة 3. استخدم البيانات التي تم الحصول عليها
يتلقى المستخدمون المسؤولون تلقائيًا تقريرًا عن الأخطاء كل ساعة (من 9 صباحًا إلى 6 مساءً ، وفقًا لساعات العمل). بعد ذلك ، يرسلونها إلى مطوري الشركة في حالة وجود مشكلات حرجة لإصلاحها ، وإلى مديري نجاح العملاء الذين يتصلون بالمستخدمين ويساعدونهم في إكمال الطلب عبر الهاتف.
نتائج
- تم إنشاء التقرير المنظم لمراقبة أخطاء موقع الويب التي تمنع المستخدمين من إجراء عملية شراء.
- أضاف مطورو الشركة نموذج ملاحظات إلى الموقع. يظهر تلقائيًا في كل مرة يرى فيها المستخدمون الذين لم يسجلوا الدخول خطأً ، مما يسمح لهم بالإبلاغ عن المشكلة وترك تفاصيل الاتصال الخاصة بهم. يساعد هذا الشركة على الاستجابة بسرعة لأي أخطاء أو أخطاء ، بالإضافة إلى توسيع قاعدة العملاء ، بما في ذلك جهات اتصال المستخدمين الذين لم يسجلوا الدخول.
- يمكن لمراكز الاتصال التابعة للشركة الحصول بسرعة على بيانات حول المستخدمين الذين يواجهون مشاكل أثناء إضافة المنتج إلى سلة التسوق والسداد. يتعرف مشغلو مركز الاتصال على ما بداخل عربة التسوق ويساعدون في إنهاء عملية الشراء.
- حوالي 3٪ من المستخدمين الذين تلقوا مكالمة بسبب خطأ موقع الويب ، أنهوا بنجاح تقديم الطلب على الهاتف. يمنح هذا الشركة 1600 دولار إضافي كان من الممكن أن تضيع إذا تم تجاهل الأخطاء.