Jak serwis Truebil stworzył kanał rozwoju w internecie

Historia startupu, który stworzył najlepszą w swojej klasie witrynę.

Harleen Batra
Harleen Batra

Informacje

Założona w 2015 r. firma Truebil to indyjska platforma handlowa online, która sprzedaje w 100% certyfikowane samochody używane. Korzysta z niej ponad 1, 4 mln aktywnych użytkowników miesięcznie.Jest to kompleksowe rozwiązanie, które obejmuje przeniesienie własności, ubezpieczenie, pożyczki i gwarancje serwisowe. Potencjalni klienci mogą wyświetlać poszczególne strony produktów ze zdjęciami i szczegółowymi raportami z kontroli, a także uzyskiwać wyceny pojazdów dzięki funkcjom „Porównaj” i „Truescore” w witrynie. Truebil wyróżnia się bogatą ofertą funkcji, w tym spersonalizowanymi rekomendacjami opartymi na uczeniu maszynowym, funkcją dodawania do ulubionych, funkcją udostępniania samochodu i innymi.

Wyzwanie

Truebil to startup o niskiej częstotliwości transakcji i wysokiej wartości, dlatego wybór odpowiedniej platformy, w którą warto inwestować, był kluczowy.

Firma Truebil uznała urządzenia mobilne za platformę docelową i wybrała sieć jako pierwszą aplikację, Truebil Lite, ze względu na łatwość odkrywania i niskie tarcie. Technologia internetowa zapewnia niższe koszty rozwoju, mniejsze zużycie danych i pamięci oraz znacznie niższe koszty pozyskiwania klientów niż tworzenie aplikacji na Androida lub iOS. Dzięki stworzeniu progresywnej aplikacji internetowej (PWA) Truebil mógł korzystać ze wszystkich zalet internetu i korzyści, jakie daje iOS/Android.

Rozwiązanie

Wewnętrzny zespół przez 4 miesiące opracowywał Truebil Lite, korzystając z React, Django i Preact (do migracji produkcyjnej). Określili jasne zasady dotyczące aplikacji internetowej na podstawie celów użytkowników. Aplikacja musiała być:

  • Szybkie pierwsze ładowanie i dalsza nawigacja,
  • niezawodne, niezależne od ograniczeń sieci lub urządzenia użytkownika;
  • angażująca, zwłaszcza na małych ekranach urządzeń mobilnych, aby użytkownicy chcieli do niej wracać;

Optymalizacja pod kątem szybkiego pierwszego ładowania i nawigacji

Korzystając z narzędzia Lighthouse jako przewodnika po optymalizacji wydajności, zespół wdrożył kulturę, w której wydajność jest najważniejsza, a jednocześnie wprowadzał nowe funkcje. Firma Truebil zdołała znacznie poprawić wrażenia użytkowników, nadając priorytet wskaźnikom pierwszego wyrenderowania treściczasu do pełnej interaktywności oraz optymalizując szybkość pierwszego wczytywania, powtórnych wizyt i płynność nawigacji. Zespół osiągnął te wyniki, ustalając budżety na skuteczność i stosując różne techniki, aby je zrealizować.

Ustawianie budżetów skuteczności

Zespół Truebil, kierując się przede wszystkim wydajnością, zdecydował się na zaprojektowanie swojej platformy jako aplikacji jednostronicowej z renderowaniem po stronie serwera przy pierwszym wczytaniu i renderowaniem po stronie klienta przy kolejnych wczytaniach. Utrzymanie wydajności aplikacji internetowych z renderowaniem po stronie klienta może być trudne, dlatego Truebil ustalił bardzo rygorystyczne budżety wydajności, aby nie rezygnować z szybkości, zwłaszcza w miarę dodawania kolejnych funkcji.

Zespół ustalił ścisłe budżety oparte na kamieniach milowych dla TTI, aby utrzymać ten wskaźnik poniżej 5 sekund. Aby osiągnąć ten cel, ręcznie sprawdzali, czy rozmiar pakietu JavaScript nie przekracza 250 KB, stale monitorowali rozmiary obrazów i na bieżąco śledzili wynik aplikacji w Lighthouse.

Optymalizowanie pakietów JavaScript

Zespół zaczął od podstaw, korzystając z wzorca PRPL do wstępnego buforowania i optymalizacji pakietów JavaScript oraz przechodząc na HTTP/2, aby obsługiwać krytyczne pakiety JavaScript.

Aby opóźnić wczytywanie niekrytycznych zasobów, używali komponentów opóźnionego wczytywania na poziomie platformy do wczytywania fragmentów znajdujących się poniżej linii podziału.

Aby usunąć wąskie gardła w pakietach JavaScript, zespół zmniejszył rozmiar ładunków przez dzielenie kodu. Użyli dzielenia na części opartego na komponentach i trasach, aby zmniejszyć rozmiar głównego pakietu i skrócić czas wczytywania o 44%. Czas do pełnej interaktywności (TTI) spadł z 6 sekund do około 5 sekund, a pierwsze wyrenderowanie treści (FMP) – z 4,1 sekundy do 3,6 sekundy.

Zrzuty ekranu z Narzędzi deweloperskich w Chrome pokazujące rozmiar kompilacji Truebil Lite przed i po podziale kodu.
Wpływ zmniejszenia rozmiaru fragmentu.

Wbudowany krytyczny CSS

Aby jeszcze bardziej poprawić FMP, zespół użył narzędzia Lighthouse do znajdowania możliwości optymalizacji wydajności i sprawdzania ich wpływu. Lighthouse wskazał, że największy wpływ będzie miało ograniczenie blokującego renderowanie kodu CSS, więc Truebil umieścił w kodzie strony cały krytyczny kod CSS i opóźnił ładowanie niekrytycznego kodu CSS. Ta technika skróciła czas FMP o około 2 sekundy.

Zrzuty ekranu z Narzędzi deweloperskich w Chrome pokazujące czas do pierwszego znaczącego wyrenderowania strony Truebil Lite przed wstawieniem CSS i po nim.
Wpływ wstawiania krytycznego kodu CSS.

Unikaj wielokrotnych, kosztownych podróży w obie strony do dowolnego miejsca początkowego.

Aby zmniejszyć obciążenie związane z DNS i TLS, Truebil używało <link rel="preconnect"><link rel="dns-prefetch">. Dzięki temu przeglądarka jak najszybciej przeprowadza uzgadnianie połączenia TLS podczas wczytywania strony i wcześniej rozwiązuje nazwy domen z innych źródeł, co zapewnia bezpieczne i szybkie działanie.

Zrzuty ekranu Narzędzi deweloperskich w Chrome pokazujące efekt rel=preconnect.
Wpływ dodania <link rel=preconnect>.

Dynamiczne wstępne pobieranie następnej strony

Analizując dane, zespół zidentyfikował najczęstsze ścieżki użytkowników, które można zoptymalizować. W takich przypadkach aplikacja dynamicznie pobiera zasób następnej strony za pomocą funkcji <link rel=prefetch>, aby zapewnić użytkownikom płynną nawigację. Zespół ręcznie identyfikuje linki do wstępnego pobierania, ale do tworzenia pakietów JS dla tych linków używa webpacka.

Zrzuty ekranu aplikacji Truebil Lit i Narzędzi deweloperskich w Chrome pokazujące, że w przypadku typowych nawigacji nie są potrzebne żądania sieci, ponieważ zasoby zostały już wstępnie pobrane.
Wpływ wstępnego pobierania zasobów na typowe ścieżki użytkownika.

Optymalizacja obrazów i czcionek

Zdjęcia są kluczowym elementem oferty i wiarygodności Truebil. Każda lista produktów zawiera do 40 zdjęć. Aby obrazy nie blokowały wczytywania strony, zespół zdecydował się udostępniać wszystkie zasoby z sieci CDN i używać imagemagick do optymalizacji obrazów. Skonwertowali też wszystkie zasoby, które można skompresować, w tym obrazy, skrypty JavaScript i pliki CSS, do formatu Gzip, aby jeszcze bardziej skrócić czas wczytywania.

Aby uniknąć nagłego pojawienia się niewidocznego tekstu i jednocześnie utrzymać jak najkrótszy czas ładowania, firma Truebil skonfigurowała kod CSS tak, aby używać czcionek systemowych jako zastępczych do czasu załadowania czcionek zewnętrznych.

Dalsze optymalizacje

Gdy aplikacja była gotowa, zespół chciał jeszcze bardziej zmniejszyć rozmiar pakietu dostawcy i czas wykonywania kodu JavaScript, więc w środowisku produkcyjnym zastąpił Reacta Preactem. (Więcej informacji znajdziesz w kolekcji React). Dzięki temu udało im się zmniejszyć rozmiar pakietu dostawcy z 82,3 KB do 51,2 KB.

Zwiększanie niezawodności

Większość użytkowników Truebil w Indiach korzysta z usługi w sieciach o niestabilnym zasięgu, które czasami działają w paśmie o przepustowości 2G. Dlatego stworzenie odpornego rozwiązania było kluczowe nie tylko dla poprawy wydajności w warunkach ograniczonej przepustowości sieci, ale także dla dostarczenia produktu, na którym użytkownicy mogą polegać – który zawsze działa.

Hybrydowa strategia buforowania zapewniająca niezawodne wczytywanie

Interaktywność i szybkość zmian treści w przypadku Truebil są bardzo zróżnicowane. Aby mieć pewność, że wszystkie treści są aktualne i wiarygodne, zespół Truebil wdrożył buforowanie interfejsu API, stosując kombinację strategii „najpierw sieć”, „najpierw pamięć podręczna” i „najpierw najszybsze”.

W przypadku stron statycznych, takich jak strona subskrypcji, Truebil stosuje strategię „najpierw pamięć podręczna”, aby najpierw przejść do pamięci podręcznej interfejsu API subskrypcji, a następnie wrócić do sieci.

W przypadku stron z dynamiczną treścią, która rzadko się zmienia, np. stron z listą produktów lub stron ze szczegółami, Truebil stosuje strategię „sieć jako pierwsza”, dzięki czemu przeglądarka najpierw sprawdza sieć pod kątem treści, a dopiero potem korzysta z pamięci podręcznej interfejsu API, jeśli sieć jest niedostępna.

W przypadku stron dynamicznych, które często się zmieniają, takich jak strona główna, strony filtrów, wyszukiwania i miast, Truebil stosuje strategię „najszybsze pierwszeństwo”, aby wybrać między siecią a pamięcią podręczną na podstawie tego, co jest dostępne jako pierwsze. Aby mieć pewność, że treści są aktualne, pamięć podręczna jest aktualizowana, gdy odpowiedź sieci różni się od tego, co znajduje się w pamięci podręcznej.

Skrypty service worker zapewniające pełną obsługę offline

Mimo że duża część treści Truebil jest bardzo dynamiczna (samochody można dodawać lub kupować w dowolnym momencie), zespół chciał mieć pewność, że użytkownicy będą mieli dostęp do pewnych treści, nawet jeśli korzystają z niestabilnej sieci lub są całkowicie offline.

Dzięki skryptom service worker zespół mógł zapisywać w pamięci podręcznej zarówno dane statyczne, jak i dynamiczne, z którymi użytkownik już wszedł w interakcję, aby mógł je wyświetlać w trybie offline. Aby użytkownicy wiedzieli, że po powrocie do trybu online treści mogą się zmienić, zespół zmienił interfejs na odcienie szarości, aby wskazać tryb offline. Przeglądanie stron produktów jest kluczowym elementem ścieżki użytkownika Truebil. Użytkownicy, którzy odwiedzili PWA co najmniej raz, mogą przeglądać strony z ofertami i produktami, które odwiedzili wcześniej, ale nie będą widzieć żadnych aktualizacji oferty ani produktu.

Zrzut ekranu aplikacji Truebil Lite w trybie offline.
Truebil Lite w trybie offline.

Zwiększ zaangażowanie, aby zachęcić użytkowników do powrotu

Atrakcyjne pierwsze wrażenie

Większość użytkowników Truebil pochodzi z płatnych kanałów, dlatego firma potrzebowała rozwiązania, które uzupełniłoby szybko działającą aplikację internetową i zapewniłoby wysoce trafne rekomendacje, aby zwiększyć liczbę konwersji. Zespół korzysta z systemu rekomendacji opartego na zaawansowanym filtrowaniu w przypadku obecnych użytkowników, ale nie działa on w przypadku użytkowników, którzy logują się po raz pierwszy.

Aby uniknąć uruchomienia „na zimno” u nowych użytkowników, zespół zintegrował system rekomendacji z działaniami marketingu cyfrowego. Dodają oni szczegóły produktu, takie jak model samochodu, cena i typ nadwozia, do docelowego adresu URL reklamy za pomocą parametru monitora UTM, który jest odczytywany przez ich system rekomendacji i odzwierciedlany w wyświetlanych produktach. Jeśli system nie znajdzie takich szczegółów w adresie URL, powróci do popularnych samochodów, czyli połączenia popularnych modeli, popularnych budżetów i samochodów, które były popularne w ciągu ostatnich kilku tygodni lub dni.

Aplikacja internetowa, którą można zainstalować

Firma Truebil stworzyła szybką, w pełni funkcjonalną aplikację internetową o atrakcyjnym interfejsie i chciała mieć pewność, że użytkownicy będą do niej wracać. Zauważyli, że możliwość zainstalowania aplikacji znacznie ułatwi powracanie do niej.

Zespół wdrożył funkcję Dodaj do ekranu głównego, aby przekształcić produkt w pełną progresywną aplikację internetową (PWA). Dzięki temu użytkownicy mogli dodać Truebil Lite do ekranu głównego i uruchomić go w trybie pełnoekranowym. Zespół wdrożył już tryb offline, więc mógł łatwo dodać nową funkcję.

Aby uniknąć spamu i zwiększyć prawdopodobieństwo instalacji aplikacji, zespół niedawno zaktualizował strategię promowania instalacji PWA. Dzięki temu prośby o instalację pojawiają się wtedy, gdy są przydatne dla różnych typów użytkowników. Firma Truebil zdecydowała się na strategię składającą się z 3 części:

  • Wyświetlaj prompty, gdy użytkownik wykona działanie lub jest nieaktywny.
  • Wyświetlaj użytkownikom, którzy osiągnęli pełnoletność, kontekstowe prompty.
  • Wyświetl baner, gdy użytkownik spędzi w witrynie określony czas.

Domyślne banery po zakończeniu procesu i na stronach o dużym natężeniu ruchu

Zespół zdecydował się wyświetlać baner instalacyjny, gdy użytkownik wykona zadanie lub znajduje się na stronach o dużym natężeniu ruchu, ale jest nieaktywny (tzn. nie wykonuje żadnych działań, np. nie przewija strony ani nie wypełnia formularza). Dzięki temu nie przerywali aktywności użytkownika.

Zrzuty ekranu przedstawiające baner instalacyjny Truebil Lite.

Prompty kontekstowe dla pełnoletnich użytkowników

W przypadku użytkowników, którzy korzystali z aplikacji przez pewien czas, zespół używał wysoce kontekstowych wiadomości niestandardowych, aby pokazać wartość instalowania aplikacji na ekranie głównym:

Zrzuty ekranu kontekstowych próśb o instalację Truebil Lite dla starszych użytkowników.

Niestandardowy baner z prośbą o zgodę na przetwarzanie danych wyświetlaną po upływie określonego czasu

Zespół opracował też nieinwazyjny baner z powiadomieniem, który wyświetla się w określonych sytuacjach, np. po otwarciu strony z ofertą lub po upływie określonego czasu spędzonego przez użytkownika w aplikacji:

Zrzut ekranu przedstawiający baner z prośbą o instalację Truebil Lite, który wyświetla się po określonym czasie.

Dzięki tym ulepszeniom współczynniki konwersji i zaangażowania Truebil znacznie wzrosły: sesje użytkowników są o 26% dłuższe, a liczba konwersji wzrosła o 61% , co ma duże znaczenie dla tej firmy ze względu na wysoką wartość transakcji każdej konwersji.

W przypadku startupu z ograniczonymi zasobami wybór odpowiedniej platformy może mieć kluczowe znaczenie dla sukcesu firmy. Przejście na progresywną aplikację internetową, która koncentruje się na szybkości, odporności i zaangażowaniu, umożliwiło nam zwiększenie stosunku przychodów do wydatków na marketing o 80% dzięki wzrostowi liczby konwersji i łatwemu docieraniu do użytkowników w internecie.

Rakesh Raman, współzałożyciel i dyrektor ds. produktów i nauk o danych w Truebil

44%

Skrócenie czasu wczytywania

26%

Dłuższe sesje użytkowników

61%

wzrost liczby konwersji,

80%

wzrost stosunku przychodów do wydatków na marketing,