Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi

Există sute de articole pe Internet despre beneficiile analizării comportamentului clienților. Cel mai adesea acest lucru se referă la sectorul retail. De la analiza coșului alimentar, analiza ABC și XYZ până la marketing de retenție și oferte personale. De zeci de ani s-au folosit diverse tehnici, algoritmii au fost gândiți, codul a fost scris și depanat - ia-l și folosește-l. În cazul nostru, a apărut o problemă fundamentală - noi, cei de la ISPsystem, suntem angajați în dezvoltarea de software, nu în comerțul cu amănuntul.
Numele meu este Denis și în prezent sunt responsabil pentru backend-ul sistemelor analitice la ISPsystem. Și aceasta este povestea cum eu și colegul meu Danil — cei responsabili cu vizualizarea datelor — au încercat să privească produsele noastre software prin prisma acestor cunoștințe. Să începem, ca de obicei, cu istoria.

La început a existat un cuvânt, iar cuvântul era „Să încercăm?”

În acel moment lucram ca dezvoltator în departamentul R&D. Totul a început când Danil a citit aici pe Habré despre retentioneering — un instrument pentru analiza tranzițiilor utilizatorilor în aplicații. Am fost oarecum sceptic cu privire la ideea de a-l folosi aici. Ca exemple, dezvoltatorii bibliotecii au citat o analiză a aplicațiilor în care acțiunea țintă a fost clar definită - plasarea unei comenzi sau o altă variantă a modului de plată către compania proprietară. Produsele noastre sunt furnizate la sediu. Adică, utilizatorul cumpără mai întâi o licență și abia apoi își începe călătoria în aplicație. Da, avem versiuni demo. Puteți încerca produsul acolo, astfel încât să nu aveți un porc în picior.

Dar majoritatea produselor noastre sunt destinate pieței de găzduire. Aceștia sunt clienți mari, iar departamentul de dezvoltare a afacerii îi sfătuiește cu privire la capabilitățile produsului. De asemenea, rezultă că în momentul achiziției, clienții noștri știu deja ce probleme îi va ajuta software-ul nostru să le rezolve. Rutele lor în aplicație trebuie să coincidă cu CJM încorporat în produs, iar soluțiile UX îi vor ajuta să rămână pe drumul cel bun. Spoiler: acest lucru nu se întâmplă întotdeauna. Introducerea în bibliotecă a fost amânată... dar nu pentru mult timp.

Totul s-a schimbat odată cu lansarea startup-ului nostru - Cartbee — platforme pentru crearea unui magazin online dintr-un cont Instagram. În această aplicație, utilizatorului i s-a acordat o perioadă de două săptămâni pentru a utiliza gratuit toate funcționalitățile. Apoi a trebuit să decizi dacă să te abonezi. Și acest lucru se încadrează perfect în conceptul de „acțiune traseu-țintă”. S-a hotărât: să încercăm!

Primele rezultate sau de unde să obțineți idei

Echipa de dezvoltare și cu mine am conectat produsul la sistemul de colectare a evenimentelor literalmente într-o zi. Voi spune imediat că ISPsystem folosește propriul sistem pentru a colecta evenimente despre vizitele paginii, dar nimic nu vă împiedică să utilizați Yandex.Metrica în aceleași scopuri, ceea ce vă permite să descărcați date brute gratuit. Au fost studiate exemple de utilizare a bibliotecii, iar după o săptămână de colectare a datelor am primit un grafic de tranziție.
Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Graficul de tranziție. Funcționalitate de bază, alte tranziții eliminate pentru claritate

A ieșit la fel ca în exemplu: plan, clar, frumos. Din acest grafic, am putut identifica cele mai frecvente rute și traversări în care oamenii petrec cel mai mult timp. Acest lucru ne-a permis să înțelegem următoarele:

  • În loc de un CJM mare, care acoperă o duzină de entități, doar două sunt utilizate în mod activ. Este necesar să direcționăm suplimentar utilizatorii către locurile de care avem nevoie folosind soluții UX.
  • Unele pagini, concepute de designerii UX pentru a fi end-to-end, ajung cu oamenii să petreacă o perioadă nerezonabilă de timp pe ele. Trebuie să vă dați seama care sunt elementele de oprire pe o anumită pagină și să le ajustați.
  • După 10 tranziții, 20% dintre oameni au început să obosească și să părăsească sesiunea din aplicație. Și asta ținând cont de faptul că am avut până la 5 pagini de onboarding în aplicație! Trebuie să identificați paginile în care utilizatorii abandonează în mod regulat sesiunile și să scurtați calea către acestea. Și mai bine: identificați orice rute obișnuite și permiteți o tranziție rapidă de la pagina sursă la pagina de destinație. Ceva în comun cu analiza ABC și analiza cărucioarelor abandonate, nu crezi?

Și aici ne-am reconsiderat atitudinea față de aplicabilitatea acestui instrument pentru produsele on-premise. S-a decis să se analizeze un produs vândut și utilizat în mod activ - VMmanager 6. Este mult mai complex, există un ordin de mărime mai multe entități. Așteptam cu entuziasm să vedem care va fi graficul de tranziție.

Despre dezamăgiri și inspirații

Dezamăgirea #1

Era sfârșitul zilei de lucru, sfârșitul lunii și sfârșitul anului în același timp - 27 decembrie. Datele au fost acumulate, au fost scrise interogări. Au mai rămas câteva secunde înainte ca totul să fie procesat și am putut să ne uităm la rezultatul muncii noastre pentru a afla unde va începe următorul an de lucru. Departamentul de cercetare și dezvoltare, managerul de produs, designerii UX, liderul echipei, dezvoltatorii s-au adunat în fața monitorului pentru a vedea cum arată căile utilizatorilor în produsul lor, dar... am văzut asta:
Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Graficul de tranziție construit de biblioteca Retentioneering

Inspirația #1

Putern conectat, zeci de entități, scenarii neevidente. Era clar doar că noul an de lucru va începe nu cu analiză, ci cu inventarea unei modalități de simplificare a muncii cu un astfel de grafic. Dar nu puteam scăpa de sentimentul că totul era mult mai simplu decât părea. Și după cincisprezece minute de studiu a codului sursă Retentioneering, am putut exporta graficul construit în format punct. Acest lucru a făcut posibilă încărcarea graficului într-un alt instrument - Gephi. Și există deja spațiu pentru analiza graficelor: machete, filtre, statistici - tot ce trebuie să faceți este să configurați parametrii necesari în interfață. Cu acest gând în minte, am plecat în weekendul de Revelion.

Dezamăgirea #2

După revenirea la muncă, s-a dovedit că în timp ce toată lumea se odihnea, clienții noștri studiau produsul. Da, atât de greu încât în ​​depozit au apărut evenimente care nu existau înainte. Aceasta însemna că interogările trebuiau actualizate.

Un mic fundal pentru a înțelege tristețea acestui fapt. Transmitem atât evenimentele pe care le-am marcat (de exemplu, clicuri pe unele butoane), cât și URL-urile paginilor pe care le-a vizitat utilizatorul. În cazul Cartbee, modelul „o acțiune - o pagină” a funcționat. Dar cu VMmanager situația a fost complet diferită: mai multe ferestre modale se puteau deschide pe o singură pagină. În ele utilizatorul ar putea rezolva diverse probleme. De exemplu, URL:

/host/item/24/ip(modal:modal/host/item/ip/create)

înseamnă că pe pagina „Adrese IP” utilizatorul a adăugat o adresă IP. Și aici sunt vizibile două probleme simultan:

  • URL-ul conține un fel de parametru de cale - ID-ul mașinii virtuale. Trebuie exclus.
  • URL-ul conține ID-ul ferestrei modal. Trebuie să „despachetați” cumva astfel de adrese URL.
    O altă problemă a fost că chiar evenimentele pe care le-am marcat aveau parametri. De exemplu, existau cinci moduri diferite de a ajunge la pagina cu informații despre o mașină virtuală din listă. În consecință, a fost trimis un eveniment, dar cu un parametru care a indicat ce metodă a făcut utilizatorul tranziția. Au fost multe astfel de evenimente și toți parametrii au fost diferiți. Și avem toată logica de recuperare a datelor în dialectul SQL pentru Clickhouse. Interogările de 150-200 de linii începeau să pară oarecum banale. Ne-au înconjurat probleme.

Inspirația #2

Într-o dimineață devreme, Danil, derulând cu tristețe cererea pentru al doilea minut, mi-a sugerat: „Să scriem conducte de procesare a datelor?” Ne-am gândit la asta și am decis că, dacă o vom face, ar fi ceva de genul ETL. Astfel încât să filtreze imediat și să extragă datele necesare din alte surse. Așa a luat naștere primul nostru serviciu analitic cu un backend cu drepturi depline. Implementează cinci etape principale de prelucrare a datelor:

  1. Descărcarea evenimentelor din stocarea datelor brute și pregătirea lor pentru procesare.
  2. Clarificarea este „despachetarea” acelor identificatori ai ferestrelor modale, parametrii evenimentului și alte detalii care clarifică evenimentul.
  3. Îmbogățirea (de la cuvântul „a deveni bogat”) este adăugarea de evenimente cu date din surse terțe. La acel moment, acesta includea doar sistemul nostru de facturare BILLmanager.
  4. Filtrarea este procesul de filtrare a evenimentelor care distorsionează rezultatele analizei (evenimente din standurile interne, valori aberante etc.).
  5. Încărcarea evenimentelor primite în stocare, pe care le-am numit date curate.
    Acum a fost posibil să menținem relevanța prin adăugarea de reguli pentru procesarea unui eveniment sau chiar a unor grupuri de evenimente similare. De exemplu, de atunci nu am actualizat niciodată despachetarea adresei URL. Deși, în acest timp au fost adăugate câteva noi variații URL. Acestea respectă regulile deja stabilite în serviciu și sunt procesate corect.

Dezamăgirea #3

Odată ce am început să analizăm, ne-am dat seama de ce graficul era atât de coerent. Faptul este că aproape fiecare N-gramă conținea tranziții care nu puteau fi efectuate prin interfață.

A început o mică anchetă. Eram confuz că nu existau tranziții imposibile într-o singură entitate. Aceasta înseamnă că aceasta nu este o eroare în sistemul de colectare a evenimentelor sau în serviciul nostru ETL. Exista senzația că utilizatorul lucrează simultan în mai multe entități, fără a trece de la una la alta. Cum să realizezi acest lucru? Utilizarea diferitelor file în browser.

Când am analizat Cartbee, am fost salvați de specificul său. Aplicația a fost folosită de pe dispozitive mobile, unde lucrul din mai multe file este pur și simplu incomod. Aici avem un desktop și, în timp ce o sarcină este efectuată într-o entitate, este rezonabil să dorim să petrecem acest timp pentru a configura sau monitoriza starea în alta. Și pentru a nu pierde progresul, deschideți o altă filă.

Inspirația #3

Colegii de la dezvoltarea front-end au învățat sistemul de colectare a evenimentelor să facă distincția între file. Analiza ar putea începe. Și am început. Așa cum era de așteptat, CJM nu s-a potrivit cu căi reale: utilizatorii au petrecut mult timp pe pagini de directoare, au abandonat sesiuni și file în cele mai neașteptate locuri. Folosind analiza tranziției, am putut găsi probleme în unele versiuni Mozilla. În acestea, datorită caracteristicilor de implementare, au dispărut elemente de navigare sau au fost afișate pagini pe jumătate goale, care ar trebui să fie accesibile doar administratorului. Pagina s-a deschis, dar nu a venit niciun conținut din backend. Numărarea tranzițiilor a făcut posibilă evaluarea caracteristicilor care au fost efectiv utilizate. Lanțurile au făcut posibilă înțelegerea modului în care utilizatorul a primit această sau acea eroare. Datele au permis testarea pe baza comportamentului utilizatorului. A fost un succes, ideea nu a fost în zadar.

Automatizarea analizei

Într-una dintre demonstrațiile rezultate, am arătat cum este folosit Gephi pentru analiza grafică. În acest instrument, datele de conversie pot fi afișate într-un tabel. Și șeful departamentului UX a spus un gând foarte important care a influențat dezvoltarea întregii direcții de analiză a comportamentului în companie: „Să facem același lucru, dar în Tableau și cu filtre - va fi mai convenabil.”

Apoi m-am gândit: de ce nu, Retentioneering stochează toate datele într-o structură pandas.DataFrame. Și aceasta este, în mare, o masă. Așa a apărut un alt serviciu: Data Provider. Nu numai că a făcut un tabel din grafic, dar a calculat și cât de populare sunt pagina și funcționalitatea asociată acesteia, cum afectează reținerea utilizatorilor, cât timp rămân utilizatorii pe ea și ce pagini părăsesc cel mai des utilizatorii. Iar utilizarea vizualizării în Tableau a redus costul studierii graficului atât de mult încât timpul de iterație pentru analiza comportamentului în produs sa redus aproape la jumătate.

Danil va vorbi despre cum este utilizată această vizualizare și ce concluzii permite să se tragă.

Mai multe mese pentru zeul mesei!

Într-o formă simplificată, sarcina a fost formulată după cum urmează: afișați graficul de tranziție în Tableau, oferiți capacitatea de a filtra și faceți-l cât mai clar și convenabil posibil.

Nu am vrut cu adevărat să desenez un grafic direcționat în Tableau. Și chiar dacă a avut succes, câștigul, în comparație cu Gefi, nu părea evident. Aveam nevoie de ceva mult mai simplu și mai accesibil. Masa! La urma urmei, graficul poate fi reprezentat cu ușurință sub formă de rânduri de tabel, unde fiecare rând este o margine de tip „sursă-destinație”. Mai mult, am pregătit deja cu atenție un astfel de tabel utilizând instrumentele Retentioneering și Data Provider. Tot ce a mai rămas de făcut a fost să afișați tabelul în Tableau și să răsfoiți raportul.
Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Vorbind despre cum toată lumea iubește mesele.

Totuși, aici ne confruntăm cu o altă problemă. Ce să faci cu sursa de date? A fost imposibil să conectați pandas.DataFrame; Tableau nu are un astfel de conector. Ridicarea unei baze separate pentru stocarea graficului părea o soluție prea radicală, cu perspective vagi. Și opțiunile de descărcare locală nu erau potrivite din cauza necesității de operațiuni manuale constante. Ne-am uitat prin lista de conectori disponibili, iar privirea ne-a căzut asupra articolului Conector de date web, care s-a ghemuit deznădăjduit chiar de jos.

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Tableau are o selecție bogată de conectori. Am găsit unul care ne-a rezolvat problema

Ce fel de animal? Câteva file noi deschise în browser - și a devenit clar că acest conector vă permite să primiți date atunci când accesați o adresă URL. Backend-ul pentru calcularea datelor în sine era aproape gata, tot ce a rămas a fost să-l împrietenească cu WDC. Timp de câteva zile, Denis a studiat documentația și s-a luptat cu mecanismele Tableau, apoi mi-a trimis un link pe care l-am lipit în fereastra de conexiune.

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Formular de conectare la WDC-ul nostru. Denis a făcut față și a avut grijă de siguranță

După câteva minute de așteptare (datele sunt calculate dinamic atunci când sunt solicitate), a apărut tabelul:

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Iată cum arată o matrice de date brute în interfața Tableau

După cum am promis, fiecare rând al unui astfel de tabel reprezenta o margine a graficului, adică o tranziție direcționată a utilizatorului. De asemenea, conținea câteva caracteristici suplimentare. De exemplu, numărul de utilizatori unici, numărul total de tranziții și altele.

Ar fi posibil să afișați acest tabel în raport ca atare, stropiți cu generozitate filtre și trimiteți instrumentul la navigare. Sună logic. Ce poți face cu masa? Dar aceasta nu este calea noastră, pentru că nu facem doar un tabel, ci un instrument de analiză și luare a deciziilor despre produse.

De obicei, atunci când analizează datele, o persoană dorește să obțină răspunsuri la întrebări. Grozav. Să începem cu ei.

  • Care sunt cele mai frecvente tranziții?
  • Unde se duc din anumite pagini?
  • Cât timp petreci în medie pe această pagină înainte de a pleca?
  • Cât de des faci trecerea de la A la B?
  • Pe ce pagini se încheie sesiunea?

Fiecare dintre rapoarte sau o combinație a acestora ar trebui să permită utilizatorului să găsească în mod independent răspunsuri la aceste întrebări. Strategia cheie aici este să vă oferim instrumentele necesare pentru a o face singur. Acest lucru este util atât pentru reducerea sarcinii pe departamentul de analiză, cât și pentru reducerea timpului de luare a deciziilor - la urma urmei, nu mai trebuie să mergeți la Youtrack și să creați o sarcină pentru analist, trebuie doar să deschideți raportul.

Ce am primit?

Unde se îndepărtează cel mai adesea oamenii de tabloul de bord?

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Fragment din raportul nostru. După tabloul de bord, toată lumea a mers fie la lista de VM-uri, fie la lista de noduri

Să luăm un tabel general cu tranziții și să filtram după pagina sursă. Cel mai adesea, acestea trec de la tabloul de bord la lista de mașini virtuale. Mai mult, coloana Regularitate sugerează că aceasta este o acțiune repetată.

De unde vin în lista clusterelor?

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Filtrele din rapoarte funcționează în ambele direcții: puteți afla unde ați plecat sau unde ați mers

Din exemple, este clar că chiar și prezența a două filtre simple și a rândurilor de clasare după valori vă permite să obțineți rapid informații.

Să întrebăm ceva mai dificil.

Unde își abandonează cel mai adesea utilizatorii sesiunea?

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Utilizatorii VMmanager lucrează adesea în file separate

Pentru a face acest lucru, avem nevoie de un raport ale cărui date sunt agregate pe surse de recomandare. Și așa-numitele puncte de întrerupere au fost luate ca atribuții - evenimente care au servit drept sfârșit al lanțului de tranziții.

Este important să rețineți că acesta poate fi fie sfârșitul sesiunii, fie deschiderea unei noi file. Exemplul arată că lanțul se termină cel mai adesea la un tabel cu o listă de mașini virtuale. În acest caz, comportamentul caracteristic este trecerea la o altă filă, care este în concordanță cu modelul așteptat.

Am testat în primul rând utilitatea acestor rapoarte pe noi înșine atunci când am efectuat analiza într-un mod similar Vepp, un alt produs al nostru. Odată cu apariția tabelelor și a filtrelor, ipotezele au fost testate mai repede, iar ochii au fost mai puțin obosiți.

La elaborarea rapoartelor, nu am uitat de designul vizual. Când lucrați cu mese de această dimensiune, acesta este un factor important. De exemplu, am folosit o gamă calmă de culori, ușor de perceput font monospace pentru numere, evidențierea colorată a liniilor în conformitate cu valorile numerice ale caracteristicilor. Astfel de detalii îmbunătățesc experiența utilizatorului și cresc probabilitatea ca instrumentul să descopere cu succes în cadrul companiei.

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Tabelul s-a dovedit a fi destul de voluminos, dar sperăm că nu a încetat să fie lizibil

De menționat separat despre pregătirea clienților noștri interni: specialiști de produs și designeri UX. Pentru ei au fost pregătite special manuale cu exemple de analiză și sfaturi pentru lucrul cu filtrele. Am inserat link-uri către manuale direct în paginile raportului.

Vedeți adevărata față a produsului și supraviețuiți. Datele despre tranzițiile utilizatorilor ca motiv pentru a scrie câteva servicii noi
Am realizat manualul pur și simplu ca o prezentare în Google Docs. Instrumentele Tableau vă permit să afișați pagini web direct într-un registru de lucru pentru raport.

În loc de un cuvânt

Ce este în linia de jos? Am reușit să obținem un instrument pentru fiecare zi relativ rapid și ieftin. Da, acesta nu este cu siguranță un înlocuitor pentru graficul în sine, harta termică a clicurilor sau vizualizatorul web. Dar astfel de rapoarte completează în mod semnificativ instrumentele enumerate și oferă alimente de gândire și noi ipoteze despre produse și interfețe.

Această poveste a servit doar drept început pentru dezvoltarea analizei în ISPsystem. În ultimele șase luni au apărut încă șapte servicii noi, inclusiv portrete digitale ale utilizatorului în produs și un serviciu de creare a bazelor de date pentru țintirea Look-alike, dar despre ele vom vorbi în episoadele următoare.

Sursa: www.habr.com

Adauga un comentariu