Retentioneering: kako smo napisali open-source alate za analizu proizvoda na Pythonu i Pandasu

Pozdrav, Habr. Ovaj članak je posvećen rezultatima četverogodišnjeg razvoja skupa metoda i alata za obradu putanja kretanja korisnika u aplikaciji ili na web stranici. Autor razvoja je Maksim Godzi, koji stoji na čelu tima stvaratelja proizvoda, a ujedno je i autor članka. Sam proizvod nosi naziv Retentioneering, trenutno je transformiran u open-source biblioteku i objavljen na Githubu, kako bi svaki zainteresirani mogao koristiti. Sve ovo može biti zanimljivo onima koji su povezani s proizvodnom i marketinškom analizom, promocijom i razvojem proizvoda. Usput, na Habu već je objavljen članak o jednom od slučajeva rada s Retentioneeringom. U novom materijalu se objašnjava što proizvod može učiniti i kako ga možete koristiti.

Čitajući članak, sami možete napisati svoj Retentioneering, koji može postati bilo koja standardizirana metoda obrade putanja korisnika u aplikaciji i izvan nje, što omogućuje detaljno uočavanje osobitosti ponašanja i izvlačenje uvida za rast poslovnih metrika.

Što je Retentioneering i zašto je to potrebno?

Naš prvotni cilj bio je prenijeti Growth Hacking iz svijeta "digitalne magije" u svijet brojeva, analitike i prognoza. Kao posljedica — svesti proizvodnu analitiku na čist matematički i programerski pristup za one koji umjesto fantastičnih priča preferiraju brojeve, dok formule zamjenjuju pametne izraze poput "rebranding", "repozicioniranje" itd., koji zvuče lijepo, ali u praksi malo pomažu.

Za rješavanje navedenih zadataka bila je potrebna okvirna struktura za analitiku putem grafova i putanja, a istovremeno i biblioteka koja pojednostavljuje tipične rutine analitičara, kao način opisivanja redovitih zadataka proizvodne analitike, koja bi bila jasna i ljudima i robotima. Biblioteka omogućuje opisivanje ponašanja korisnika i povezivanje s poslovnim metrikama proizvoda na tako formalnom i jasnom jeziku, koji olakšava i automatizira rutinske zadatke programera i analitičara, te olakšava njihovu komunikaciju s poslovanjem.

Retentioneering — metoda i analitički softverski alati koji se mogu prilagoditi i integrirati u bilo koji digitalni (a ne samo) proizvod.

Započeli smo rad na proizvodu 2015. godine. Danas je to već gotov, iako još uvijek ne savršen, skup alata na Pythonu i Pandasu za rad s podacima, modeli strojnog učenja s sklearn-like API, alati za interpretaciju rezultata modela strojnog učenja eli5 i shap.

Sve to je obuhvaćeno u praktičnoj open-source biblioteci u otvorenom Github repozitoriju — retentioneering-tools.Korištenje biblioteke nije teško, praktično svaka osoba koja voli analitiku proizvoda, a nije prije pisala kod, može primijeniti naše analitičke metode na svoje podatke samostalno i bez značajnog trošenja vremena.

A programer, kreator aplikacije ili član razvojnog ili testnog tima koji nikada prije nije radio s analitikom, može početi iskušavati ovaj kod i vidjeti obrasce korištenja svoje aplikacije bez pomoći drugih.

Putanja korisnika kao osnovni element analize i metode njene obrade

Putanja korisnika — niz stanja korisnika u određenim vremenskim tačkama. Pri čemu događaji mogu biti iz različitih izvora podataka, kako online, tako i offline. Događaji koji su se dogodili korisniku dio su njegove putanje. Primjeri:
• pritisnuo dugme
• vidio sliku
• došao na ekran
• dobio mail
• preporučio proizvod prijatelju
• ispunio obrazac
• dodirnuo ekran
• scrolovao
• došao do blagajne
• naručio burrito
• pojeo burrito
• otrovao se pojedenim burritom
• ušao u kafić kroz stražnji ulaz
• ušao kroz glavni ulaz
• zatvorio aplikaciju
• dobio push obavijest
• buljio u ekran duže vrijeme X
• platio narudžbinu
• preuzeo narudžbinu
• dobio odbijanje za kredit

Ako uzmemo podatke putanja grupe korisnika i proučimo kako su strukturirani prijelazi, možemo pratiti kako se formira njihovo ponašanje unutar aplikacije. To je lako učiniti preko grafa, u kojem su stanja — čvorovi, a prijelazi između stanja — ivice:

Retentioneering: kako smo napisali open-source alate za analizu proizvoda na Pythonu i Pandasu

«Trajektorija» je vrlo prikladan pojam — ona sadrži detaljne informacije o svim radnjama korisnika, uz mogućnost dodavanja bilo kakvih dodatnih podataka u opis tih radnji. To je čini univerzalnim objektom. Ako imate lijepe i korisne alate koji omogućuju rad s trajektorijama, možete pronaći sličnosti, segmentirati ih.

Segmentacija trajektorija može se isprva činiti vrlo složenom. Uobičajeno, tako i jeste — potrebno je koristiti usporedbe matrica povezanosti ili usklađivanje sekvenci. Uspjeli smo pronaći jednostavniji način — proučiti veliku količinu trajektorija i segmentirati ih putem klasterizacije.

Kako se pokazalo, trajektoriju je moguće pretvoriti u točku pomoću kontinuiranih prikaza, primjerice, TF-IDF. Nakon pretvorbe, trajektorija postaje točka u prostoru, gdje su na osi prikazane normalizirane učestalosti različitih događaja i prijelaza unutar trajektorije. Ova stvar iz ogromnog visokodimenzionalnog prostora (dimS=ukupno(tipovi događaja)+ukupno(tipovi n-grama_2)), može se projicirati na ravninu pomoću TSNE. TSNE — transformacija koja smanjuje dimenzionalnost prostora na 2 osi i nastoji zadržati relativne udaljenosti između točaka. Shodno tome, postaje moguće na ravnoj karti, slikovnoj projektivnoj karti trajektorija, istražiti kako su točke različitih trajektorija bile raspoređene. Analizira se koliko su bile bliske ili različite jedna od druge, jesu li oblikovale klastere ili su se raspršile po karti itd.:

Retentioneering: kako smo napisali open-source alate za analizu proizvoda na Pythonu i Pandasu

Analitički alati Retentioneering omogućuju pretvaranje složenih podataka i trajektorija u prikaz koji se može međusobno usporediti, a zatim istražiti i interpretirati rezultate transformacije.

Govoreći o standardnim metodama obrade trajektorije, podrazumijevaju se tri osnovna alata koja smo implementirali u Retentioneering — grafovi, step matrice i karte projekcija trajektorija.

Rad s Google Analytics, Firebase i sličnim analitičkim sustavima može biti prilično složen i nije 100% učinkovit. Problem leži u nizu ograničenja za korisnika, zbog čega rad analitičara u tim sustavima često ovisi o klikovima mišem i odabiru rezova. Retentioneering omogućuje rad s korisničkim putanjama, a ne samo s lijevcima, kao u Google Analytics, gdje je razina detaljnosti često smanjena na lijevak, čak i ako je izgrađena za neki segment.

Retentioneering i slučajevi

Kao primjer korištenja razvijenog alata može se navesti slučaj velike nišne usluge u Rusiji. Ova tvrtka ima mobilnu aplikaciju za Android koja je popularna među klijentima. Godišnji promet s mobilne aplikacije iznosio je oko 7 milijuna rubalja, s sezonskim fluktuacijama u rasponu od 60 do 130 tisuća. Ova tvrtka također ima i aplikaciju za iOS, a prosječna cijena po korisniku 'jabuke' bila je viša od prosječne cijene korisnika koji koriste Android aplikaciju — 1080 rubalja naspram 1300 rubalja.

Tvrtka je odlučila povećati učinkovitost Android aplikacije, zbog čega je provela opsežnu analizu. Formulirano je nekoliko desetaka hipoteza o povećanju učinkovitosti aplikacije. Nakon korištenja Retentioneeringa otkriveno je da je problem u porukama koje su se prikazivale novim korisnicima. Oni su primali informacije o brandu, prednostima tvrtke i cijenama. Međutim, kako se ispostavilo, poruke su trebale pomoći korisnicima da nauče kako raditi u aplikaciji.

Retentioneering: kako smo napisali open-source alate za analizu proizvoda na Pythonu i Pandasu

To je i učinjeno, rezultirajući u smanjenju uklanjanja aplikacije, dok je porast konverzije u narudžbu iznosio 23%. Na početku je na test odvojeno 20 posto ulaznog prometa, no nakon nekoliko dana, analiziravši prve rezultate i ocjenjujući trend — proporcionalno su promijenili omjere i, nasuprot, ostavili 20 posto za kontrolnu grupu, a osamdeset stavili u test. Još nakon tjedan dana donesena je odluka o postepenom dodavanju testiranja još dvije hipoteze. Sveukupno, nakon sedam tjedana, promet s Android aplikacije povećan je za polovinu u odnosu na prethodnu razinu.

Kako raditi s Retentioneeringom?

Prvi koraci su dovoljno jednostavni — učitavamo biblioteku s naredbom pip install retentioneering. U samom repozitoriju postoje primjeri i slučajevi obrade podataka za neke zadatke analize proizvoda. Skup se neprekidno dopunjuje, trenutno je dovoljan za prvo upoznavanje. Svakoga može uzeti gotove module i odmah primijeniti na svoje zadatke — to omogućava brzo i učinkovito postavljanje procesa detaljnije analize i optimizacije korisničkih putanja. Sve to omogućava pronalaženje obrazaca korištenja aplikacije kroz jasan kod i dijeljenje tog iskustva s kolegama.

Retentioneering — alat koji treba koristiti tijekom cijelog životnog ciklusa aplikacije, i evo zašto:

  • Retentioneering je učinkovit za praćenje i kontinuiranu optimizaciju korisničkih putanja te poboljšanje poslovnih pokazatelja. Naime, u ecommerce aplikacijama često se dodaju nove funkcije čiji utjecaj na proizvod nije uvijek moguće ispravno predvidjeti. U nekim slučajevima pojavljuju se problemi s kompatibilnošću novih i starih funkcija — na primjer, nove “kanibaliziraju” već postojeće. A u toj situaciji je upravo potreban stalni analiz putanja.
  • Slična situacija se javlja i u radu s oglašivačkim kanalima: stalno se isprobavaju novi izvori prometa i oglasni kreativni sadržaji, potrebno je pratiti sezonalnost, trendove i utjecaj drugih događanja, što dovodi do pojave novih klasa problema. I ovdje je potrebna kontinuirana praćenje i interpretacija korisničkih mehanika.
  • Postoji čitav niz faktora koji stalno utječu na rad aplikacije. Na primjer, nove verzije od programera: rješavajući aktualni problem, nenamjerno vraćaju stari ili stvaraju potpuno novi. S vremenom broj novih verzija raste, i proces praćenja grešaka potrebno je automatizirati — uključujući analizu korisničkih putanja.

U cjelini, Retentioneering je učinkovit alat. No nema granica savršenstvu — može se i treba poboljšavati, razvijati, graditi nove sjajne proizvode na njegovoj osnovi. Što aktivnije bude zajednica projekta, to će više biti forka, a pojavljuju se nove zanimljive mogućnosti njegove upotrebe.

Dodatne informacije o alatima Retentioneering:

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster