Klienta analizsistemoj

Imagu, ke vi estas burĝona entreprenisto, kiu ĵus kreis retejon kaj moveblan aplikaĵon (ekzemple, por donutbutiko). Vi volas konekti uzantanalitiko kun malgranda buĝeto, sed ne scias kiel. Ĉiuj ĉirkaŭe uzas Mixpanel, Facebook-analitiko, Yandex.Metrica kaj aliajn sistemojn, sed ne estas klare, kion elekti kaj kiel uzi ĝin.

Klienta analizsistemoj

Kio estas analizaj sistemoj?

Antaŭ ĉio, oni devas diri, ke uzantanalitika sistemo ne estas sistemo por analizi protokolojn de la servo mem. Monitorado de kiel la servo funkcias fokusiĝas al stabileco kaj rendimento, kaj estas farata aparte de la programistoj. Uzantanalitiko estas kreita por studi la konduton de la uzanto: kiajn agojn li faras, kiom ofte, kiel li reagas al puŝaj sciigoj aŭ aliaj eventoj en la servo. Tutmonde, uzant-analitiko havas du direktojn: movebla kaj ret-analitiko. Malgraŭ la malsamaj interfacoj kaj kapabloj de retaj kaj moveblaj servoj, labori kun la analiza sistemo en ambaŭ direktoj estas proksimume sama.

Kial tio estas necesa?

Uzantalitiko necesas:

  • kontroli kio okazas kiam vi uzas la servon;
  • ŝanĝi la enhavon kaj kompreni kie disvolvi, kiajn funkciojn aldoni/forigi;
  • por trovi kion uzantoj ne ŝatas kaj ŝanĝi ĝin.

Kiel ĝi funkcias?

Por studi uzantan konduton, vi devas kolekti historion de ĉi tiu konduto. Sed kion ĝuste kolekti? Ĉi tiu demando okupas ĝis 70% de la komplekseco de la tuta tasko. Multaj membroj de la produktteamo devas respondi ĉi tiun demandon kune: produktmanaĝero, programistoj, analizistoj. Ajna eraro ĉe ĉi tiu paŝo estas multekosta: vi eble ne kolektas tion, kion vi bezonas, kaj vi povas kolekti ion, kio ne permesos al vi eltiri signifajn konkludojn.

Post kiam vi decidis kion kolekti, vi devas pensi pri la arkitekturo kiel kolekti ĝin. La ĉefa objekto, kun kiu funkcias analizaj sistemoj, estas evento. Okazaĵo estas priskribo de kio okazis, kiu estas sendita al la analiza sistemo en respondo al uzanta ago. Tipe, por ĉiu el la agoj elektitaj por spurado en la antaŭa paŝo, la evento aspektas kiel JSON-pakaĵo kun kampoj kiuj priskribas la agon faritan.

Kia JSON-pakaĵo ĉi tio estas?

La JSON-pakaĵo estas tekstdosiero, kiu priskribas kio okazis. Ekzemple, JSON-pako povas enhavi informojn, ke la uzanto Mary faris la Started-ludan agon je 23:00 la 15-an de novembro. Kiel priskribi ĉiun agon? Ekzemple, la uzanto alklakas butonon. Kiuj propraĵoj devas esti kolektitaj en ĉi tiu momento? Ili estas dividitaj en du tipojn:

  • superpropraĵoj - ecoj, kiuj estas karakterizaj por ĉiuj eventoj, kiuj ĉiam ĉeestas. Jen tempo, aparato ID, API-versio, analitika versio, OS-versio;
  • evento-specifaj propraĵoj - ĉi tiuj trajtoj estas arbitraj kaj la ĉefa malfacilaĵo estas kiel elekti ilin. Ekzemple, por la butono "aĉeti monerojn" en ludo, tiaj propraĵoj estos "kiom da moneroj la uzanto aĉetis", "kiom kostas la moneroj".

Ekzemplo de JSON-pakaĵo en lingvolernada servo:
Klienta analizsistemoj

Sed kial ne simple kolekti ĉion?

Ĉar ĉiuj eventoj estas kreitaj permane. Analizaj sistemoj ne havas butonon "konservi ĉion" (kaj tio estus sencela). Estas kolektitaj nur tiuj agoj el la serva logiko, kiuj interesas al iu parto de la teamo. Eĉ por ĉiu stato de butono aŭ fenestro, ne ĉiuj eventoj kutime interesas. Por longaj procezoj (kiel ludnivelo), nur la komenco kaj la fino povas esti gravaj. Kio okazas en la mezo eble ne kuniĝas.
Kiel regulo, servologiko konsistas el objektoj - estaĵoj. Ĉi tio povas esti "monero-" ento aŭ "nivela" ento. Sekve, vi povas verki eventojn el estaĵoj, iliaj statoj kaj agoj. Ekzemploj: "nivelo komencita", "nivelo finita", "nivelo finita, racio - manĝita de drako". Estas konsilinde, ke ĉiuj estaĵoj, kiuj povas esti "malfermitaj", estu fermitaj por ne malobservi la logikon kaj ne malfaciligi pluan laboron kun analizo.

Klienta analizsistemoj

Kiom da eventoj estas en kompleksa sistemo?

Kompleksaj sistemoj povas procesi plurajn centojn da eventoj, kiuj estis kolektitaj de ĉiuj klientoj (produktestroj, programistoj, analizistoj) kaj zorge (!) eniritaj en tabelon, kaj poste en la servan logikon. Prepari eventojn estas granda interfaka laboro, kiu postulas, ke ĉiuj komprenu tion, kion oni devas kolekti, atentemon kaj precizecon.

Kio sekvas?

Ni diru, ke ni elpensas ĉiujn interesajn eventojn. Estas tempo kolekti ilin. Por fari tion, vi devas konekti klientajn analizojn. Iru al Guglo kaj serĉu moveblajn analizojn (aŭ elektu el la konataj: Mixpanel, Yandeks.Metrika, Google Analytics, Analitiko de Facebook, Agordu, amplekso). Ni prenas la SDK de la retejo kaj konstruas ĝin en la kodon de nia servo (tial la nomo "kliento" - ĉar la SDK estas enkonstruita en la kliento).

Kaj kie kolekti eventojn?

Ĉiuj JSON-pakaĵoj kiuj estos kreitaj devas esti stokitaj ie. Kien ili estos senditaj kaj kie ili kolektiĝos? En la kazo de klienta analiza sistemo, ĝi mem respondecas pri tio. Ni ne scias kie estas niaj JSON-pakaĵoj, kie estas ilia stokado, kiom multaj estas aŭ kiel ili estas konservitaj tie. La tuta kolekto procezo estas efektivigita de la sistemo kaj ne gravas por ni. En la analitika servo, ni ricevas aliron al persona konto, kie ni vidas la rezultojn de prilaborado de komencaj kondutismaj datumoj. Poste, analizistoj laboras kun tio, kion ili vidas en sia persona konto.

En senpagaj versioj, la krudaj datumoj kutime ne estas elŝuteblaj. La multekosta versio havas tiajn funkciojn.

Kiom da tempo daŭros por konektiĝi?

La plej simpla analizo povas esti konektita en unu horo: ĝi estos App Metrika, kiu montros la plej simplajn aferojn sen analizi kutimajn eventojn. La tempo necesa por starigi pli kompleksan sistemon dependas de la elektitaj eventoj. Malfacilaĵoj aperas, kiuj postulas plian disvolviĝon:

  • Ĉu estas atendovico de eventoj? Ekzemple, kiel ripari, ke unu evento ne povas veni antaŭ alia?
  • Kion fari se la uzanto ŝanĝis la horon? Ĉu ŝanĝita horzono?
  • Kion fari se ne ekzistas Interreto?

Averaĝe, vi povas agordi Mixpanel post kelkaj tagoj. Kiam granda nombro da specifaj eventoj estas planitaj por esti kolektitaj, ĝi povas daŭri semajnon.

Klienta analizsistemoj

Kiel elekti kiun mi bezonas?

Ĝenerala statistiko funkcias bone en ĉiuj analizaj sistemoj. Bone taŭga por merkatistoj kaj vendistoj: vi povas vidi retenon, kiom longe uzantoj pasigis en la aplikaĵo, ĉiujn bazajn altnivelajn metrikojn. Por la plej simpla surterpaĝo, Yandex-metrikoj sufiĉos.

Kiam temas pri ne-normaj taskoj, la elekto dependas de via servo, analizaj taskoj kaj eventoj, kiuj devas esti prilaboritaj por solvi ilin.

  • En Mixpanel, ekzemple, vi povas ruli A/B-testojn. Kiel fari ĝin? Vi kreas eksperimenton en kiu estos pluraj specimenoj kaj faras elekton (vi atribuas tiajn uzantojn al A, aliajn al B). Por A la butono estos verda, por B ĝi estos blua. Ĉar Mixpanel kolektas ĉiujn datumojn, ĝi povas trovi la aparato-identigilon de ĉiu uzanto de A kaj B. En la serva kodo, uzante la SDK, ĝustigas estas kreitaj - ĉi tiuj estas lokoj kie io povas ŝanĝi por testado. Poste, por ĉiu uzanto, la valoro (en nia kazo, la koloro de la butono) estas tirita de Mixpanel. Se ne ekzistas interreta konekto, la defaŭlta opcio estos elektita.
  • Ofte vi volas ne nur stoki kaj studi eventojn, sed ankaŭ aldoni uzantojn. Mixpanel faras tion aŭtomate, en la langeto Uzantoj. Tie vi povas vidi ĉiujn konstantajn uzant-datumojn (nomo, retpoŝto, facebook-profilo) kaj uzantan protokolon. Vi povas rigardi uzantajn datumojn kiel statistikojn: La drako manĝis 100 fojojn, aĉetis 3 florojn. En kelkaj sistemoj, agregado de uzanto povas esti elŝutita.
  • Kio estas la ĉefa malvarmeto Analitiko de Facebook? Ĝi ligas la servovizitanton kun sia Facebook-profilo. Sekve, vi povas ekscii vian publikon, kaj plej grave, tiam konverti ĝin en reklaman publikon. Ekzemple, se mi vizitis retejon unufoje, kaj ĝia posedanto ŝaltis reklamadon (aŭtoplenigebla spektantaro en Fejsbuka analizo) por vizitantoj, tiam estonte mi vidos reklamadon por ĉi tiu retejo en Fejsbuko. Por la posedanto de la retejo, ĉi tio funkcias simple kaj oportune; vi nur devas memori meti ĉiutagan limon al via reklambuĝeto. La malavantaĝo de Fejsbuka analizo estas, ke ĝi ne estas precipe oportuna: la retejo estas sufiĉe kompleksa, ne tuj komprenebla, kaj ne funkcias tre rapide.

Preskaŭ nenio devas esti farita kaj ĉio funkcias! Eble estas iuj malavantaĝoj?

Jes, kaj unu el ili estas, ke ĝi estas kutime multekosta. Por ekfunkciigo ĝi povus esti ĉirkaŭ $ 50k monate. Sed estas ankaŭ senpagaj opcioj. Yandex App Metrica estas senpaga kaj taŭga por la plej bazaj metrikoj.

Tamen, se la solvo estas malmultekosta, tiam la analizo ne estos detala: vi povos vidi la tipon de aparato, OS, sed ne specifajn eventojn, kaj vi ne povos krei funelojn. Mixpanel povas kosti 50k dolarojn jare (ekzemple, aplikaĵo kun Om Nom povas manĝi tiom multe). Ĝenerale, aliro al datumoj estas sufiĉe ofte limigita en ĉiuj ili. Vi ne elpensas viajn proprajn modelojn kaj lanĉas ilin. Pago estas kutime farita monate / periode.

Ĉu aliaj?

Sed la plej malbona afero estas, ke eĉ Mixpanel konsideras la datumvolumojn proprajn al aktiva poŝtelefona aplikaĵo kiel proksimumon (malkaŝe deklaritaj rekte en la dokumentado). Se vi komparas la rezultojn kun servilaj analizoj, la valoroj diverĝos. (Legu pri kiel krei viajn proprajn servilflankajn analizojn en nia sekva artikolo!)

La granda malavantaĝo de preskaŭ ĉiuj analizaj sistemoj estas, ke ili limigas aliron al krudaj ŝtipoj. Do, ruli vian propran modelon sur ŝajne viaj propraj datumoj ne funkcios. Ekzemple, se vi rigardas funelojn en Mixpanel, vi povas nur kalkuli la averaĝan tempon inter paŝoj. Pli kompleksaj metrikoj, ekzemple, meza tempo aŭ procentoj, ne povas esti kalkulitaj.

Ankaŭ, la kapablo elfari kompleksajn agregojn kaj segmentigojn ofte mankas. Ekzemple, la malfacila grupo aĉetas "por kunigi uzantojn kiuj naskiĝis en 1990 kaj aĉetis almenaŭ 50 benkojn ĉiu" eble ne haveblas.

Facebook Analytics havas tre kompleksan interfacon kaj estas malrapida.

Kio se mi ŝaltas ĉiujn sistemojn samtempe?

Bonega ideo! Ofte okazas, ke malsamaj sistemoj produktas malsamajn rezultojn. Malsamaj nombroj. Krome, iuj havas unu funkcion, aliaj havas alian, kaj aliaj estas senpagaj.
Krome, pluraj sistemoj povas esti ŝaltitaj paralele por testado: ekzemple por konatiĝi kun la interfaco de nova kaj iom post iom ŝanĝi al ĝi. Kiel en iu ajn komerco, ĉi tie vi devas scii, kiam halti kaj konekti analizojn ĝis tia grado, ke vi povas observi ĝin (kaj tio ne malrapidigos vian retan konekton).

Ni konektis ĉion, kaj poste publikigis novajn funkciojn, kiel aldoni eventojn?

Same kiel kiam vi konektas analizojn de nulo: kolektu priskribojn de la necesaj eventoj kaj uzu la SDK por enmeti ilin en la klientkodon.

Mi esperas, ke la respondoj al oftaj demandoj estos utilaj al vi. Se ili helpis vin kompreni, ke klientflanka analizo ne taŭgas por via aplikaĵo, ni rekomendas provi vian servilflankan analizon. Mi parolos pri ĝi en la sekva parto, kaj poste mi parolos pri kiel efektivigi ĉi tion en via projekto.

Nur registritaj uzantoj povas partopreni la enketon. Ensaluti, bonvolu.

Kiajn klientajn analizajn sistemojn vi uzas?

  • Mixpanel

  • Facebook Analytics

  • Google Analytics

  • Yandex Metrica

  • Aliaj

  • Kun via sistemo

  • Nenio

33 uzantoj voĉdonis. 15 uzantoj sindetenis.

fonto: www.habr.com

Aldoni komenton