Retentioneering: miten kirjoitimme avoimen lähdekoodin tuoteanalytiikkatyökalut Pythonissa ja Pandasissa

Hei Habr. Tämä artikkeli on omistettu tuloksiin nelivuotisesta menetelmien ja työkalujen kehittämisestä käyttäjien liikeratojen käsittelyyn sovelluksessa tai verkkosivustolla. Kehityksen kirjoittaja - Maxim Godzi, joka on tuotekehitysryhmän johtaja, hän on myös artikkelin kirjoittaja. Itse tuotteen nimi oli Retentioneering, nyt se on muutettu avoimen lähdekoodin kirjastoksi ja isännöi Githubissa, jotta kuka tahansa voi käyttää sitä. Kaikki tämä saattaa kiinnostaa niitä, jotka ovat mukana tuote- ja markkinointianalyysissä, tuotteiden edistämisessä ja kehittämisessä. Muuten, Habreen yhdestä Retentioneeringin kanssa työskentelytapauksesta on jo julkaistu artikkeli. Uudessa materiaalissa kerrotaan, mihin tuote pystyy ja miten sitä voidaan käyttää.

Artikkelin lukemisen jälkeen voit kirjoittaa oman Retentioneeringsi, se voi olla mikä tahansa standardoitu menetelmä käyttäjien liikeratojen käsittelyyn sovelluksessa ja sen ulkopuolella, jolloin voit nähdä yksityiskohtaisesti käyttäytymisen piirteet ja poimia tästä oivalluksia liiketoiminnan mittareita.

Mitä säilyttäminen on ja miksi sitä tarvitaan?

Aluksi tavoitteemme oli siirtää Growth Hacking "digitaalisen noituuden" maailmasta numeroiden, analytiikan ja ennusteiden maailmaan. Tämän seurauksena tuoteanalytiikka rajoittuu puhtaaseen matematiikkaan ja ohjelmointiin niille, jotka pitävät enemmän numeroista fantastisten tarinoiden sijaan, ja kaavat älykkäiksi sanoiksi, kuten "uudelleenbrändäys", "repositioning" jne., jotka kuulostavat kauniilta, mutta käytännössä eivät. auttaa paljon.

Näiden ongelmien ratkaisemiseksi tarvitsimme analytiikan viitekehyksen kaavioiden ja liikeratojen avulla ja samalla kirjaston, joka yksinkertaistaa tyypillisiä analyytikkorutiineja, jotta voidaan kuvata tavallisia tuoteanalytiikkatehtäviä, jotka olisivat ymmärrettäviä sekä ihmisille että roboteille. Kirjasto tarjoaa mahdollisuuden kuvata käyttäjien käyttäytymistä ja linkittää sen tuotteen liiketoiminnan mittareihin niin muodollisella ja selkeällä kielellä, mikä yksinkertaistaa ja automatisoi kehittäjien ja analyytikoiden rutiinitehtävät sekä helpottaa heidän kommunikointiaan yrityksen kanssa.

Retentioneering on menetelmä ja analyyttinen ohjelmistotyökalu, joka voidaan mukauttaa ja integroida mihin tahansa digitaaliseen (eikä vain) tuotteeseen.

Aloitimme tuotteen parissa työskentelemisen vuonna 2015. Nyt se on valmiita, vaikkakaan ei vielä ihanteellisia työkaluja Pythonissa ja Pandasissa datan kanssa työskentelyyn, koneoppimismalleja sklearn-tyyppisillä api:illa, työkaluja eli5:n tulosten tulkintaan ja shap koneoppimismalleja.

Kaikki on päätetty kätevään avoimen lähdekoodin kirjastoon avoimessa Github-varastossa - säilytystyökalut. Kirjaston käyttäminen ei ole vaikeaa, melkein jokainen tuoteanalytiikkaa rakastava, mutta ei aiemmin koodia kirjoittanut, voi soveltaa analytiikkamenetelmiämme tietoihinsa yksin ja ilman paljon aikaa.

Ohjelmoija, sovellusten luoja tai kehitys- tai testaustiimin jäsen, joka ei ole koskaan aiemmin tehnyt analytiikkaa, voi aloittaa pelaamisen tällä koodilla ja nähdä sovelluksensa käytön malleja ilman ulkopuolista apua.

Käyttäjärata analyysin peruselementtinä ja menetelmät sen käsittelyyn

Käyttäjän liikerata on sarja käyttäjän tiloja tietyissä pisteissä. Lisäksi tapahtumat voivat olla eri tietolähteistä, sekä online- että offline-tilassa. Käyttäjälle tapahtuneet tapahtumat ovat osa hänen kehityskulkuaan. Esimerkkejä:
• painoi painiketta
• näki kuvan
• osuu näyttöön
• saanut sähköpostin
• suositteli tuotetta ystävälle
• täytti lomakkeen
• napautti näyttöä
• vieritetty
• lähestyi kassaa
• tilasi burriton
• söi burriton
• myrkytetty burritolla, jonka hän söi
• astui sisään kahvilaan takasisäänkäynnistä
• sisään pääsisäänkäynnistä
• minimoi sovelluksen
• saanut push-ilmoituksen
• tyhmä näytössä pidempään Х
• maksoi tilauksen
• lunastettu tilauksen
• jolta evättiin laina

Jos otat käyttäjäryhmän lentoratatiedot ja tutkit siirtymien toimintaa, näet tarkasti, kuinka heidän käyttäytymisensä sovelluksessa on rakennettu. Tämä on kätevää tehdä graafin avulla, jossa tilat ovat solmuja ja tilojen väliset siirtymät reunoja:

Retentioneering: miten kirjoitimme avoimen lähdekoodin tuoteanalytiikkatyökalut Pythonissa ja Pandasissa

"Rata" on erittäin kätevä konsepti - se sisältää yksityiskohtaista tietoa kaikista käyttäjän toimista ja mahdollisuuden lisätä mitä tahansa lisätietoa näiden toimien kuvaukseen. Tämä tekee siitä yleisen objektin. Jos sinulla on kauniita ja käteviä työkaluja, joiden avulla voit työskennellä liikeradan kanssa, voit löytää yhtäläisyyksiä ja segmentoida ne.

Liikeradan segmentointi voi aluksi tuntua erittäin monimutkaiselta. Normaalitilanteessa tämä pitää paikkansa - sinun on käytettävä yhteysmatriisien vertailua tai sekvenssien kohdistusta. Onnistuimme löytämään helpomman tavan - tutkia suurta määrää lentoratoja ja segmentoida ne klusteroinnin avulla.

Kuten kävi ilmi, on mahdollista muuttaa lentorata pisteeksi jatkuvilla esityksillä, esim. TF-IDF. Muunnoksen jälkeen liikeradasta tulee piste avaruudessa, jossa akseleita pitkin piirretään erilaisten tapahtumien ja niiden välisten siirtymien liikeradan normalisoitunut esiintyminen. Tämä asia valtavasta tuhat- ja useampiulotteisesta avaruudesta (dimS=sum(tapahtumatyypit)+summa(ngrams_2 type)) voidaan projisoida tasolle käyttämällä TSNE. TSNE - muunnos, pienentää tilan 2 akseliin ja, mikäli mahdollista, säilyttää suhteelliset etäisyydet pisteiden välillä. Näin ollen litteällä kartalla, kuviollisella lentoratojen projektiokartalla, on mahdollista tutkia, kuinka eri reittien pisteet sijoittuvat keskenään. Analysoidaan kuinka lähellä tai erilaisia ​​ne olivat toisilleen, muodostivatko ne klustereita tai hajallaan kartalla jne.:

Retentioneering: miten kirjoitimme avoimen lähdekoodin tuoteanalytiikkatyökalut Pythonissa ja Pandasissa

Retentioning-analyyttiset työkalut mahdollistavat kyvyn muuttaa monimutkaiset tiedot ja liikeradat esityksiksi, joita voidaan verrata toisiinsa, ja sitten tutkia ja tulkita muunnoksen tulosta.

Tavallisista liikeradan käsittelymenetelmistä puhuttaessa tarkoitamme kolmea päätyökalua, jotka olemme toteuttaneet Retentioneeringissä - graafit, askelmatriisit ja lentorataprojektiokartat.

Työskentely Google Analyticsin, Firebasen ja vastaavien analytiikkajärjestelmien kanssa on melko monimutkaista eikä 100% tehokasta. Ongelmana ovat useat käyttäjälle asettamat rajoitukset, joiden seurauksena analyytikon työ tällaisissa järjestelmissä perustuu hiiren napsautuksiin ja siivujen valintaan. Säilyttäminen mahdollistaa työskentelyn käyttäjien liikeratojen, ei vain kanavien, kanssa, kuten Google Analyticsissa, jossa yksityiskohtaisuus on usein alennettu suppiloon, vaikka se onkin rakennettu tiettyä segmenttiä varten.

Säilyttäminen ja tapaustutkimukset

Esimerkkinä kehitetyn työkalun käytöstä voidaan mainita tapaus suuresta niche-palvelusta Venäjällä. Tällä yrityksellä on asiakkaiden keskuudessa suosittu Android-mobiilisovellus. Mobiilisovelluksen vuosiliikevaihto oli noin 7 miljoonaa ruplaa, kausivaihtelut 60-130 tuhatta. Samalla yhtiöllä on myös iOS-sovellus ja "omena"-sovelluksen käyttäjän keskimääräinen tarkistus oli keskimääräistä korkeampi asiakkaan tarkistus Android-sovelluksella - 1080 hieroa. 1300 ruplaa vastaan.

Yhtiö päätti lisätä Android-sovelluksen tehokkuutta, mistä se teki perusteellisen analyysin. Sovelluksen tehokkuuden lisäämiseksi muodostettiin useita kymmeniä hypoteeseja. Retentionneeringin käytön jälkeen kävi ilmi, että ongelma oli uusille käyttäjille näytetyissä viesteissä. He saivat tietoa brändistä, yrityksen eduista ja hinnoista. Mutta kuten kävi ilmi, viestien piti auttaa käyttäjää oppimaan työskentelemään sovelluksessa.

Retentioneering: miten kirjoitimme avoimen lähdekoodin tuoteanalytiikkatyökalut Pythonissa ja Pandasissa

Näin tehtiin, minkä seurauksena sovellusta alettiin poistaa vähemmän ja tilausmuutos kasvoi 23%. Aluksi 20 prosenttia saapuvasta liikenteestä annettiin testiin, mutta muutaman päivän kuluttua ensimmäisten tulosten analysoinnin ja trendin arvioinnin jälkeen suhde käännettiin ja päinvastoin jätettiin 20 prosenttia kontrolliryhmälle ja sijoitettiin. kahdeksankymmentä prosenttia testissä. Viikkoa myöhemmin päätettiin lisätä peräkkäin kahden hypoteesin testaus. Vain seitsemässä viikossa Android-sovelluksen liikevaihto kasvoi puolitoistakertaiseksi edelliseen tasoon verrattuna.

Kuinka työskennellä Retentioneeringin kanssa?

Ensimmäiset vaiheet ovat melko yksinkertaisia ​​- lataamme kirjaston pip install retentioneering -komennolla. Itse arkisto sisältää valmiita esimerkkejä ja tietojenkäsittelytapauksia joihinkin tuoteanalytiikkatehtäviin. Settiä päivitetään jatkuvasti, kunnes se riittää ensimmäiselle tutustumiselle. Jokainen voi ottaa valmiita moduuleja ja soveltaa välittömästi tehtäviinsä - tämän avulla voit välittömästi määrittää yksityiskohtaisemman analyysin ja käyttäjien liikeradan optimoinnin mahdollisimman nopeasti ja tehokkaasti. Kaikki tämä mahdollistaa sovellusten käyttömallien löytämisen ymmärrettävän koodin avulla ja tämän kokemuksen jakamisen työtovereiden kanssa.

Retentioneering on työkalu, jota kannattaa käyttää sovelluksen koko elinkaaren ajan, ja tästä syystä:

  • Retentioneering on tehokas käyttäjien liikeradan seurantaan ja jatkuvaan optimointiin sekä liiketoiminnan suorituskyvyn parantamiseen. Verkkokauppasovelluksiin lisätään siis usein uusia ominaisuuksia, joiden vaikutusta tuotteeseen ei aina voida ennakoida oikein. Joissakin tapauksissa uusien ja vanhojen ominaisuuksien välillä on yhteensopivuusongelmia - esimerkiksi uudet "kannibalisoivat" olemassa olevia ominaisuuksia. Ja tässä tilanteessa tarvitaan jatkuvaa lentoratojen analysointia.
  • Mainoskanavien kanssa työskentelyssä tilanne on samanlainen: uusia liikenteen lähteitä ja mainosaineistoja testataan jatkuvasti, kausivaihtelua, trendejä ja muiden tapahtumien vaikutuksia on seurattava, mikä johtaa uusien ongelmaluokkien syntymiseen. Se vaatii myös jatkuvaa seurantaa ja käyttäjämekaniikan tulkintaa.
  • On olemassa useita tekijöitä, jotka jatkuvasti vaikuttavat sovelluksen toimintaan. Esimerkiksi kehittäjien uudet julkaisut: sulkemalla varsinaisen ongelman he tahattomasti palauttavat vanhan tai luovat kokonaan uuden. Ajan myötä uusien julkaisujen määrä kasvaa, ja virheiden seurantaprosessi on automatisoitava, mukaan lukien käyttäjien liikeratojen analysointi.

Kaiken kaikkiaan säilyttäminen on tehokas työkalu. Mutta täydellisyydellä ei ole rajaa - sitä voidaan ja pitää parantaa, kehittää ja rakentaa sen pohjalle uusia hienoja tuotteita. Mitä aktiivisempi projektiyhteisö on, sitä enemmän haarukoita tulee, uusia mielenkiintoisia vaihtoehtoja sen käyttöön ilmaantuu.

Lisätietoja säilyttämistyökaluista:

Lähde: will.com

Lisää kommentti