Zadržavanje: kako smo napisali alate otvorenog koda za analitiku proizvoda u Pythonu i Pandi

Pozdrav, Habr. Ovaj članak posvećen je rezultatima četverogodišnjeg razvoja skupa metoda i alata za obradu trajektorija kretanja korisnika u aplikaciji ili web stranici. Autor razvoja - Maksim Godži, koji je na čelu tima kreatora proizvoda te je ujedno i autor članka. Sam proizvod nazvan je Retentioneering; sada je pretvoren u biblioteku otvorenog koda i postavljen na Github tako da ga svatko može koristiti. Sve ovo može biti zanimljivo onima koji se bave analizom proizvoda i marketinga, promocijom i razvojem proizvoda. Usput, na Habréu već je objavljen članak o jednom od slučajeva rada s Retentioneeringom. Novi materijal objašnjava što proizvod može učiniti i kako se može koristiti.

Nakon čitanja članka, sami ćete moći napisati svoj vlastiti Retentioneering; to može biti bilo koja standardizirana metoda za obradu korisničkih putanja u aplikaciji i izvan nje, što vam omogućuje da detaljno vidite karakteristike ponašanja i izvučete uvide iz toga za rast. poslovne metrike.

Što je Retentioneering i zašto je potreban?

Naš inicijalni cilj bio je premjestiti Growth Hacking iz svijeta "digitalnog vještičarenja" u svijet brojki, analitike i predviđanja. Kao posljedica toga, analitika proizvoda svedena je na čistu matematiku i programiranje za one koji više vole brojke umjesto fantastičnih priča, a formule na floskule poput “rebranding”, “repozicioniranje” itd., koje zvuče lijepo, ali u praksi malo pomažu.

Kako bismo riješili te probleme, trebao nam je okvir za analitiku putem grafikona i trajektorija, a u isto vrijeme knjižnica koja pojednostavljuje tipične analitičarske rutine, kao način za opisivanje uobičajenih zadataka analitike proizvoda koji bi bili razumljivi i ljudima i robotima. Knjižnica pruža mogućnost da se opiše ponašanje korisnika i poveže ga s poslovnim metrikama proizvoda tako formalnim i jasnim jezikom da pojednostavljuje i automatizira rutinske zadatke programera i analitičara te olakšava njihovu komunikaciju s tvrtkom.

Retentioneering je metoda i analitički softverski alat koji se može prilagoditi i integrirati u bilo koji digitalni (i ne samo) proizvod.

Na proizvodu smo počeli raditi 2015. godine. Sada je ovo gotov, iako još ne idealan, skup alata u Pythonu i Pandi za rad s podacima, modeli strojnog učenja s api-jem nalik na sklearn, alati za interpretaciju rezultata modela strojnog učenja eli5 i shap.

Sve je zamotano u prikladnu knjižnicu otvorenog koda u otvorenom Github repozitoriju - retentioneering-tools. Korištenje biblioteke nije teško; gotovo svatko tko voli analitiku proizvoda, ali nije prije napisao kod, može primijeniti naše analitičke metode na svoje podatke neovisno i bez značajnog ulaganja vremena.

Pa, programer, kreator aplikacije ili član razvojnog ili testnog tima koji nikada prije nije radio analitiku može se početi igrati s ovim kodom i vidjeti obrasce korištenja svoje aplikacije bez vanjske pomoći.

Trajektorija korisnika kao temeljni element analize i metode njezine obrade

Korisnička putanja je niz korisničkih stanja u određenim vremenskim točkama. Štoviše, događaji mogu dolaziti iz različitih izvora podataka, online i offline. Događaji koji se događaju korisniku dio su njegove putanje. Primjeri:
• pritisnuo gumb
• vidio sliku
• udariti u ekran
• primio e-poštu
• preporučio proizvod prijatelju
• ispunio obrazac
• dodirnuo zaslon
• pomicani
• otišao do blagajne
• naručio burrito
• jeli burrito
• otrovao se jedući burrito
• ušao u kafić sa stražnjeg ulaza
• ulazi se s prednjeg ulaza
• smanjio aplikaciju
• primio push obavijest
• bio zaglavljen na ekranu duže od X
• platio narudžbu
• kupio narudžbu
• odbijen je kredit

Ako uzmete podatke o putanji grupe korisnika i proučite kako su prijelazi strukturirani, možete točno pratiti kako je strukturirano njihovo ponašanje u aplikaciji. Prikladno je to učiniti kroz graf u kojem su stanja čvorovi, a prijelazi između stanja rubovi:

Zadržavanje: kako smo napisali alate otvorenog koda za analitiku proizvoda u Pythonu i Pandi

“Trajektorija” je vrlo zgodan koncept - sadrži detaljne informacije o svim radnjama korisnika, uz mogućnost dodavanja bilo kakvih dodatnih podataka u opis tih radnji. To ga čini univerzalnim objektom. Ako imate lijepe i prikladne alate koji vam omogućuju rad s putanjama, tada možete pronaći sličnosti i segmentirati ih.

Segmentacija trajektorije može se isprva činiti vrlo kompliciranom. U normalnoj situaciji to je slučaj - trebate upotrijebiti usporedbu matrice povezivanja ili poravnanje sekvence. Uspjeli smo pronaći jednostavniji način - proučiti veliki broj trajektorija i segmentirati ih kroz grupiranje.

Kako se pokazalo, moguće je putanju pretvoriti u točku pomoću kontinuiranih prikaza, na primjer, TF-IDF. Nakon transformacije putanja postaje točka u prostoru u kojoj se po osi ucrtava normalizirana pojava različitih događaja i prijelaza između njih na putanji. Ova stvar iz ogromnog prostora tisuću ili više dimenzija (dimS=sum(vrste događaja)+sum(ngrams_2 vrste)) može se projicirati na ravninu pomoću TSNE. TSNE je transformacija koja smanjuje dimenziju prostora na 2 osi i, ako je moguće, zadržava relativne udaljenosti između točaka. U skladu s tim, postaje moguće na ravnoj karti, figurativnoj karti projekcije trajektorija, proučavati kako su točke različitih putanja međusobno smještene. Analizira koliko su bili bliski ili različiti jedni drugima, jesu li formirali klastere ili su bili raštrkani po karti, itd.:

Zadržavanje: kako smo napisali alate otvorenog koda za analitiku proizvoda u Pythonu i Pandi

Alati za analizu zadržavanja pružaju mogućnost pretvaranja složenih podataka i putanja u prikaz koji se može međusobno usporediti, a zatim se rezultat transformacije može ispitati i protumačiti.

Govoreći o standardnim metodama za obradu trajektorija, mislimo na tri glavna alata koja smo implementirali u Retentioneeringu - grafove, matrice koraka i mape projekcija putanja.

Rad s Google Analytics, Firebase i sličnim analitičkim sustavima prilično je složen i nije 100% učinkovit. Problem su brojna ograničenja za korisnika, zbog čega rad analitičara u ovakvim sustavima ovisi o klikovima mišem i izboru rezova. Retentioneering omogućuje rad s putanjama korisnika, a ne samo s tokovima, kao u Google Analyticsu, gdje se razina detalja često svodi na tok, iako izgrađen za određeni segment.

Zadržavanje i slučajevi

Kao primjer korištenja razvijenog alata možemo navesti slučaj velike niše usluge u Rusiji. Ova tvrtka ima Android mobilnu aplikaciju koja je popularna među kupcima. Godišnji promet od mobilne aplikacije bio je oko 7 milijuna rubalja, sezonske fluktuacije su se kretale od 60-130 tisuća Ista tvrtka ima i aplikaciju za iOS, a prosječni račun korisnika Appleove aplikacije bio je veći od prosječnog računa klijent koji koristi Android aplikaciju - 1080 rub. u odnosu na 1300 rub.

Tvrtka je odlučila povećati učinkovitost Android aplikacije za koju je provela temeljitu analizu. Generirano je nekoliko desetaka hipoteza o povećanju učinkovitosti aplikacije. Nakon korištenja Retentionneeringa pokazalo se da je problem u porukama koje su se pokazivale novim korisnicima. Dobili su informacije o brendu, prednostima tvrtke i cijenama. No, kako se pokazalo, poruke su trebale pomoći korisniku da nauči kako raditi u aplikaciji.

Zadržavanje: kako smo napisali alate otvorenog koda za analitiku proizvoda u Pythonu i Pandi

To je i učinjeno, zbog čega je aplikacija postala manje deinstalirana, a povećanje konverzije prema narudžbi iznosilo je 23%. Isprva je 20 posto dolaznog prometa dano testu, no nakon nekoliko dana, nakon analize prvih rezultata i procjene trenda, obrnuli su omjere i, naprotiv, kontrolnoj skupini ostavili 20 posto, a osamdeset posto je stavljeno u test. Tjedan dana kasnije, odlučeno je da se uzastopno doda testiranje još dvije hipoteze. U samo sedam tjedana promet od Android aplikacije porastao je jedan i pol puta u odnosu na prethodnu razinu.

Kako raditi s Retentioneeringom?

Prvi koraci su prilično jednostavni - preuzmite biblioteku pomoću naredbe pip install retentioneering. Sam repozitorij sadrži gotove primjere i slučajeve obrade podataka za neke zadatke analitike proizvoda. Set se stalno ažurira dok ne bude dovoljno za prvo upoznavanje. Svatko može uzeti gotove module i odmah ih primijeniti na svoje zadatke - to im omogućuje da odmah postave proces detaljnije analize i optimizacije putanja korisnika što je brže i učinkovitije moguće. Sve to omogućuje pronalaženje obrazaca korištenja aplikacije kroz jasan kod i dijeljenje tog iskustva s kolegama.

Zadržavanje je alat koji vrijedi koristiti tijekom cijelog životnog vijeka vaše aplikacije, a evo zašto:

  • Zadržavanje je učinkovito za praćenje i kontinuirano optimiziranje korisničkih putanja i poboljšanje poslovnih performansi. Stoga se aplikacijama za e-trgovinu često dodaju nove značajke, čiji se utjecaj na proizvod ne može uvijek točno predvidjeti. U nekim slučajevima dolazi do problema s kompatibilnošću između novih i starih funkcija - na primjer, nove "kanibaliziraju" postojeće. A u ovoj situaciji stalna analiza putanja je upravo ono što je potrebno.
  • Slična je situacija iu radu s kanalima oglašavanja: novi izvori prometa i oglašivački kreativci stalno se testiraju, potrebno je pratiti sezonalnost, trendove i utjecaj drugih događaja, što dovodi do pojave sve više novih klasa problema. To također zahtijeva stalno praćenje i tumačenje korisničke mehanike.
  • Postoji niz čimbenika koji stalno utječu na performanse aplikacije. Na primjer, nova izdanja programera: zatvarajući trenutni problem, oni nesvjesno vraćaju stari ili stvaraju potpuno novi. S vremenom broj novih izdanja raste, a proces praćenja pogrešaka treba automatizirati, uključujući analizu putanja korisnika.

Sve u svemu, Retentioneering je učinkovit alat. Ali nema granice savršenstvu - može se i treba poboljšati, razvijati i na njegovoj osnovi graditi nove cool proizvode. Što je zajednica projekta aktivnija, to će biti više forkova i pojavit će se nove zanimljive opcije za njegovo korištenje.

Više informacija o alatima za zadržavanje:

Izvor: www.habr.com

Dodajte komentar