Retentioneering: cum am scris instrumente open-source pentru analiza produselor în Python și Pandas

Bună, Habr. Acest articol este dedicat rezultatelor a patru ani de dezvoltare a unui set de metode și instrumente pentru procesarea traiectoriilor de mișcare a utilizatorilor într-o aplicație sau site web. Autorul dezvoltării - Maxim Godzi, care conduce echipa de creatori de produse și este și autorul articolului. Produsul în sine a fost numit Retentioneering; acum a fost convertit într-o bibliotecă open-source și postat pe Github, astfel încât oricine să îl poată folosi. Toate acestea pot fi de interes pentru cei implicați în analiza de produs și marketing, promovare și dezvoltare de produs. Apropo, pe Habré a fost deja publicat un articol despre unul dintre cazurile de lucru cu Retentioneering. Noul material explică ce poate face produsul și cum poate fi utilizat.

După ce ai citit articolul, tu însuți vei putea să-ți scrii propriul Retentioneering; poate fi orice metodă standardizată de procesare a traiectoriilor utilizatorilor în aplicație și nu numai, permițându-ți să vezi în detaliu caracteristicile comportamentului și să extragi perspective din aceasta pentru creștere. de metrici de afaceri.

Ce este Retentioneering și de ce este necesar?

Scopul nostru inițial a fost să mutăm Growth Hacking din lumea „vrăjitoriei digitale” în lumea numerelor, a analizelor și a prognozelor. În consecință, analiza produselor este redusă la matematică pură și programare pentru cei care preferă numerele în loc de povești fantastice, iar formulele la cuvinte la modă precum „rebranding”, „repoziționare”, etc., care sună frumos, dar în practică ajută puțin.

Pentru a rezolva aceste probleme, aveam nevoie de un cadru de analiză prin grafice și traiectorii și, în același timp, de o bibliotecă care simplifică rutinele tipice ale analiștilor, ca o modalitate de a descrie sarcinile obișnuite de analiză a produselor care ar fi de înțeles atât pentru oameni, cât și pentru roboți. Biblioteca oferă capacitatea de a descrie comportamentul utilizatorului și de a-l lega de valorile de afaceri ale produsului într-un limbaj atât de formal și clar încât simplifică și automatizează sarcinile de rutină ale dezvoltatorilor și analiștilor și facilitează comunicarea acestora cu afacerea.

Retentioneering este o metodă și instrumente software analitice care pot fi adaptate și integrate în orice produs digital (și nu numai).

Am început să lucrăm la produs în 2015. Acum, acesta este un set gata făcut, deși nu este încă ideal, de instrumente în Python și Pandas pentru lucrul cu date, modele de învățare automată cu api sklearn-like, instrumente pentru interpretarea rezultatelor modelelor de învățare automată eli5 și shap.

Totul este împachetat la o bibliotecă open-source convenabilă din depozitul Github deschis - retentioneering-tools. Utilizarea bibliotecii nu este dificilă; aproape oricine iubește analiza produselor, dar nu a scris cod înainte, poate aplica metodele noastre de analiză datelor lor în mod independent și fără investiții semnificative de timp.

Ei bine, un programator, un creator de aplicații sau un membru al unei echipe de dezvoltare sau testare care nu a făcut niciodată analize înainte poate începe să se joace cu acest cod și să vadă tiparele de utilizare a aplicației lor fără ajutor extern.

Traiectoria utilizatorului ca element de bază al analizei și metode de prelucrare a acesteia

Traiectoria utilizatorului este o succesiune de stări ale utilizatorului în anumite momente de timp. Mai mult, evenimentele pot proveni din diferite surse de date, atât online, cât și offline. Evenimentele care se întâmplă utilizatorului fac parte din traiectoria acestuia. Exemple:
• a apăsat butonul
• am văzut poza
• apăsați pe ecran
• a primit un e-mail
• a recomandat produsul unui prieten
• a completat formularul
• a atins ecranul
• defilate
• a mers la casa de marcat
• a comandat un burrito
• a mâncat un burrito
• sa otrăvit mâncând un burrito
• a intrat în cafenea de la intrarea din spate
• intrat de la intrarea din faţă
• a minimizat aplicația
• a primit o notificare push
• a rămas blocat pe ecran mai mult decât X
• a plătit pentru comandă
• a cumpărat comanda
• i s-a refuzat un împrumut

Dacă luați datele de traiectorie ale unui grup de utilizatori și studiați cum sunt structurate tranzițiile, puteți urmări exact modul în care este structurat comportamentul acestora în aplicație. Este convenabil să faceți acest lucru printr-un grafic în care stările sunt noduri, iar tranzițiile dintre stări sunt muchii:

Retentioneering: cum am scris instrumente open-source pentru analiza produselor în Python și Pandas

„Traiectoria” este un concept foarte convenabil - conține informații detaliate despre toate acțiunile utilizatorului, cu posibilitatea de a adăuga orice date suplimentare la descrierea acestor acțiuni. Acest lucru îl face un obiect universal. Dacă aveți instrumente frumoase și convenabile care vă permit să lucrați cu traiectorii, atunci puteți găsi asemănări și le puteți segmenta.

Segmentarea traiectoriei poate părea foarte complicată la început. Într-o situație normală, acesta este cazul - trebuie să utilizați compararea matricei de conectivitate sau alinierea secvenței. Am reușit să găsim o modalitate mai simplă - să studiem un număr mare de traiectorii și să le segmentăm prin clustering.

După cum sa dovedit, este posibil să transformați o traiectorie într-un punct folosind reprezentări continue, de exemplu, TF-IDF. După transformare, traiectoria devine un punct în spațiu în care apariția normalizată a diferitelor evenimente și tranzițiile dintre ele în traiectorie este reprezentată de-a lungul axelor. Acest lucru dintr-un spațiu uriaș de o mie sau mai multe dimensiuni (dimS=sum(tipuri de evenimente)+sumă(ngrame_2 tipuri)) poate fi proiectat pe un plan folosind TSNE. TSNE este o transformare care reduce dimensiunea spațiului la 2 axe și, dacă este posibil, păstrează distanțele relative dintre puncte. În consecință, devine posibil pe o hartă plată, o hartă de proiecție figurativă a traiectoriilor, să se studieze modul în care punctele diferitelor traiectorii au fost situate între ele. Analizează cât de apropiați sau diferiți erau unul de celălalt, dacă formau grupuri sau erau împrăștiați pe hartă etc.:

Retentioneering: cum am scris instrumente open-source pentru analiza produselor în Python și Pandas

Instrumentele de analiză de retentioneering oferă capacitatea de a transforma date și traiectorii complexe într-o vedere care poate fi comparată între ele, iar apoi rezultatul transformării poate fi examinat și interpretat.

Vorbind despre metodele standard de procesare a traiectoriilor, ne referim la trei instrumente principale pe care le-am implementat în Retentioneering - grafice, matrice de pași și hărți de proiecție a traiectoriei.

Lucrul cu Google Analytics, Firebase și sisteme de analiză similare este destul de complex și nu este eficient 100%. Problema este o serie de restricții pentru utilizator, drept urmare munca analistului în astfel de sisteme depinde de clicurile de mouse și de selecția feliilor. Retentioneering face posibilă lucrul cu traiectorii utilizatorilor, și nu doar cu pâlnii, ca în Google Analytics, unde nivelul de detaliu este adesea redus la o pâlnie, deși construit pentru un anumit segment.

Retentioneering și cazuri

Ca exemplu de utilizare a instrumentului dezvoltat, putem cita cazul unui serviciu de nișă mare din Rusia. Această companie are o aplicație mobilă Android care este populară în rândul clienților. Cifra de afaceri anuală din aplicația mobilă a fost de aproximativ 7 milioane de ruble, fluctuațiile sezoniere au variat între 60-130 mii. Aceeași companie are și o aplicație pentru iOS, iar factura medie a unui utilizator al aplicației Apple a fost mai mare decât factura medie a un client care utilizează aplicația Android - 1080 rub. față de 1300 de ruble.

Compania a decis să crească eficiența aplicației Android, pentru care a efectuat o analiză amănunțită. Au fost generate câteva zeci de ipoteze cu privire la creșterea eficacității aplicației. După utilizarea Retentionneering, s-a dovedit că problema era în mesajele care au fost afișate utilizatorilor noi. Au primit informații despre brand, beneficiile companiei și prețurile. Dar, după cum sa dovedit, mesajele trebuiau să ajute utilizatorul să învețe cum să lucreze în aplicație.

Retentioneering: cum am scris instrumente open-source pentru analiza produselor în Python și Pandas

Acest lucru s-a făcut, în urma căruia aplicația a devenit mai puțin dezinstalată, iar creșterea conversiei la comandă a fost de 23%. La început, 20 la sută din traficul de intrare a fost dat testului, dar după câteva zile, după analizarea primelor rezultate și evaluarea tendinței, au inversat proporțiile și, dimpotrivă, au lăsat 20 la sută pentru grupul de control și optzeci la sută au fost plasați în test. O săptămână mai târziu, s-a decis să se adauge succesiv testarea a încă două ipoteze. În doar șapte săptămâni, cifra de afaceri din aplicația Android a crescut de o dată și jumătate față de nivelul anterior.

Cum să lucrezi cu Retentioneering?

Primii pași sunt destul de simpli - descărcați biblioteca cu comanda pip install retentioneering. Depozitul în sine conține exemple gata făcute și cazuri de prelucrare a datelor pentru unele sarcini de analiză a produselor. Setul este actualizat constant până când este suficient pentru o primă cunoștință. Oricine poate lua module gata făcute și le poate aplica imediat sarcinilor sale - acest lucru îi permite să configureze imediat procesul de analiză mai detaliată și optimizare a traiectoriilor utilizatorilor cât mai rapid și eficient posibil. Toate acestea fac posibilă găsirea tiparelor de utilizare a aplicațiilor printr-un cod clar și împărtășirea acestei experiențe cu colegii.

Retentioneering este un instrument care merită folosit pe toată durata de viață a aplicației dvs. și iată de ce:

  • Retentioneering este eficient pentru urmărirea și optimizarea continuă a traiectoriilor utilizatorilor și îmbunătățirea performanței afacerii. Astfel, aplicațiilor de comerț electronic sunt adesea adăugate noi funcții, al căror impact asupra produsului nu poate fi întotdeauna prevăzut corect. În unele cazuri, apar probleme de compatibilitate între funcțiile noi și vechi - de exemplu, cele noi le „canibalizează” pe cele existente. Și în această situație, analiza constantă a traiectoriilor este tocmai ceea ce este nevoie.
  • Situația este similară atunci când se lucrează cu canale de publicitate: noi surse de trafic și reclame publicitare sunt în mod constant testate, este necesară monitorizarea sezonului, tendințele și influența altor evenimente, ceea ce duce la apariția a tot mai multe clase noi de probleme. Acest lucru necesită, de asemenea, monitorizarea și interpretarea constantă a mecanicii utilizatorului.
  • Există o serie de factori care afectează constant performanța unei aplicații. De exemplu, lansări noi de la dezvoltatori: închiderea unei probleme curente, o returnează fără să vrea pe cea veche sau creează una complet nouă. În timp, numărul de noi lansări crește, iar procesul de urmărire a erorilor trebuie automatizat, inclusiv prin analiza traiectoriilor utilizatorilor.

În general, Retentioneering este un instrument eficient. Dar nu există nicio limită pentru perfecțiune - poate și ar trebui să fie îmbunătățită, dezvoltată și construite noi produse cool pe baza ei. Cu cât comunitatea proiectului este mai activă, cu atât vor fi mai multe furculițe și vor apărea noi opțiuni interesante de utilizare.

Mai multe informații despre instrumentele Retentioneering:

Sursa: www.habr.com

Adauga un comentariu