Cara meningkatkan penjualan dan loyalitas pelanggan dengan memperbaiki kesalahan pada halaman checkout

Diterbitkan: 2022-05-25

Di dunia digital modern yang berkembang pesat, pelanggan bergantung pada peluang online yang ditawarkan oleh bisnis dan mengharapkan segalanya tidak kurang dari sempurna. Setelah mengalami kesalahan dalam perjalanan pelanggan mereka, klien ini akan mengingat layanan yang buruk dan lebih memilih untuk mencari produk/layanan alternatif. Itulah mengapa sangat penting untuk mencegah kesulitan dan memantau kinerja bisnis secara konstan.

Dalam hal ini, kami menjelaskan solusi yang diberikan oleh tim OWOX BI untuk pengecer elektronik konsumen dan peralatan rumah tangga yang memiliki tantangan dalam memperbaiki kesalahan di halaman pembayaran untuk meningkatkan penjualan dan loyalitas pelanggan.

Daftar Isi

  • Tantangan
  • Sasaran
  • Larutan
    • Langkah 1. Kumpulkan data tentang kesalahan
    • Langkah 2. Proses data
    • Langkah 3. Gunakan data yang diperoleh
  • Hasil

Tantangan

Sekitar 700.000 orang mengunjungi situs web pengecer per hari, untuk membaca ulasan produk atau menelusuri sekitar untuk menemukan apa yang ingin mereka beli. Namun, terkadang pengguna mungkin mengalami kesalahan situs web di halaman checkout yang mencegah mereka menyelesaikan pesanan secara online, sehingga menurunkan pendapatan perusahaan.

Sasaran

Analis bersama dengan penguji dengan hati-hati mempelajari keluhan pelanggan untuk menentukan skenario kesalahan yang khas. Kesalahan yang berhasil direproduksi oleh spesialis telah diperbaiki. Bug kritis lainnya memerlukan pemantauan pengaturan. Sebelumnya, perusahaan tidak menggunakan untuk mengumpulkan data tersebut, tetap tidak dapat mengevaluasi jumlah pasti bug dan bagaimana mereka mempengaruhi tingkat konversi. Perusahaan juga perlu mengetahui bagaimana setiap bug terhubung dengan pengguna tertentu, untuk membantu pengguna melakukan pemesanan.

Analis memilih untuk mengatur pemantauan bug kritis di situs web dan melakukan semua yang terbaik untuk membantu pelanggan berhasil memesan di halaman checkout. Ini akan meningkatkan penjualan dan meningkatkan pengalaman situs web pelanggan. Faktor yang menantang adalah bahwa pemantauan waktu nyata diperlukan agar tidak kehilangan pelanggan yang saat ini mencoba memesan sesuatu di situs web.

Larutan

Rencana berikut disiapkan untuk mencapai tujuan:

  1. Tempatkan kode tambahan di situs untuk mengumpulkan data tentang kesalahan dan mengirimkannya ke Google BigQuery.
  2. Mengolah data yang diperoleh dan mengekspornya ke dalam tabel dengan struktur sesuai kebutuhan perusahaan.
  3. Atur pengiriman data tentang pengguna dan kesalahan ke pusat panggilan yang akan menghubungi pelanggan untuk membantu mereka melakukan pemesanan.

Berikut adalah tampilan aliran data perusahaan:

Langkah 1. Kumpulkan data tentang kesalahan

Perusahaan menggunakan Google Pengelola Tag untuk melacak apa yang dilakukan pengguna secara online. Padahal, tidak semua kesalahan logika di situs web dapat dilacak dengan cara standar Google Pengelola Tag. Inilah sebabnya mengapa skrip khusus ditulis secara khusus dan diterapkan melalui Google Pengelola Tag pada halaman situs web yang diperlukan. Skrip menambahkan data kesalahan terperinci ke DataLayer .

Selanjutnya, dengan bantuan tag Google Pengelola Tag, data kesalahan masuk ke Google BigQuery melalui OWOX BI Pipeline. Hal ini memungkinkan perolehan data mentah tanpa sampel dari situs web di Google BigQuery, hampir secara real time.

Dengan menggunakan API, analis mengirim data tentang pengguna dari CRM ke Google BigQuery, memperoleh semua data yang mereka butuhkan di gudang data cloud:

  • Waktu kesalahan.
  • Jenis kesalahan.
  • Identitas pengguna.
  • Alamat email pengguna.
  • kota pengguna.
  • Status produk saat ini di keranjang.

Langkah 2. Proses data

Menggunakan OWOX BI Pipeline, tabel data dengan berbagai parameter diperoleh. Analis OWOX BI membuat kueri SQL untuk menarik data dari tabel, mengembalikannya dengan struktur yang pasti: satu set baris di mana setiap baris sama dengan satu kesalahan.

Di bawah ini adalah contoh kueri 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

Sebagai hasil dari query, analis memperoleh tabel yang berisi informasi berikut:

  • Tanggal;
  • Jam;
  • Menit;
  • Alamat email pengguna;
  • Deskripsi kesalahan;
  • kota pengguna;
  • ID produk di keranjang;
  • Nama produk di keranjang;
  • Harga produk di troli;
  • Jumlah total produk dalam keranjang;
  • Total harga produk dalam keranjang.

Kemudian, impor data ke Google Spreadsheet disiapkan, menggunakan add-on OWOX BI BigQuery Reports yang memperbarui informasi dalam tabel secara otomatis dan setiap jam. Artinya, laporan selalu berisi data terbaru tentang kesalahan selama satu jam sebelumnya.

Anda dapat menemukan contoh laporan tersebut di bawah ini:

Langkah 3. Gunakan data yang diperoleh

Pengguna yang bertanggung jawab secara otomatis menerima laporan tentang kesalahan setiap jam (9 pagi hingga 6 sore, sesuai jam kerja). Selanjutnya, mereka mengirimkannya ke pengembang perusahaan jika ada masalah penting untuk diperbaiki, dan kepada manajer sukses pelanggan yang menelepon pengguna dan membantu mereka menyelesaikan pesanan di telepon.

Hasil

  • Laporan terstruktur dibuat untuk memantau kesalahan situs web yang mencegah pengguna melakukan pembelian.
  • Pengembang perusahaan menambahkan formulir umpan balik ke situs web. Ini secara otomatis muncul setiap kali pengguna yang tidak masuk melihat kesalahan, sehingga memungkinkan mereka untuk melaporkan masalah dan meninggalkan detail kontak mereka. Ini membantu perusahaan dengan cepat bereaksi terhadap kesalahan atau bug, serta memperluas basis pelanggan, termasuk kontak pengguna yang tidak masuk.
  • Pusat panggilan perusahaan dapat dengan cepat mendapatkan data tentang pengguna yang menghadapi masalah saat menambahkan produk ke troli dan check out. Operator pusat panggilan mengetahui apa yang ada di dalam troli dan membantu menyelesaikan pembelian.
  • Sekitar 3% pengguna yang menerima panggilan karena kesalahan situs web, berhasil menyelesaikan pemesanan di telepon. Ini memberi perusahaan tambahan $ 1.600 yang akan hilang jika kesalahan diabaikan.