Säilitamine: kuidas kirjutasime Pythonis ja Pandas avatud lähtekoodiga tooteanalüütika tööriistu

Tere Habr. See artikkel on pühendatud neli aastat kestnud meetodite ja tööriistade komplekti väljatöötamise tulemustele kasutaja liikumistrajektooride töötlemiseks rakenduses või veebisaidil. arenduse autor - Maxim Godzi, kes on toote loojate meeskonna eesotsas, on ta ka artikli autor. Toode ise kandis nime Retentioneering, nüüd on see muudetud avatud lähtekoodiga teegiks ja majutatud Githubis, et igaüks saaks seda kasutada. Kõik see võib huvi pakkuda neile, kes tegelevad toote- ja turundusanalüüsi, toote edendamise ja arendusega. Muide, Habrel artikkel on juba avaldatud ühest Retentioneeringuga töötamise juhtumist. Uues materjalis selgitatakse, milleks toode võimeline on ja kuidas seda kasutada saab.

Pärast artikli lugemist saate kirjutada oma Retentioneeringu, see võib olla mis tahes standardne meetod kasutajate trajektooride töötlemiseks rakenduses ja mujal, mis võimaldab teil üksikasjalikult näha käitumise omadusi ja saada sellest teadmisi kasutajate kasvu jaoks. ärimõõdikud.

Mis on säilitamine ja miks seda vaja on?

Algselt oli meie eesmärk viia Growth Hacking "digitaalse nõiduse" maailmast numbrite, analüütika ja prognooside maailma. Selle tulemusena taandub tooteanalüütika puhtale matemaatikale ja programmeerimisele neile, kes eelistavad fantastiliste lugude asemel numbreid ning valemid nutikateks sõnadeks nagu “rebränding”, “ümberpositsioneerimine” jne, mis kõlavad kaunilt, kuid praktikas mitte. palju aidata.

Nende probleemide lahendamiseks vajasime graafikute ja trajektooride kaudu analüütika raamistikku ning samal ajal tüüpilist analüütikute rutiine lihtsustavat teeki, et kirjeldada tavalisi tooteanalüütika ülesandeid, mis oleksid arusaadavad nii inimestele kui ka robotitele. Teek annab võimaluse kirjeldada kasutajate käitumist ja siduda see toote ärimõõdikutega sellises formaalses ja selges keeles, et lihtsustada ja automatiseerida arendajate ja analüütikute rutiinseid ülesandeid ning hõlbustada nende suhtlemist ettevõttega.

Retentioneering on meetod ja analüütilised tarkvaratööriistad, mida saab kohandada ja integreerida mis tahes digitaalse (ja mitte ainult) tootega.

Alustasime toote kallal töötamist 2015. aastal. Nüüd on see valmis, kuigi mitte veel ideaalne tööriistade komplekt Pythonis ja Pandas andmetega töötamiseks, masinõppemudelid koos sklearni-laadse api-ga, tööriistad eli5 tulemuste tõlgendamiseks ja shap masinõppe mudelid.

See kõik on kokku keeratud mugavasse avatud lähtekoodiga teeki avatud Githubi hoidlas – säilitamistööriistad. Teegi kasutamine pole keeruline, peaaegu igaüks, kes armastab tooteanalüütikat, kuid pole varem koodi kirjutanud, saab meie analüüsimeetodeid oma andmetele iseseisvalt ja ilma palju aega kulutamata rakendada.

Noh, programmeerija, rakenduste looja või arendus- või testimismeeskonna liige, kes pole kunagi varem analüüsiga tegelenud, saab selle koodiga mängima hakata ja näha oma rakenduse kasutamise mustreid ilma kõrvalise abita.

Kasutaja trajektoor kui analüüsi põhielement ja meetodid selle töötlemiseks

Kasutaja trajektoor on kasutaja olekute jada teatud ajahetkedel. Lisaks võivad sündmused pärineda erinevatest andmeallikatest, nii võrgus kui ka väljaspool seda. Kasutajaga juhtunud sündmused on osa tema trajektoorist. Näited:
• vajutas nuppu
• nägi pilti
• vajuta ekraanile
• saanud meili
• soovitas toodet sõbrale
• täitis ankeedi
• puudutas ekraani
• keritud
• lähenes kassale
• tellis burrito
• sõi burritot
• mürgitatud burrito poolt, mida ta sõi
• siseneti kohvikusse tagumisest sissepääsust
• siseneti peasissekäigust
• minimeeris rakenduse
• sai tõuketeate
• loll kauem ekraanil Х
• maksis tellimuse eest
• lunastas tellimuse
• keelduti laenu andmisest

Kui võtta kasutajate rühma trajektooriandmed ja uurida, kuidas üleminekud toimivad, näete täpselt, kuidas nende käitumine rakenduses on üles ehitatud. Seda on mugav teha graafiku kaudu, kus olekud on sõlmed ja olekutevahelised üleminekud servad:

Säilitamine: kuidas kirjutasime Pythonis ja Pandas avatud lähtekoodiga tooteanalüütika tööriistu

"Trajektoor" on väga mugav kontseptsioon - see sisaldab üksikasjalikku teavet kõigi kasutaja toimingute kohta koos võimalusega lisada nende toimingute kirjeldusele täiendavaid andmeid. See muudab selle üldiseks objektiks. Kui teil on ilusad ja mugavad tööriistad, mis võimaldavad teil trajektooridega töötada, saate leida sarnasusi ja neid segmentida.

Trajektoori segmenteerimine võib alguses tunduda väga keeruline. Tavaolukorras on see tõsi – tuleb kasutada ühenduvusmaatriksite võrdlust või järjestuste joondust. Meil õnnestus leida lihtsam viis – uurida suurt hulka trajektoore ja segmenteerida need klastrite abil.

Nagu selgus, on võimalik muuta trajektoori punktiks pidevate esituste abil, näiteks TF-IDF. Pärast teisendust muutub trajektoor ruumipunktiks, kus erinevate sündmuste ja nendevaheliste üleminekute trajektoori normaliseeritud esinemine joonistatakse piki telgesid. Seda tohutust tuhande- ja enamamõõtmelisest ruumist (dimS=summa(sündmuse tüübid)+summa(ngrams_2 tüüpi)) saab projitseerida tasapinnale kasutades TSNE. TSNE - teisendus, vähendab ruumi mõõtmeid 2 teljeni ja võimalusel säilitab punktide suhtelised kaugused. Sellest lähtuvalt saab tasasel kaardil ehk trajektooride kujundlikul projektsioonkaardil uurida, kuidas erinevate trajektooride punktid omavahel paiknesid. Analüüsitakse, kui lähedased või erinevad need üksteisele olid, kas moodustasid klastreid või olid kaardil hajutatud jne:

Säilitamine: kuidas kirjutasime Pythonis ja Pandas avatud lähtekoodiga tooteanalüütika tööriistu

Säilitavad analüütilised tööriistad võimaldavad muuta keerulised andmed ja trajektoorid esituseks, mida saab omavahel võrrelda, ning seejärel uurida ja tõlgendada teisenduse tulemust.

Tavalistest trajektooritöötlusmeetoditest rääkides peame silmas kolme peamist tööriista, mida oleme Retentioneeringus rakendanud – graafikud, sammumaatriksid ja trajektoori projektsioonikaardid.

Google Analyticsi, Firebase'i ja sarnaste analüüsisüsteemidega töötamine on üsna keeruline ja mitte 100% tõhus. Probleemiks on mitmed kasutajale seatud piirangud, millest tulenevalt toetub analüütiku töö sellistes süsteemides hiireklõpsudele ja viilude valikule. Retentioneering võimaldab töötada kasutajate trajektooridega, mitte ainult lehtritega, nagu Google Analyticsis, kus detailide tase on sageli taandatud lehtriks, kuigi see on ehitatud teatud segmendi jaoks.

Säilitamine ja juhtumiuuringud

Näitena väljatöötatud tööriista kasutamisest võib tuua juhtumi suurest nišiteenusest Venemaal. Sellel ettevõttel on klientide seas populaarne Androidi mobiilirakendus. Aastakäive mobiilirakendusest oli ca 7 miljonit rubla, sesoonsed kõikumised jäid 60-130 tuhande piiresse Samal firmal on rakendus ka iOS-ile ning "õuna" rakenduse kasutaja keskmine kontroll oli keskmisest kõrgem kliendi kontroll Androidi rakenduse abil - 1080 hõõruda. 1300 rubla vastu.

Ettevõte otsustas Androidi rakenduse efektiivsust tõsta, mille jaoks viis läbi põhjaliku analüüsi. Rakenduse efektiivsuse tõstmiseks püstitati mitukümmend hüpoteesi. Pärast Retentionneeringi kasutamist selgus, et probleem oli sõnumites, mida uutele kasutajatele näidati. Nad said teavet kaubamärgi, ettevõtte eeliste ja hindade kohta. Kuid nagu selgus, pidid sõnumid aitama kasutajal rakenduses töötamist õppida.

Säilitamine: kuidas kirjutasime Pythonis ja Pandas avatud lähtekoodiga tooteanalüütika tööriistu

Seda tehtigi, mille tulemusena hakati rakendust vähem kustutama ning tellimusele konverteerimise kasv oli 23%. Algul anti testile 20 protsenti sissetulevast liiklusest, kuid paar päeva hiljem pöörati pärast esimeste tulemuste analüüsi ja trendi hindamist proportsioonid ümber ja vastupidi, jäeti kontrollrühmale 20 protsenti ning paigutati testis kaheksakümmend protsenti. Nädal hiljem otsustati lisada veel kahe hüpoteesi testimine. Vaid seitsme nädalaga kasvas Androidi rakenduse käive eelmise tasemega võrreldes poolteist korda.

Kuidas Retentioneeringuga töötada?

Esimesed sammud on üsna lihtsad – laadime teeki pip install retentioneering käsuga. Repositoorium ise sisaldab mõne tooteanalüüsi ülesande jaoks valmis näiteid ja andmetöötlusjuhtumeid. Komplekt täieneb pidevalt, kuni sellest piisab esimeseks tutvumiseks. Igaüks saab võtta valmis moodulid ja koheselt oma ülesannetele rakendada – see võimaldab koheselt võimalikult kiiresti ja tõhusalt paika panna kasutajate trajektooride detailsema analüüsi ja optimeerimise protsessi. Kõik see võimaldab arusaadava koodi kaudu leida rakenduste kasutusmustreid ja jagada seda kogemust kolleegidega.

Säilitamine on tööriist, mida tasub kasutada kogu rakenduse eluea jooksul ja põhjus on siin.

  • Säilitamine on tõhus kasutajate trajektooride jälgimiseks ja pidevaks optimeerimiseks ning äritegevuse parandamiseks. Seega lisatakse e-poe rakendustesse sageli uusi funktsioone, mille mõju tootele ei saa alati õigesti ennustada. Mõnel juhul on uute ja vanade funktsioonide ühilduvusprobleemid – näiteks uued "kannibaliseerivad" olemasolevaid. Ja selles olukorras on vaja pidevat trajektooride analüüsi.
  • Sarnane on olukord ka töös reklaamikanalitega: pidevalt katsetatakse uusi liiklusallikaid ja reklaame, on vaja jälgida hooajalisust, trende ja muude sündmuste mõju, mis toob kaasa uute probleemide klasside esilekerkimise. See nõuab ka kasutajamehaanika pidevat jälgimist ja tõlgendamist.
  • Rakenduse toimimist pidevalt mõjutavad mitmed tegurid. Näiteks arendajate uued väljaanded: tegeliku probleemi sulgedes tagastavad nad tahtmatult vana või loovad täiesti uue. Aja jooksul uute väljalasete arv kasvab ja vigade jälgimise protsess tuleb automatiseerida, sealhulgas kasutajate liikumisteid analüüsides.

Üldiselt on säilitamine tõhus vahend. Täiuslikkusel pole aga piire – seda saab ja tuleb täiustada, arendada ja selle põhjal ehitada uusi lahedaid tooteid. Mida aktiivsem on projektikogukond, seda rohkem on kahvleid, ilmuvad uued huvitavad võimalused selle kasutamiseks.

Lisateavet säilitamise tööriistade kohta:

Allikas: www.habr.com

Lisa kommentaar