Retentioneering: kuidas me open-source tööriistu tooteanalüüsiks Pythonis ja Pandasis kirjutasime

Tere, Habr. See artikkel käsitleb nelja-aastase arendustöö tulemusi, mille eesmärgiks on luua meetodite ja tööriistade kogum kasutajate liikumisteede töötlemiseks rakenduses või veebisaidil. Arenduse autor on Maksim Godzi, kes seisab toote loojate meeskonna eesotsas ja on ka artikli autor. Toode on saanud nimeks Retentioneering, see on nüüd muudetud avatud lähtekoodiga raamatukoguks ja paigutatud Githubi, et iga soovija saaks seda kasutada. See kõik võib huvi pakkuda neile, kes tegelevad tootearenduse ja turuanalüüsiga, toote reklaami ja arendamisega. Muide, Habris oli juba avaldatud artikkel ühe Retentioneeringu kasutusjuhtumi kohta. Uues materjalis räägitakse, milleks toode võimeline on ja kuidas seda kasutada.

Lugedes artiklit, saate ise kirjutada oma Retentioneeringu — selleks võib saada mis tahes standardiseeritud meetod kasutajate liikumiste töötlemiseks rakenduses ja selle väljaspool, mis võimaldab näha detailset käitumismudelit ja sellest ärilisi teadmisi tuua.

Mis on Retentioneering ja miks see vajalik on?

Alguses oli meie eesmärk viia Growth Hacking digitaalsete nõidade maailmast numbrite, analüüsi ja prognooside maailma. Selle tulemusena vähendatakse tooteanalüütikat puhtaks matemaatikaks ja programmeerimiseks neile, kes eelistavad ulmeliste lugude asemel numbreid, ning valemeid tarkade sõnade nagu „brändingu”, „positsioneerimise” jms, mis kõlavad kenasti, kuid praktiliselt aitavad vähe.

Nende probleemide lahendamiseks oli vajalik raamistik analüüsi jaoks graafide ja trajektooride kaudu ning samal ajal teeki, mis lihtsustaks analüütiku tavalisi rutiine, võimaldades kirjelda regulaarseid tooteanalüüsi ülesandeid mõistetaval viisil nii inimestele kui ka robotitele. Teek annab võimaluse kirjeldada kasutajate käitumist ja siduda seda toote ärimeetritega nii formaalses ja selges keeles, et lihtsustada ja automatiseerida arendajate ja analüütikute rutiinseid ülesandeid ning hõlbustada nende suhtlust äriüksetega.

Retentioneering on meetod ja analüütilised tarkvaratööriistad, mida saab kohandada ja integreerida igasse digitaalset (ja mitte ainult) toodet.

Alustasime tootearendust 2015. aastal. Tänaseks on see juba valmis, ehkki veel mitte ideaalne tööriistade komplekt Python ja Pandasiga andmete töötlemiseks, masinõppemudelid sklearn-sarnase API-ga, masinõppemudelite tulemuste tõlgendamise tööriistadeli5 ja shap.

Kogu see on kokku pakitud mugavasse avatud lähtekoodiga raamatukokku avatud GitHubi repozitooriumis — retentioneering-tools. Raamatukogu kasutamine ei ole raske, praktiliselt iga inimene, kes armastab tootearvestust, kuid ei ole kunagi koodi kirjutanud, võib meie analüüsi meetodeid oma andmetele rakendada iseseisvalt ja ilma suuremate ajakulu.

Arendaja, rakenduse looja või arendus- või testimismeeskonna liige, kes pole kunagi varem analüütikaga tegelenud, võib alustada selle koodiga mängimist ja näha oma rakenduse kasutamismustreid ilma välist abi saamata.

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

Kasutaja trajektoor on kasutaja seisundite järjestus teatud ajakohadel. Tegelikult võivad sündmused olla erinevatest andmeallikatest, nii veebis kui ka offline. Kasutaja kogetud sündmused on osa tema trajektoorist. Näited:
• vajutas nuppu
• nägi pilti
• jõudis ekraanile
• sai e-kirja
• soovitas toodet sõbrale
• täitis vormi
• puudutas ekraani
• keris alla
• läks kassasse
• tellis burrito
• jed burrito
• sai burrito tõttu toidumürgituse
• sisenes kohvikusse tagauksest
• sisenes peatrepust
• sulges rakenduse
• sai push-teate
• vaatas ekraani pikemat aega X
• maksis tellimuse eest
• lunastas tellimuse
• sai krediidi tagasi lükata

Kui võtta rühma kasutajate trajektooride andmed ja uurida, kuidas üleminekud toimivad, on võimalik jälgida, kuidas nende käitumine rakenduses kujuneb. Seda on mugav teha graafiku kaudu, kus olekud on sõlmed ja üleminekud olekute vahel on servad:

Retentioneering: kuidas me open-source tööriistu tooteanalüüsiks Pythonis ja Pandasis kirjutasime

«Trajektoor» on väga mugav mõisted – see sisaldab üksikasjalikku teavet kõigi kasutaja tegevuste kohta, võimaldades lisada igasuguseid lisanduvaid andmeid nende tegevuste kirjeldusse. See muudab selle universaalseks objektiks. Kui teil on ilusad ja mugavad tööriistad, mis võimaldavad trajektooridega töötada, siis saab leida sarnasusi ja neid segmenteerida.

Trajektooride segmenteerimine võib esmapilgul tunduda väga keeruline. Tavalistes olukordades on see tõepoolest nii – tuleb kasutada sidususe maatriksite võrdlemist või järjestuste joondamist. Oleme leidnud lihtsama viisi – uurida suurt hulka trajektoore ja segmenteerida need klasterdamise kaudu.

Selgus, et trajektoori saab punktiks muuta pidevate esinduste abil, näiteks TF-IDF. Pärast teisendamist muutub trajektoor punktiks ruumis, kus telgedel on erinevate sündmuste ja nende vaheliste üleminekute normeeritud esinemissagedus. Selle asi, mis asub tohutus tuhande- ja enamamõõtmelises ruumis (dimS=sum(sündmuste tüübid)+sum(ngram_2 tüübid)), saab projekteerida tasapinnale, kasutades TSNE. TSNE — teisendamine, vähendab ruumi mõõtmeid 2 teljele ja säilitab, kui võimalik, suhtelised kaugused punktide vahel. Seega on võimalik lamedal kaardil, kujutavate projektsioonikaartide trajektooridel uurida, kuidas punktid erinevate trajektooride vahel asusid. Analüüsitakse, kui lähedal või erinevad nad olid, kas nad moodustasid klastreid või hajusid kaardil jne:

Retentioneering: kuidas me open-source tööriistu tooteanalüüsiks Pythonis ja Pandasis kirjutasime

Retensioneeringi analüüsivahendid võimaldavad keerulise andmemassiivi ja trajektooride muutmist esitusviisiks, mida saab omavahel võrrelda ning seejärel uurida ja tõlgendada muundamise tulemust.

Räägime standardsetest trajektooride töötlemise meetoditest, mis hõlmavad kolme põhivahendit, mille oleme Retentioneeringis rakendanud — graafid, step-matriidx ja trajektooride projektsioonikaardid.

Töö Google Analyticsi, Firebase'i ja sarnaste analüütiliste süsteemidega on piisavalt keeruline ja ei ole 100% efektiivne. Probleem seisneb kasutaja teatud piirangutes, mille tõttu analüütika töötab sellistes süsteemides hiireklikkide ja lõigete valimisega. Retentioneering annab võimaluse töötada kasutajate trajektooridega, mitte ainult funnelitega, nagu Google Analyticsis, kus detailide tase sageli piirdub funneliga, isegi kui see on loodud mingi segmendi jaoks.

Retentioneering ja juhtumiuuringud

Näiteks loodud tööriista kasutamise kohta võib tuua näite suurest nišiteenusest Venemaal. Sellel ettevõttel on Androidi jaoks mobiilirakendus, mis on klientide seas populaarne. Aastane käive mobiilirakendusest oli umbes 7 miljonit rubla, hooajalised kõikumised jäädes vahemikku 60-130 tuhat. Samuti on sel ettevõttel olemas iOS-i rakendus, ning 'õun' rakenduse keskmine ostu summa oli suurem kui Androidi rakenduse keskmine klient — 1080 rubla võrreldes 1300 rublaga.

Ettevõte otsustas suurendada Android-rakenduse efektiivsust, viies läbi põhjaliku analüüsi. Välja töötati mitu tosin hüpoteesi rakenduse tulemuslikkuse suurendamiseks. Retentioneeringu kasutamise järel selgus, et probleem peitus sõnumites, mida näidati uutele kasutajatele. Nad said teavet brändi, ettevõtte eelistest ja hindadest. Kuid nagu selgus, pidid sõnumid aitama kasutajal rakendust kasutada.

Retentioneering: kuidas me open-source tööriistu tooteanalüüsiks Pythonis ja Pandasis kirjutasime

See tehti ja tulemusena hakati rakendust vähem kustutama ning tellimuste konversioon kasvas 23%. Alguses suunati testimiseks 20 protsenti sisenemisest, kuid paar päeva hiljem, analüüsides esimesi tulemusi ja hinnates suundumust, muudeti proportsioonid peegelpildiliselt. Jätkuks jäeti 20 protsenti kontrollgrupile ja 80 protsenti testiks. Veel nädala pärast otsustati järjestikku lisada veel kahe hüpoteesi testimine. Kokku seitsme nädala jooksul kasvas Android-rakenduse käive pooleteise korra võrra võrreldes varasema tasemega.

Kuidas Retentioneeringuga töötada?

Esimesed sammud on piisavalt lihtsad - laadime teegi alla käsu pip install retentioneering. Repositooriumis on valmis näidised ja andmeanalüüsi juhtumid mõnede tooteanalüüsi ülesannete jaoks. Komplektil on pidev täiendamine, kuid selleks on piisavalt materjale esmakordseks tutvumiseks. Igaüks saab valmis mooduleid kasutada ja rakendada neid oma ülesannetele - see võimaldab kiiresti ja efektiivselt seadistada põhjalikumate analüüside ja kasutajate teekondade optimeerimise protsessi. Kõik see võimaldab leida rakenduse kasutamise mustreid arusaadava koodi kaudu ja edastada see kogemus kolleegidele.

Retentioneering on tööriist, mida tasub kasutada kogu rakenduse eluea jooksul, ja siin on põhjused:

  • Retentioneering on efektiivne kasutajate teekondade jälgimiseks ja pidevaks optimeerimiseks ning ärinäitajate parandamiseks. Näiteks e-kaubanduse rakendustes lisatakse sageli uusi funktsioone, mille mõju tootetele ei pruugi alati õigesti ennustada. Mõningatel juhtudel tekivad uute ja vanade funktsioonide ühilduvuse probleemid — näiteks uued „kanibaliseerivad” juba olemasolevaid. Just selles olukorras on vajalik pidev teekondade analüüs.
  • Sarnane olukord on reklaamikanalitega: pidevalt testitakse uusi liiklusallikaid ja reklaamikreatiive, on oluline jälgida hooajalisust, suundi ja teiste sündmuste mõju, mis toob endaga kaasa uusi probleemide klasse. Siin on samuti vajalik pidev jälgimine ja kasutajate mehhanikate tõlgendamine.
  • On mitmeid tegureid, mis pidevalt mõjutavad rakenduse toimimist. Näiteks, uued väljaanded arendajatelt: lahendades jooksva probleemi, toovad nad tahtmatult tagasi vana või loovad täiesti uue. Aja jooksul uute väljaannete arv suureneb ning vigade jälgimise protsess tuleb automatiseerida — sealhulgas kasutajate trajektooride analüüsi abil.

Kokkuvõttes on Retentioneering tõhus tööriist. Kuid täiustamisele ei ole piire — seda saab ja tuleb täiustada, arendada ning selle baasil luua uusi ägedaid tooteid. Mida aktiivsem on projekti kogukond, seda rohkem on fork'e ja uusi huvitavaid kasutusvõimalusi.

Lisainformatsioon Retentioneeringu tööriistade kohta:

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster