Dlaczego 40% koszyków ginęło na etapie wyboru kuriera
Problem nie leżał w cenach dostawy. Leżał w tym, że lista punktów odbioru ładowała się cztery sekundy, a przez pierwsze dwa miesiące nikt tego nie zmierzył, bo wykres konwersji wyglądał normalnie.
Czterdzieści procent koszyków, które doszły do ekranu wyboru dostawy, nie przechodziło dalej. Pierwsza hipoteza: za drogo. Druga: brakuje ulubionego przewoźnika. Obie były nietrafione.
Dlaczego wykres wyglądał normalnie
Konwersja całego sklepu nie odbiegała od średniej z poprzednich miesięcy, więc przez dwa miesiące nikt nie szukał problemu. Spadek na tym jednym kroku był kompensowany wzrostem ruchu z kampanii – w sumie wychodziło tyle samo zamówień, tylko przy większym koszcie pozyskania.
To jest w praktyce najczęstszy powód, dla którego problemy w lejku żyją miesiącami: patrzymy na wynik końcowy, a nie na poszczególne kroki.
Cztery sekundy
Wybór punktu odbioru otwierał mapę z listą punktów w okolicy. Lista ładowała się średnio 4,1 sekundy, a na łączu mobilnym w gorszych warunkach ponad 8. W tym czasie ekran pokazywał pustą ramkę bez żadnego wskaźnika, że coś się dzieje.
Przyczyną było zapytanie do API przewoźnika wykonywane synchronicznie dla każdego z trzech obsługiwanych operatorów, po kolei, bez cache. Punkty odbioru zmieniają się kilka razy w roku.
Co zrobiliśmy
- Cache odpowiedzi na 24 godziny, z kluczem po kodzie pocztowym.
- Trzy zapytania równolegle zamiast sekwencyjnie.
- Szkielet listy w miejsce pustej ramki, żeby było widać, że trwa ładowanie.
- Domyślne rozwinięcie ostatnio wybranego punktu u klientów powracających.
Czas ładowania spadł do 400 ms przy trafieniu w cache, czyli w około 85% przypadków. Porzucenia na tym kroku spadły z 40% do 12%.
Największą lekcją nie był cache, tylko to, że przez dwa miesiące mierzyliśmy niewłaściwą rzecz.