Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei prodotti in Python e Pandas

Ciao, Habr. Questo articolo è dedicato ai risultati di quattro anni di sviluppo di una serie di metodi e strumenti per l'analisi dei percorsi degli utenti in un'app o su un sito web. L'autore dello sviluppo è Maksim Godzi, che guida il team di creatori del prodotto e anche autore di questo articolo. Il prodotto è stato denominato Retentioneering, ed è attualmente trasformato in una libreria open-source e pubblicato su Github, affinché chiunque possa utilizzarlo. Tutto ciò potrebbe interessare chi è coinvolto nell'analisi dei prodotti e nel marketing, promozione e sviluppo del prodotto. A proposito, su Habr è già stato pubblicato un articolo su uno dei casi di utilizzo di Retentioneering. Il nuovo materiale descrive ciò che il prodotto è in grado di fare e come può essere utilizzato.

Dopo aver letto l'articolo, sarete in grado di scrivere il vostro Retentioneering; qualsiasi metodo standardizzato di analisi dei percorsi degli utenti, sia all'interno che all'esterno dell'app, può diventarlo, permettendo di vedere nel dettaglio le peculiarità del comportamento e di estrarre da queste intuizioni per incrementare le metriche aziendali.

Cos'è Retentioneering e a cosa serve?

Inizialmente, il nostro obiettivo era tradurre il Growth Hacking dal mondo della "magia digitale" in quello dei numeri, dell'analisi e delle previsioni. Di conseguenza, abbiamo ridotto l'analisi dei prodotti a pura matematica e programmazione per coloro che preferiscono i numeri alle storie fantastiche, e le formule rispetto a termini pomposi come "rebranding", "ripositionamento" e simili, che suonano bene ma sono poco utili nella pratica.

Per affrontare queste esigenze, è stato necessario un framework per l'analisi attraverso grafi e traiettorie, insieme a una libreria che semplificasse le routine tipiche dell'analista, come metodo per descrivere compiti regolari nell'analisi dei prodotti, comprensibile sia per le persone che per le macchine. La libreria consente di descrivere il comportamento degli utenti e di collegarlo alle metriche aziendali del prodotto in un linguaggio formale e chiaro, semplificando e automatizzando i compiti quotidiani di sviluppatori e analisti, e facilitando la loro comunicazione con il business.

Retentioneering è un metodo e strumenti analitici software che possono essere adattati e integrati in qualsiasi prodotto digitale (e non solo).

Abbiamo iniziato a lavorare al prodotto nel 2015. Ora è un insieme di strumenti pronti, anche se non ancora perfetti, in Python e Pandas per la gestione dei dati, modelli di machine learning con api simili a sklearn, e strumenti per l'interpretazione dei risultati dei modelli di machine learning eli5 e shap.

Tutto ciò è contenuto in una comoda libreria open-source nel repository pubblico di Github — retentioneering-tools. Utilizzare la libreria è semplice; praticamente chiunque ami l'analisi dei dati, anche senza esperienza di programmazione, può applicare i nostri metodi analitici ai propri dati in modo autonomo e senza dedicare troppo tempo.

Un programmatore, creatore di applicazioni o membro del team di sviluppo o testing, che non ha mai affrontato l'analisi, può iniziare a esplorare questo codice e vedere i modelli di utilizzo della propria applicazione senza aiuto esterno.

Il percorso utente come elemento fondamentale dell'analisi e metodi per la sua elaborazione

Il percorso utente è la sequenza di stati dell'utente in determinati momenti temporali. Gli eventi possono provenire da diverse fonti di dati, sia online che offline. Gli eventi che si verificano con l'utente fanno parte del suo percorso. Esempi:
• ha cliccato un pulsante
• ha vista un'immagine
• è arrivato a uno schermo
• ha ricevuto un'email
• ha consigliato un prodotto a un amico
• ha compilato un modulo
• ha toccato lo schermo
• ha fatto scroll
• si è avvicinato alla cassa
• ha ordinato un burrito
• ha mangiato un burrito
• è rimasto male per il burrito mangiato
• è entrato nel bar dalla porta sul retro
• è entrato dalla porta principale
• ha chiuso l'app
• ha ricevuto una notifica push
• ha fissato lo schermo per più tempo di X
• ha pagato l'ordine
• ha ritirato l'ordine
• ha ricevuto un rifiuto del credito

Analizzando i dati dei percorsi di un gruppo di utenti e studiando come avvengono le transizioni, è possibile tracciare come si costruisce il loro comportamento nell'app. Questo è facile da fare tramite un grafo, dove gli stati sono nodi e le transizioni tra stati sono archi:

Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei prodotti in Python e Pandas

Il concetto di «Traiettoria» è molto utile: contiene informazioni dettagliate su tutte le azioni dell'utente, con la possibilità di aggiungere qualsiasi dato aggiuntivo alla descrizione di queste azioni. Questo la rende un oggetto universale. Se hai strumenti belli e pratici che ti permettono di lavorare con le traiettorie, puoi trovare somiglianze e segmentarle.

La segmentazione delle traiettorie può inizialmente sembrare qualcosa di molto complesso. Nella situazione normale è così: è necessario utilizzare il confronto delle matrici di connessione o l'allineamento delle sequenze. Siamo riusciti a trovare un metodo più semplice: studiare un gran numero di traiettorie e segmentarle attraverso la clustering.

Come si è rivelato, è possibile trasformare una traiettoria in un punto attraverso rappresentazioni continue, ad esempio, TF-IDF. Dopo la trasformazione, la traiettoria diventa un punto nello spazio, dove sugli assi è indicata la frequenza normalizzata di vari eventi e transizioni all'interno della traiettoria. Questa cosa, da uno spazio enorme di mille e più dimensioni (dimS=sum(event types)+sum(ngrams_2 types)), può essere proiettata su un piano tramite TSNE. TSNE — una trasformazione che riduce la dimensionalità dello spazio a 2 assi, mantenendo quanto più possibile le distanze relative tra i punti. Questo rende possibile esplorare come erano posizionati tra loro i punti di diverse traiettorie su una mappa piatta o su una mappa di proiezione. Si analizza quanto fossero vicini o diversi tra loro, se formassero dei cluster o si disperdessero sulla mappa, ecc.:

Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei prodotti in Python e Pandas

Gli strumenti analitici di Retentioneering consentono di trasformare un insieme di dati complessi e traiettorie in una rappresentazione comparabile, permettendo quindi di esplorare e interpretare il risultato della trasformazione.

Parlando dei metodi standard di elaborazione delle traiettorie, ci riferiamo a tre strumenti principali che abbiamo implementato in Retentioneering: grafi, matrici step e mappe di proiezione delle traiettorie.

Lavorare con Google Analytics, Firebase e sistemi di analisi simili può essere abbastanza complesso e non è mai al 100% efficace. Il problema risiede in vari limiti per l'utente, il che porta il lavoro dell'analista a concentrarsi su clic e selezioni. Retentioneering offre la possibilità di lavorare sulle traiettorie degli utenti, e non solo sui funnel, come in Google Analytics, dove il livello di dettaglio spesso si riduce a un funnel, anche se creato per un determinato segmento.

Retentioneering e casi studio

Come esempio dell'uso dello strumento sviluppato, possiamo citare il caso di un grande servizio di nicchia in Russia. Questa azienda ha un'app mobile per Android che è molto popolare tra i suoi clienti. Il fatturato annuale dell'app mobile ammontava a circa 7 milioni di rubli, con fluttuazioni stagionali comprese tra 60.000 e 130.000 rubli. La stessa azienda ha anche un'app per iOS, e il valore medio del cliente dell'app 'Apple' era superiore a quello del cliente che utilizzava l'app Android — 1.080 rubli contro 1.300 rubli.

L'azienda ha deciso di aumentare l'efficacia dell'app Android, per la quale è stata effettuata un'analisi approfondita. Sono state formulate diverse decine di ipotesi per migliorare le prestazioni dell'applicazione. Dopo aver utilizzato Retentioneering, è emerso che il problema risiedeva nei messaggi mostrati ai nuovi utenti. Ricevevano informazioni sul marchio, sui vantaggi dell'azienda e sui prezzi. Ma, come si è rivelato, i messaggi avrebbero dovuto aiutare l'utente a imparare a utilizzare l'applicazione.

Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei prodotti in Python e Pandas

Questo è stato fatto, risultando in una diminuzione delle disinstallazioni dell'app e un aumento del tasso di conversione degli ordini del 23%. Inizialmente, il test ha ricevuto il 20% del traffico in ingresso, ma dopo alcuni giorni, analizzando i primi risultati e valutando la tendenza, hanno invertito le proporzioni, lasciando il 20% per il gruppo di controllo e destinando l'80% al test. Dopo una settimana è stata presa la decisione di aggiungere progressivamente il test di altre due ipotesi. In totale, dopo sette settimane, il fatturato dell'app Android è aumentato di un 50% rispetto al livello precedente.

Come si lavora con Retentioneering?

I primi passi sono piuttosto semplici: carichiamo la libreria con il comando pip install retentioneering. Nel repository ci sono esempi pronti e casi di elaborazione dei dati per alcune attività di analisi dei prodotti. Il set viene continuamente aggiornato, ma è già sufficiente per una prima introduzione. Ognuno può prendere moduli già pronti e applicarli immediatamente alle proprie sfide — questo consente di impostare rapidamente un processo per un'analisi più dettagliata e un'ottimizzazione dei percorsi degli utenti in modo efficace. Tutto ciò permette di identificare i modelli di utilizzo dell'app attraverso un codice chiaro e di condividere questa esperienza con i colleghi.

Retentioneering è uno strumento che dovresti utilizzare per tutta la vita dell'applicazione, ecco perché:

  • Retentioneering è efficace per monitorare e ottimizzare continuamente i percorsi degli utenti e migliorare le performance aziendali. Ad esempio, nelle applicazioni ecommerce vengono spesso aggiunte nuove funzionalità, il cui impatto sul prodotto non sempre può essere prevedibile con precisione. In alcuni casi sorgono problemi di compatibilità tra nuove e vecchie funzionalità: per esempio, le nuove possono "cannibalizzare" quelle già esistenti. In questa situazione, è necessario un'analisi costante dei percorsi.
  • La situazione è analoga nella gestione dei canali pubblicitari: vengono costantemente testate nuove fonti di traffico e creatività pubblicitarie, è fondamentale monitorare la stagionalità, le tendenze e l'impatto di altri eventi, il che porta all'emergere di nuove classi di problemi. Anche qui è necessario un monitoraggio e un'interpretazione costanti delle meccaniche utente.
  • Ci sono diversi fattori che influiscono continuamente sul funzionamento dell'applicazione. Ad esempio, i nuovi rilasci da parte degli sviluppatori: risolvendo un problema attuale, involontariamente possono ripristinarne uno vecchio o crearne uno completamente nuovo. Col passare del tempo, il numero di nuovi rilasci aumenta e il processo di monitoraggio degli errori deve essere automatizzato, anche mediante l'analisi dei percorsi degli utenti.

In generale, Retentioneering è uno strumento efficace. Ma non ci sono limiti al miglioramento: può e deve essere perfezionato, sviluppato e su di esso possono essere costruiti nuovi prodotti interessanti. Più attiva sarà la comunità del progetto, più fork si creeranno e emergeranno nuove interessanti modalità di utilizzo.

Ulteriori informazioni sugli strumenti di Retentioneering:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster