Hej, Habr. Denne artikel handler om resultaterne af fire års udvikling af en række metoder og værktøjer til behandling af brugerbevægelser i en applikation eller på et website. Udvikleren er , som står i spidsen for teamet af produktets skabere, og han er også forfatter til artiklen. Selve produktet har fået navnet Retentioneering, som nu er omdannet til et open-source bibliotek og er tilgængeligt på Github, så enhver kan anvende det. Alt dette kan være interessant for dem, der arbejder med produkt- og marketinganalyse, promovering og udvikling af produkter. For øvrigt er der allerede blevet offentliggjort en artikel på Habr om et af casestudierne med Retentioneering. Når du har læst artiklen, vil du selv kunne skrive dit eget Retentioneering; det kan blive enhver standardiseret metode til behandling af brugerbevægelser i applikationen og uden for den, som gør det muligt at se detaljerne i adfærden og udtrække indsigter til vækst i forretningsmetrikker.
Hvad er Retentioneering, og hvorfor er det nødvendigt?
Oprindeligt var vores mål at oversætte Growth Hacking fra en verden af 'digital hekseri' til en verden af tal, analyse og forudsigelser. Som følge heraf blev produktanalysen forenklet til ren matematik og programmering for dem, der foretrækker tal frem for fantastiske historier, og formler frem for smarte ord som 'rebranding', 'repositionering' osv., der lyder flot, men som i praksis sjældent hjælper.
Til at løse de nævnte opgaver var der behov for et rammeværk til analyse gennem grafer og bevægelser, samtidig med at vi havde brug for et bibliotek, der forenkler de typiske rutiner for analytikere som en måde at beskrive regelmæssige opgaver inden for produktanalyse, der ville være forståelig både for mennesker og maskiner. Biblioteket giver mulighed for at beskrive brugeradfærd og forbinde dette med produktets forretningsmetrikker på et så formelt og klart sprog, at det forenkler og automatiserer udvikleres og analytikeres rutineopgaver og letter deres kommunikation med forretningen.
Retentioneering er en metode og analytiske softwareværktøjer, der kan tilpasses og integreres i ethvert digitalt (og ikke kun) produkt.
Retentioneering er en metode og analytiske softwareværktøjer, der kan tilpasses og integreres i ethvert digitalt (og ikke kun) produkt.
Vi begyndte arbejdet på produktet i 2015. Nu er det allerede et færdigt, omend ikke perfekt sæt værktøjer i Python og Pandas til databehandling, maskinlæringsmodeller med sklearn-lignende API, og værktøjer til fortolkning af resultaterne fra maskinlæringsmodeller som eli5 og shap.
Alt dette er pakket . Det er ikke svært at bruge biblioteket, næsten enhver, der interesserer sig for produktoplysning, men som ikke har skrevet kode før, kan selv anvende vores analysemetoder på sine data uden betydelig tidsinvestering.
Og en programmør, skaber af en applikation eller medlem af udviklings- eller testteamet, som aldrig før har arbejdet med analyse, kan begynde at lege med denne kode og se brugsmønstre af sin applikation uden hjælp udefra.
Brugerens forløb som grundlæggende element i analysen og metoderne til dets behandling
Brugerens forløb — en sekvens af brugerens tilstande på bestemte tidspunkter. Desuden kan begivenheder stamme fra forskellige datakilder, både online og offline. Begivenheder, der fandt sted med brugeren — en del af hans forløb. Eksempler:
• trykkede på en knap
• så et billede
• blev ledt til en skærm
• modtog en mail
• anbefalede produktet til en ven
• udfyldte en formular
• tappede på skærmen
• scrollede
• gik til kassen
• bestilte en burrito
• spiste burritoen
• blev syg af den spiste burrito
• gik ind i caféen fra bagindgangen
• gik ind fra hovedindgangen
• lukkede applikationen
• modtog en push-besked
• gloede på skærmen længere end tid X
• betalte for ordren
• hentede ordren
• fik afslag på lånet
Hvis man tager data fra forløbene for en gruppe brugere og undersøger, hvordan overgange er struktureret, kan man følge, hvordan deres adfærd i applikationen opbygges. Dette kan nemt gøres gennem en graf, hvor tilstande er noder, og overgange mellem tilstandene er kanter:

»Trajectory« er et meget praktisk begreb — det indeholder detaljerede oplysninger om alle brugerhandlinger med mulighed for at tilføje enhver supplerende information til beskrivelsen af disse handlinger. Dette gør det til et universelt objekt. Hvis du har smukke og praktiske værktøjer, der gør det muligt at arbejde med traektorier, kan du finde ligheder og segmentere dem.
Segmentering af traektorier kan i starten virke som noget meget komplekst. Normalt er det også tilfældet — det kræver brug af sammenligning af forbindelsesmatricer eller sekvensjustering. Vi har fundet en enklere metode — at studere et stort antal traektorier og segmentere dem gennem klyngedannelse.
Det viser sig, at man kan transformere en traektorie til et punkt ved hjælp af kontinuerlige repræsentationer, for eksempel, . Efter transformationen bliver traektorien et punkt i rummet, hvor de normaliserede frekvenser af forskellige hændelser og overgange i traektorien er afsat langs akserne. Denne ting fra et kæmpe tusinde- og mere dimensionelt rum (dimS=sum(event types)+sum(ngrams_2 types)), kan projiceres ned på en plan ved hjælp af . TSNE — transformationen reducerer dimensionen af rummet til 2 akser og forsøger at bevare de relative afstande mellem punkterne. Derfor bliver det muligt at studere, hvordan punkterne fra forskellige traektorier var placeret i det flade kort, det billedlige projiceringskort af traektorier. Der analyseres, hvor tæt eller forskelligt de var i forhold til hinanden, om de dannede klynger eller spredte sig over kortet osv.:

Analytiske værktøjer fra Retentioneering giver mulighed for at transformere et sæt komplekse data og traektorier til en repræsentation, der kan sammenlignes med hinanden, og derefter undersøge og fortolke resultatet af transformationen.
Når vi taler om standardmetoder til behandling af traektorier, henvises der til tre grundlæggende værktøjer, som vi har implementeret i Retentioneering — grafer, step matricer og projiceringskort for traektorier.
At arbejde med Google Analytics, Firebase og lignende analyseværktøjer er ofte komplekst og ikke altid 100% effektivt. Problemet ligger i en række brugermæssige begrænsninger, hvilket får analytikerens arbejde til at blive begrænset til museklik og valg af segmenter. Retentioneering giver mulighed for at arbejde med brugerbaner og ikke kun med traktorer, som det er tilfældet i Google Analytics, hvor detaljeringsgraden ofte reduceres til en trakt, selvom den er bygget til et bestemt segment.
Retentioneering og cases
Som et eksempel på brugen af det udviklede værktøj kan nævnes en stor niche-service i Rusland. Denne virksomhed har en mobilapp til Android, som er populær blandt kunderne. Den årlige omsætning fra mobilappen var omkring 7 millioner rubler, med sæsonmæssige udsving på mellem 60.000 og 130.000. Virksomheden har også en iOS-app, og den gennemsnitlige ordre for brugeren af den 'æble'-app var højere end den for kunden, der brugte Android-appen — 1080 rubler imod 1300 rubler.
Virksomheden besluttede at øge effektiviteten af Android-appen, og derfor foretog de en grundig analyse. Der blev formuleret flere dusin hypoteser om forbedring af appens effektivitet. Efter brugen af Retentioneering viste det sig, at problemet lå i de beskeder, der blev vist til nye brugere. De fik information om brandet, virksomhedens fordele og priserne. Men det viste sig, at beskederne skulle hjælpe brugeren med at lære at bruge appen.

Det blev der gjort noget ved, hvilket resulterede i færre afinstallationer af appen, og konverteringsvæksten til bestilling steg med 23%. I starten blev 20 procent af den indkommende trafik afsat til testen, men efter et par dage, efter at have analyseret de første resultater og vurderet trenden — blev proportionerne ændret spejlvendt, og i stedet blev 20 procent for kontrolgruppen, mens de 80 procent blev placeret i testen. En uge senere blev det besluttet gradvist at tilføje testning af endnu to hypoteser. I alt blev omsætningen fra Android-appen efter syv uger øget med 50% i forhold til det tidligere niveau.
Hvordan arbejder man med Retentioneering?
De første skridt er ganske enkle – vi henter biblioteket med kommandoen pip install retentioneering. I selve repositoryet ligger der klarlagte eksempler og cases til behandling af data for nogle opgaver inden for produktanalyse. Sættet bliver løbende opdateret, men det er tilstrækkeligt til en første introduktion. Alle kan tage de færdige moduler og straks anvende dem på deres opgaver – det gør det muligt hurtigere og mere effektivt at indstille processen for en mere detaljeret analyse og optimering af brugerrejser. Alt dette giver mulighed for at finde mønstre i brugen af applikationen gennem forståelig kode og dele denne erfaring med kolleger.
Retentioneering – et værktøj, som bør anvendes i hele applikationens livscyklus, og her er hvorfor:
- Retentioneering er effektivt til at spore og kontinuerligt optimere brugerrejser og forbedre forretningsresultater. For eksempel tilføjes der ofte nye funktioner i ecommerce-applikationer, hvis indflydelse på produktet ikke altid kan forudses korrekt. I nogle tilfælde opstår der problemer med kompatibiliteten mellem nye og gamle funktioner – for eksempel “kanibaliserer” de nye allerede eksisterende. Og i denne situation er der netop behov for konstant analyse af rejserne.
- En lignende situation gør sig gældende i arbejdet med reklamekanaler: nye trafik-kilder og kreative reklamer testes hele tiden, det er nødvendigt at spore sæsonmæssige tendenser og indflydelsen af andre begivenheder, hvilket fører til opståen af stadig flere klassiske problemer. Her kræves der også konstant overvågning og fortolkning af brugerens mekanikker.
- Der er en række faktorer, der konstant påvirker applikationens drift. For eksempel nye versioner fra udviklerne: når de løser et aktuelt problem, kan de utilsigtet genindsætte en gammel fejl eller skabe en helt ny. Over tid vokser antallet af nye versioner, og processen med at spore fejl skal automatiseres – herunder ved hjælp af analyse af brugerrejser.
Generelt set er Retentioneering et effektivt værktøj. Men perfektion har ingen grænser – det kan og skal forbedres, udvikles og danne grundlag for nye spændende produkter. Jo mere aktivt projektets fællesskab er, jo flere forks vil der være, og der vil dukke op nye interessante anvendelsesmuligheder.
Yderligere information om Retentioneering-værktøjerne:
- Vores hjemmeside:
- og tilmelding til deltagelse
- Gratis
Kilde: habr.com
