Retentioneeing: kako smo napisali alate za analizu proizvoda otvorenog koda u Python i Pandas

Zdravo, Habr. Ovaj članak je posvećen rezultatima četiri godine razvoja skupa metoda i alata za obradu putanja kretanja korisnika u aplikaciji ili web stranici. Autor razvoja - Maxim Godzi, koji je na čelu tima kreatora proizvoda i ujedno je autor članka. Sam proizvod se zvao Retentioneering; sada je pretvoren u biblioteku otvorenog koda i postavljen na Github tako da ga svako može koristiti. Sve ovo može biti od interesa za one 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 sa Retentioneeringom. Novi materijal objašnjava šta proizvod može učiniti i kako se može koristiti.

Nakon što pročitate članak, moći ćete sami napisati svoj Retentioneering; to može biti bilo koja standardizirana metoda za obradu putanja korisnika u aplikaciji i šire, što vam omogućava da detaljno vidite karakteristike ponašanja i izvučete uvid iz toga za razvoj poslovnih metrika.

Šta je Retentioneering i zašto je potreban?

Naš početni cilj je bio da premjestimo Growth Hacking iz svijeta “digitalnog vještičarenja” u svijet brojeva, analitike i prognoza. Kao posljedica toga, analitika proizvoda svedena je na čistu matematiku i programiranje za one koji više vole brojeve umjesto fantastičnih priča, a formule na riječi poput „rebranding“, „repozicioniranje“ itd., koje zvuče lijepo, ali u praksi malo pomažu.

Da bismo riješili ove probleme, bio nam je potreban okvir za analitiku kroz grafove i putanje, a u isto vrijeme i biblioteka koja pojednostavljuje tipične analitičke rutine, kao način za opisivanje redovnih zadataka analitike proizvoda koji bi bili razumljivi i ljudima i robotima. Biblioteka pruža mogućnost da se opiše ponašanje korisnika i poveže sa poslovnim metrikama proizvoda na tako formalnom i jasnom jeziku da pojednostavljuje i automatizuje rutinske zadatke programera i analitičara, i olakšava njihovu komunikaciju sa poslovanjem.

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

Počeli smo raditi na proizvodu 2015. godine. Sada je ovo gotov, iako još ne idealan, skup alata u Python-u i Pandas-u za rad sa podacima, modeli mašinskog učenja sa API-jem sličnim sklearn-u, alati za interpretaciju rezultata modela mašinskog učenja eli5 i shap.

Sve je upakovano na zgodnu biblioteku otvorenog koda u otvorenom Github repozitorijumu - alati za zadržavanje. Korištenje biblioteke nije teško; gotovo svako ko voli analitiku proizvoda, ali nije ranije pisao kod, može primijeniti naše analitičke metode na svoje podatke samostalno i bez značajnog ulaganja vremena.

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

Putanja korisnika kao osnovni element analize i metode njene obrade

Putanja korisnika je niz korisničkih stanja u određenim vremenskim tačkama. Štaviše, događaji mogu doći iz različitih izvora podataka, kako na mreži, tako i van mreže. Događaji koji se događaju korisniku su dio njegove putanje. primjeri:
• pritisnuli dugme
• vidio sliku
• pritisnite ekran
• primio e-mail
• preporučio proizvod prijatelju
• popunio formular
• dodirnuo ekran
• skrolovani
• otišao do kase
• naručio burito
• pojeo burito
• se otrovao pojevši burito
• ušao u kafić sa zadnjeg ulaza
• ulazi se sa glavnog ulaza
• minimizirao aplikaciju
• primio push obavještenje
• je zaglavljen na ekranu duže od X
• plaćeni za narudžbu
• kupio narudžbu
• je odbijen 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. Zgodno je to učiniti kroz graf u kojem su stanja čvorovi, a prijelazi između stanja ivice:

Retentioneeing: kako smo napisali alate za analizu proizvoda otvorenog koda u Python i Pandas

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

Segmentacija putanje u početku može izgledati veoma komplikovano. U normalnoj situaciji, ovo je slučaj - morate koristiti poređenje matrice povezivanja ili poravnanje sekvence. Uspjeli smo pronaći jednostavniji način - proučiti veliki broj putanja i segmentirati ih kroz grupisanje.

Kako se pokazalo, moguće je pretvoriti putanju u tačku koristeći kontinuirane reprezentacije, na primjer, TF-IDF. Nakon transformacije, trajektorija postaje tačka u prostoru u kojoj se duž osi iscrtava normalizovana pojava različitih događaja i prelaza između njih u putanji. Ova stvar iz ogromne hiljadu ili više dimenzionalnog prostora (dimS=suma(tipovi događaja)+suma(ngrams_2 vrste)) može se projicirati na ravan koristeći TSNE. TSNE je transformacija koja smanjuje dimenziju prostora na 2 ose i, ako je moguće, čuva relativne udaljenosti između tačaka. U skladu s tim, postaje moguće na ravnoj karti, figurativnoj projekcijskoj karti putanja, proučiti kako su se točke različitih putanja nalazile među sobom. Analizira koliko su bliski ili različiti bili jedni drugima, da li su formirali klastere ili su bili razbacani po karti, itd.:

Retentioneeing: kako smo napisali alate za analizu proizvoda otvorenog koda u Python i Pandas

Alati za analizu zadržavanja pružaju mogućnost pretvaranja složenih podataka i putanja u pogled koji se može međusobno upoređivati, a zatim se rezultat transformacije može ispitati i interpretirati.

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

Rad sa Google Analytics, Firebase i sličnim analitičkim sistemima je prilično složen i nije 100% efikasan. Problem je niz ograničenja za korisnika, zbog čega rad analitičara u takvim sistemima zavisi od klikova mišem i odabira rezova. Retentioneing omogućava rad sa putanjama korisnika, a ne samo sa tokovima, kao u Google Analyticsu, gdje se nivo detalja često svodi na lijevak, 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 kompanija ima Android mobilnu aplikaciju koja je popularna među kupcima. Godišnji promet od mobilne aplikacije iznosio je oko 7 miliona rubalja, sezonske fluktuacije su se kretale od 60-130 hiljada. Ista kompanija ima i aplikaciju za iOS, a prosječan račun korisnika Apple aplikacije bio je veći od prosječnog računa. klijent koji koristi Android aplikaciju - 1080 rub. u odnosu na 1300 rub.

Kompanija je odlučila da poveća efikasnost Android aplikacije, za šta je izvršila detaljnu analizu. Generirano je nekoliko desetina hipoteza o povećanju efikasnosti aplikacije. Nakon korištenja Retentionneeringa, pokazalo se da je problem u porukama koje su prikazane novim korisnicima. Dobili su informacije o brendu, pogodnostima kompanije i cijenama. Ali, kako se ispostavilo, poruke su trebale pomoći korisniku da nauči kako raditi u aplikaciji.

Retentioneeing: kako smo napisali alate za analizu proizvoda otvorenog koda u Python i Pandas

To je i učinjeno, uslijed čega je aplikacija postala manje deinstalirana, a povećanje konverzije u narudžbu je bilo 23%. Isprva je na test dato 20 posto dolaznog prometa, da bi nakon nekoliko dana, nakon analize prvih rezultata i procjene trenda, obrnuli proporcije i, naprotiv, ostavili 20 posto za kontrolnu grupu, a osamdeset posto je stavljeno na test. Sedmicu kasnije odlučeno je da se uzastopno doda testiranje još dvije hipoteze. Za samo sedam sedmica promet od Android aplikacije povećan je za jedan i po puta u odnosu na prethodni nivo.

Kako raditi sa Retentioneeringom?

Prvi koraci su prilično jednostavni - preuzmite biblioteku pomoću komande pip install retentioneering. Samo spremište sadrži gotove primjere i slučajeve obrade podataka za neke zadatke analitike proizvoda. Set se stalno ažurira sve dok ne bude dovoljan za prvo poznanstvo. Svako može uzeti gotove module i odmah ih primijeniti na svoje zadatke - to mu omogućava da što brže i efikasnije odmah postave proces detaljnije analize i optimizacije putanja korisnika. Sve ovo omogućava pronalaženje obrazaca korištenja aplikacija kroz jasan kod i dijeljenje ovog iskustva sa kolegama.

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

  • Zadržavanje je efikasno za praćenje i kontinuirano optimiziranje putanja korisnika i poboljšanje poslovnih performansi. Stoga se često dodaju nove funkcije aplikacijama za e-trgovinu, čiji se utjecaj na proizvod ne može uvijek točno predvidjeti. U nekim slučajevima se javljaju problemi kompatibilnosti između novih i starih funkcija - na primjer, nove "kanibaliziraju" postojeće. I u ovoj situaciji, stalna analiza putanja je upravo ono što je potrebno.
  • Slična je situacija i pri radu s kanalima oglašavanja: novi izvori prometa i reklamni kreativci se stalno testiraju, potrebno je pratiti sezonalnost, trendove i utjecaj drugih događaja, što dovodi do pojave sve više novih klasa problema. Ovo također zahtijeva stalno praćenje i tumačenje mehanike korisnika.
  • Postoji niz faktora koji stalno utiču na performanse aplikacije. Na primjer, nova izdanja programera: zatvarajući trenutni problem, oni nesvjesno vraćaju stari ili kreiraju potpuno novi. S vremenom, broj novih izdanja raste, a proces praćenja grešaka mora biti automatiziran, uključujući i analizu putanja korisnika.

Sve u svemu, Retentioneeing je efikasan alat. Ali ne postoji granica 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 korištenje.

Više informacija o alatima za zadržavanje:

izvor: www.habr.com

Dodajte komentar