Retentioneering: hoe't wy iepen boarne-ark skreaunen foar produktanalytyk yn Python en Pandas

Hallo, Habr. Dit artikel is wijd oan de resultaten fan fjouwer jier ûntwikkeling fan in set metoaden en ark foar it ferwurkjen fan trajekten fan brûkersbeweging yn in applikaasje of webside. Skriuwer fan 'e ûntwikkeling - Maxim Godzi, dy't it team fan produkt makkers liedt en ek de skriuwer fan it artikel is. It produkt sels waard Retentioneering neamd; it is no omboud ta in iepen boarne bibleteek en pleatst op Github, sadat elkenien it kin brûke. Dit alles kin fan belang wêze foar dyjingen dy't belutsen binne by produkt- en marketinganalyse, promoasje en produktûntwikkeling. Trouwens, op Habré der is al in artikel publisearre oer ien fan de gefallen fan it wurkjen mei Retentioneering. It nije materiaal leit út wat it produkt kin en hoe't it brûkt wurde kin.

Nei it lêzen fan it artikel sille jo sels jo eigen Retentioneering kinne skriuwe; it kin elke standerdisearre metoade wêze foar it ferwurkjen fan brûkerstrajekten yn 'e applikaasje en fierder, wêrtroch jo yn detail de skaaimerken fan gedrach kinne sjen en ynsjoch hjirút útpakke foar de groei fan saaklike metriken.

Wat is Retentioneering en wêrom is it nedich?

Us earste doel wie om Growth Hacking te ferpleatsen fan 'e wrâld fan "digitale hekserij" nei de wrâld fan sifers, analytiken en prognosen. As gefolch, produkt analytics wurdt redusearre ta suvere wiskunde en programmearring foar dyjingen dy't leaver sifers ynstee fan fantastyske ferhalen, en formules foar buzzwords lykas "rebranding", "repositioning", ensfh, dy't klinke moai, mar yn 'e praktyk helpe bytsje.

Om dizze problemen op te lossen, hienen wy in ramt nedich foar analytyk troch grafiken en trajekten, en tagelyk in bibleteek dy't typyske analystroutines ferienfâldiget, as in manier om reguliere produktanalytyske taken te beskriuwen dy't begryplik wêze soene foar sawol minsken as robots. De bibleteek biedt de mooglikheid om brûkersgedrach te beskriuwen en te keppeljen oan produktbedriuwsmetriken yn sa'n formele en dúdlike taal dat it de routinetaken fan ûntwikkelders en analisten ferienfâldiget en automatisearret, en har kommunikaasje mei it bedriuw fasilitearret.

Retentioneering is in metoade en analytyske software-ark dy't kinne wurde oanpast en yntegreare yn elk digitaal (en net allinich) produkt.

Wy begûnen te wurkjen oan it produkt yn 2015. No is dit in klear makke, hoewol noch net ideaal, set ark yn Python en Pandas foar it wurkjen mei gegevens, masine-learmodellen mei sklearn-like api, ark foar it ynterpretearjen fan de resultaten fan masine-learmodellen eli5 en shap.

It is allegear ynpakt nei in handige iepen boarne bibleteek yn it iepen Github repository - retensjonearring-ark. It brûken fan 'e bibleteek is net dreech; hast elkenien dy't fan produktanalytika hâldt, mar noch gjin koade earder skreaun hat, kin ús analytyske metoaden ûnôfhinklik en sûnder signifikante tiidynvestearring tapasse op har gegevens.

No, in programmeur, in oanmakker fan applikaasjes, of in lid fan in ûntwikkelings- of testteam dy't noch noait analytiken dien hat, kin begjinne te spyljen mei dizze koade en de gebrûkspatroanen fan har applikaasje sjen sûnder help fan bûten.

Brûkerstrajekt as basiselemint fan analyse en metoaden foar har ferwurking

Brûkerstrajekt is in folchoarder fan brûkerssteaten op bepaalde tiidpunten. Boppedat kinne eveneminten komme út ferskate gegevensboarnen, sawol online as offline. Gebeurtenissen dy't barre mei de brûker meitsje diel út fan syn trajekt. Foarbylden:
• drukte op de knop
• seach de foto
• hit it skerm
• krige in e-mail
• oanrikkemandearre it produkt oan in freon
• it formulier ynfolle
• tikke it skerm
• scrolled
• gie nei de kassa
• bestelde in burrito
• iet in burrito
• waard fergiftige troch it iten fan in burrito
• kaam it kafee yn fan de efteryngong
• ynfierd út de foarkant yngong
• minimalisearre de applikaasje
• krige in push notifikaasje
• siet langer fêst op it skerm as X
• betelle foar de bestelling
• kocht de bestelling
• waard in liening wegere

As jo ​​de trajektgegevens fan in groep brûkers nimme en studearje hoe't transysjes strukturearre binne, kinne jo krekt trace hoe't har gedrach yn 'e applikaasje strukturearre is. It is handich om dit te dwaan troch in grafyk wêryn steaten knopen binne, en oergongen tusken steaten rânen binne:

Retentioneering: hoe't wy iepen boarne-ark skreaunen foar produktanalytyk yn Python en Pandas

"Trajectory" is in heul handich konsept - it befettet detaillearre ynformaasje oer alle brûkersaksjes, mei de mooglikheid om ekstra gegevens ta te foegjen oan 'e beskriuwing fan dizze aksjes. Dit makket it in universele objekt. As jo ​​prachtige en handige ark hawwe wêrmei jo kinne wurkje mei trajekten, dan kinne jo oerienkomsten fine en se segmentearje.

Trajektsegmentaasje kin earst heul yngewikkeld lykje. Yn in normale situaasje is dit it gefal - jo moatte ferbiningsmatrixfergeliking of folchoarderôfstimming brûke. Wy wisten in ienfâldiger manier te finen - in grut oantal trajekten te studearjen en se te segmentearjen troch klustering.

Sa die bliken, is it mooglik om in trajekt yn in punt te feroarjen mei help fan trochgeande foarstellings, bygelyks, TF-IDF. Nei de transformaasje wurdt it trajekt in punt yn 'e romte dêr't it normalisearre foarkommen fan ferskate foarfallen en oergongen dêrtusken yn it trajekt lâns de assen útset wurdt. Dit ding út in enoarme tûzen- of mear-diminsjonale romte (dimS = som (event types) + sum (ngrams_2 types)) kin wurde projektearre op in fleantúch mei help fan TSNE. TSNE is in transformaasje dy't ferleget de diminsje fan romte ta 2 assen en, as it mooglik is, behâldt de relative ôfstannen tusken punten. Dêrtroch wurdt it mooglik op in platte kaart, in figuerlike projeksjekaart fan trajekten, te bestudearjen hoe't de punten fan ferskate trajekten ûnderinoar leine. It analysearret hoe ticht of oars se by elkoar wiene, oft se klusters foarmen of ferspraat wiene oer de kaart, ensfh.

Retentioneering: hoe't wy iepen boarne-ark skreaunen foar produktanalytyk yn Python en Pandas

Retentioneering analytyske ark jouwe de mooglikheid om komplekse gegevens en trajekten te feroarjen yn in werjefte dy't mei elkoar fergelike wurde kin, en dan kin it resultaat fan 'e transformaasje ûndersocht en ynterpretearre wurde.

Sprekke oer standertmetoaden foar it ferwurkjen fan trajekten, bedoele wy trije haadynstruminten dy't wy hawwe ymplementearre yn Retentioneering - grafiken, stapmatriksen en trajektprojeksjekaarten.

Wurkje mei Google Analytics, Firebase en ferlykbere analytyske systemen is frij kompleks en net 100% effektyf. It probleem is in oantal beheiningen foar de brûker, wêrtroch it wurk fan 'e analist yn sokke systemen hinget fan mûsklikken en seleksje fan plakjes. Retentioneering makket it mooglik om te wurkjen mei brûker trajekten, en net allinnich mei trechters, lykas yn Google Analytics, dêr't it nivo fan detail wurdt faak werombrocht ta in trechter, al is boud foar in bepaald segmint.

Retentioneering en gefallen

As foarbyld fan it brûken fan it ûntwikkele ark, kinne wy ​​neame it gefal fan in grutte niche tsjinst yn Ruslân. Dit bedriuw hat in Android mobile applikaasje dy't populêr is ûnder klanten. De jierlikse omset fan 'e mobile applikaasje wie sawat 7 miljoen roebel, seizoensfluktuaasjes farieare fan 60-130 tûzen. Itselde bedriuw hat ek in applikaasje foar iOS, en de gemiddelde rekken fan in brûker fan' e Apple-applikaasje wie heger as de gemiddelde rekken fan in klant mei de Android-applikaasje - 1080 rub. tsjin 1300 rub.

It bedriuw besleat om de effisjinsje fan 'e Android-applikaasje te fergrutsjen, wêrfoar it in yngeande analyse hat útfierd. Ferskate tsientallen hypotezen waarden generearre oer it fergrutsjen fan de effektiviteit fan 'e applikaasje. Nei it brûken fan Retentionneering die bliken dat it probleem siet yn de berjochten dy't werjûn waarden oan nije brûkers. Se krigen ynformaasje oer it merk, bedriuwsfoardielen en prizen. Mar, sa die bliken, soene de berjochten de brûker helpe te learen hoe te wurkjen yn 'e applikaasje.

Retentioneering: hoe't wy iepen boarne-ark skreaunen foar produktanalytyk yn Python en Pandas

Dit waard dien, wêrtroch't de applikaasje minder deinstalleare waard, en de tanimming fan konversaasje nei bestelling wie 23%. Earst waard 20 prosint fan it ynkommende ferkear oan 'e test jûn, mar nei in pear dagen, nei it analysearjen fan 'e earste resultaten en it beoardieljen fan 'e trend, kearden se de proporsjes en, krekt oarsom, lieten 20 prosint foar de kontrôlegroep, en tachtich prosint waard pleatst yn de test. In wike letter waard besletten om opfolgjend testen fan twa oare hypotezen ta te foegjen. Yn mar sân wiken is de omset fan 'e Android-applikaasje mei oardel kear ferhege yn fergeliking mei it foarige nivo.

Hoe wurkje mei Retentioneering?

De earste stappen binne frij ienfâldich - download de bibleteek mei it kommando pip-ynstallaasje retentioneering. It repository sels befettet klearmakke foarbylden en gefallen fan gegevensferwurking foar guon produktanalytyske taken. De set wurdt konstant bywurke oant it genôch is foar in earste kunde. Elkenien kin klearmakke modules nimme en se fuortendaliks tapasse op har taken - dit makket it mooglik om it proses fan mear detaillearre analyze en optimisaasje fan brûkerstrajekten sa fluch en effisjint mooglik op te setten. Dit alles makket it mooglik om gebrûkspatroanen foar applikaasjes te finen fia dúdlike koade en dizze ûnderfining te dielen mei kollega's.

Retentioneering is in ark dat it wurdich is om it hiele libben fan jo applikaasje te brûken, en hjir is wêrom:

  • Retentioneering is effektyf foar it folgjen en kontinu optimalisearjen fan brûkerstrajekten en it ferbetterjen fan saaklike prestaasjes. Sa wurde nije funksjes faak tafoege oan e-commerce-applikaasjes, wêrfan de ynfloed op it produkt net altyd goed kin wurde foarsizze. Yn guon gefallen ûntsteane kompatibiliteitsproblemen tusken nije en âlde funksjes - bygelyks nije "kannibalisearje" besteande. En yn dizze situaasje, konstante analyze fan trajekten is krekt wat nedich is.
  • De situaasje is fergelykber by it wurkjen mei reklamekanalen: nije ferkearsboarnen en reklame-kreatives wurde konstant hifke, it is needsaaklik om seizoensferoaring, trends en de ynfloed fan oare eveneminten te kontrolearjen, wat liedt ta it ûntstean fan hieltyd mear nije klassen fan problemen. Dit freget ek konstante tafersjoch en ynterpretaasje fan brûkersmeganika.
  • D'r binne in oantal faktoaren dy't konstant ynfloed hawwe op 'e prestaasjes fan in applikaasje. Bygelyks, nije releases fan ûntwikkelders: it sluten fan in aktueel probleem, se ûnwittend werom de âlde of meitsje in folslein nij. Mei de tiid groeit it oantal nije releases, en it proses fan it folgjen fan flaters moat automatisearre wurde, ynklusyf troch analysearjen fan brûkerstrajekten.

Oer it algemien is Retentioneering in effektyf ark. Mar d'r is gjin limyt foar perfeksje - it kin en moat wurde ferbettere, ûntwikkele en nije koele produkten boud op har basis. Hoe aktyf de mienskip fan it projekt is, hoe mear foarken sille der wêze, en nije nijsgjirrige opsjes foar it brûken sille ferskine.

Mear ynformaasje oer Retentioneering-ark:

Boarne: www.habr.com

Add a comment