Retentioneering: com vam escriure eines d'anàlisi de productes de codi obert a Python i Pandas

Hola, Habr. Aquest article està dedicat als resultats de quatre anys de desenvolupament d'un conjunt de mètodes i eines per processar les trajectòries de moviment dels usuaris en una aplicació o lloc web. Autor del desenvolupament - Maxim Godzi, que encapçala l'equip de creadors de productes i també és l'autor de l'article. El producte en si es deia Retentioneering; ara s'ha convertit en una biblioteca de codi obert i s'ha publicat a Github perquè qualsevol pugui utilitzar-lo. Tot això pot ser d'interès per a les persones implicades en l'anàlisi de productes i màrqueting, la promoció i el desenvolupament de productes. Per cert, a Habré ja s'ha publicat un article sobre un dels casos de treball amb Retentioneering. El nou material explica què pot fer el producte i com es pot utilitzar.

Després de llegir l'article, vostè mateix podrà escriure el seu propi Retentioneering; pot ser qualsevol mètode estandarditzat per processar les trajectòries dels usuaris a l'aplicació i més enllà, que us permetrà veure amb detall les característiques del comportament i extreure-ne informació per al creixement. de mètriques empresarials.

Què és Retentioneering i per què és necessari?

El nostre objectiu inicial era traslladar el Growth Hacking del món de la "bruixeria digital" al món dels números, l'anàlisi i les previsions. Com a conseqüència, l'anàlisi de producte es redueix a matemàtiques pures i programació per a aquells que prefereixen els números en comptes d'històries fantàstiques, i les fórmules a paraules de moda com "rebranding", "reposicionament", etc., que sonen bé, però a la pràctica ajuden poc.

Per resoldre aquests problemes, necessitàvem un marc d'anàlisi a través de gràfics i trajectòries, i alhora una biblioteca que simplifiqui les rutines típiques dels analistes, com una manera de descriure les tasques habituals d'anàlisi de productes que fossin comprensibles tant per a persones com per robots. La biblioteca ofereix la possibilitat de descriure el comportament de l'usuari i enllaçar-lo amb les mètriques empresarials del producte en un llenguatge tan formal i clar que simplifica i automatitza les tasques rutinàries dels desenvolupadors i analistes, i facilita la seva comunicació amb l'empresa.

Retentioneering és un mètode i eines de programari analític que es pot adaptar i integrar a qualsevol producte digital (i no només).

Vam començar a treballar en el producte l'any 2015. Ara es tracta d'un conjunt d'eines ja fetes, tot i que encara no és ideal, en Python i Pandas per treballar amb dades, models d'aprenentatge automàtic amb API semblant a sklearn, eines per interpretar els resultats dels models d'aprenentatge automàtic eli5 i shap.

Està tot embolicat a una còmoda biblioteca de codi obert al repositori obert de Github: retentioneering-tools. L'ús de la biblioteca no és difícil; gairebé qualsevol persona que estima l'anàlisi de productes, però que no hagi escrit codi abans, pot aplicar els nostres mètodes d'anàlisi a les seves dades de manera independent i sense una inversió de temps important.

Bé, un programador, un creador d'aplicacions o un membre d'un equip de desenvolupament o prova que mai abans no hagi fet anàlisis poden començar a jugar amb aquest codi i veure els patrons d'ús de la seva aplicació sense ajuda externa.

La trajectòria de l'usuari com a element bàsic d'anàlisi i mètodes per al seu tractament

La trajectòria de l'usuari és una seqüència d'estats de l'usuari en determinats moments. A més, els esdeveniments poden provenir de diferents fonts de dades, tant en línia com fora de línia. Els esdeveniments que succeeixen a l'usuari formen part de la seva trajectòria. Exemples:
• va prémer el botó
• va veure la imatge
• colpejar la pantalla
• rebut un correu electrònic
• recomanar el producte a un amic
• omplir el formulari
• va tocar la pantalla
• desplaçat
• va anar a la caixa registradora
• va demanar un burrito
• menjava un burrito
• es va enverinar menjant un burrito
• va entrar al cafè per l'entrada posterior
• s'entra per l'entrada principal
• minimitzar l'aplicació
• rebut una notificació push
• es va quedar enganxat a la pantalla més temps que X
• pagat per la comanda
• va comprar la comanda
• se li va denegar un préstec

Si agafeu les dades de trajectòria d'un grup d'usuaris i estudieu com s'estructuren les transicions, podeu rastrejar exactament com s'estructura el seu comportament a l'aplicació. És convenient fer-ho mitjançant un gràfic en què els estats són nodes i les transicions entre estats són arestes:

Retentioneering: com vam escriure eines d'anàlisi de productes de codi obert a Python i Pandas

"Trajectòria" és un concepte molt convenient: conté informació detallada sobre totes les accions de l'usuari, amb la possibilitat d'afegir dades addicionals a la descripció d'aquestes accions. Això el converteix en un objecte universal. Si teniu eines boniques i còmodes que us permeten treballar amb trajectòries, podeu trobar semblances i segmentar-les.

La segmentació de la trajectòria pot semblar molt complicada al principi. En una situació normal, aquest és el cas: cal utilitzar la comparació de matrius de connectivitat o l'alineació de seqüències. Hem aconseguit trobar una manera més senzilla: estudiar un gran nombre de trajectòries i segmentar-les mitjançant agrupacions.

Com va resultar, és possible convertir una trajectòria en un punt mitjançant representacions contínues, per exemple, TF-IDF. Després de la transformació, la trajectòria es converteix en un punt de l'espai on l'ocurrència normalitzada de diversos esdeveniments i transicions entre ells en la trajectòria es dibuixa al llarg dels eixos. Aquesta cosa d'un enorme espai de milers o més dimensions (dimS=sum(tipus d'esdeveniment)+sum(ngrams_2 tipus)) es pot projectar en un pla utilitzant TSNE. TSNE és una transformació que redueix la dimensió de l'espai a 2 eixos i, si és possible, conserva les distàncies relatives entre punts. En conseqüència, es fa possible en un mapa pla, un mapa de projecció figurativa de trajectòries, estudiar com es situaven entre ells els punts de diferents trajectòries. Analitza la proximitat o la diferència entre si, si formaven agrupacions o estaven disperses pel mapa, etc.:

Retentioneering: com vam escriure eines d'anàlisi de productes de codi obert a Python i Pandas

Les eines d'anàlisi de retenció ofereixen la capacitat de convertir dades i trajectòries complexes en una visió que es pugui comparar entre si, i després es pot examinar i interpretar el resultat de la transformació.

Parlant de mètodes estàndard per processar trajectòries, ens referim a tres eines principals que hem implementat en Retentioneering: gràfics, matrius de passos i mapes de projecció de trajectòries.

Treballar amb Google Analytics, Firebase i sistemes d'anàlisi similars és bastant complex i no és 100% efectiu. El problema és una sèrie de restriccions per a l'usuari, com a resultat de les quals el treball de l'analista en aquests sistemes depèn dels clics del ratolí i la selecció de llesques. El retentioneering permet treballar amb trajectòries d'usuari, i no només amb embuts, com a Google Analytics, on el nivell de detall sovint es redueix a un embut, encara que construït per a un segment determinat.

Retenció i casos

Com a exemple d'ús de l'eina desenvolupada, podem citar el cas d'un gran nínxol de servei a Rússia. Aquesta empresa té una aplicació mòbil d'Android que és popular entre els clients. La facturació anual de l'aplicació mòbil va ser d'uns 7 milions de rubles, les fluctuacions estacionals oscil·laven entre 60 i 130 mil. La mateixa empresa també té una aplicació per a iOS i la factura mitjana d'un usuari de l'aplicació d'Apple era superior a la factura mitjana de un client que utilitza l'aplicació d'Android - 1080 rub. enfront de 1300 rub.

L'empresa va decidir augmentar l'eficiència de l'aplicació per a Android, per la qual cosa va fer una anàlisi exhaustiva. Es van generar diverses desenes d'hipòtesis sobre l'augment de l'efectivitat de l'aplicació. Després d'utilitzar Retentionneering, va resultar que el problema estava en els missatges que es mostraven als usuaris nous. Van rebre informació sobre la marca, els avantatges de l'empresa i els preus. Però, segons va resultar, els missatges havien d'ajudar l'usuari a aprendre a treballar a l'aplicació.

Retentioneering: com vam escriure eines d'anàlisi de productes de codi obert a Python i Pandas

Això es va fer, com a conseqüència de la qual cosa l'aplicació es va desinstal·lar menys i l'augment de la conversió a comanda va ser del 23%. Al principi, el 20 per cent del trànsit entrant es va donar a la prova, però al cap d'uns dies, després d'analitzar els primers resultats i valorar la tendència, van invertir les proporcions i, per contra, van deixar un 20 per cent per al grup control i el vuitanta per cent es van col·locar a la prova. Una setmana després, es va decidir afegir seqüencialment la prova de dues hipòtesis més. En només set setmanes, la facturació de l'aplicació per a Android va augmentar una vegada i mitja respecte al nivell anterior.

Com treballar amb Retentioneering?

Els primers passos són bastant senzills: descarregueu la biblioteca amb l'ordre pip install retentioneering. El dipòsit en si conté exemples preparats i casos de processament de dades per a algunes tasques d'anàlisi de productes. El conjunt s'actualitza constantment fins que n'hi ha prou per a un primer conegut. Qualsevol persona pot agafar mòduls preparats i aplicar-los immediatament a les seves tasques; això li permet configurar immediatament el procés d'anàlisi i optimització més detallada de les trajectòries dels usuaris de la manera més ràpida i eficient possible. Tot això fa possible trobar patrons d'ús d'aplicacions mitjançant un codi clar i compartir aquesta experiència amb els companys.

La retenció és una eina que val la pena utilitzar durant tota la vida de la vostra aplicació, i aquí teniu el perquè:

  • La retenció és eficaç per fer un seguiment i optimitzar contínuament les trajectòries dels usuaris i millorar el rendiment empresarial. Així, sovint s'afegeixen noves funcions a les aplicacions de comerç electrònic, l'impacte de les quals en el producte no sempre es pot predir correctament. En alguns casos, sorgeixen problemes de compatibilitat entre funcions noves i antigues; per exemple, les noves "canibalitzen" les existents. I en aquesta situació, precisament, l'anàlisi constant de trajectòries és el que cal.
  • La situació és similar quan es treballa amb canals publicitaris: les noves fonts de trànsit i els creatius publicitaris es posen a prova constantment, cal controlar l'estacionalitat, les tendències i la influència d'altres esdeveniments, fet que fa que apareguin cada cop més noves classes de problemes. Això també requereix un seguiment i una interpretació constants de la mecànica de l'usuari.
  • Hi ha una sèrie de factors que afecten constantment el rendiment d'una aplicació. Per exemple, nous llançaments dels desenvolupadors: tancant un problema actual, sense voler-ne retornen l'antic o en creen un de completament nou. Amb el temps, el nombre de noves versions creix i el procés de seguiment dels errors s'ha d'automatitzar, fins i tot mitjançant l'anàlisi de les trajectòries dels usuaris.

En general, la retenció és una eina eficaç. Però no hi ha límit a la perfecció: es pot i s'ha de millorar, desenvolupar i construir nous productes fantàstics sobre la seva base. Com més activa sigui la comunitat del projecte, més bifurcacions hi haurà i apareixeran noves opcions interessants per utilitzar-lo.

Més informació sobre les eines de retenció:

Font: www.habr.com

Afegeix comentari