{"id":38424,"date":"2019-10-31T22:23:40","date_gmt":"2019-10-31T19:23:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\/"},"modified":"2026-07-06T16:02:25","modified_gmt":"2026-07-06T14:02:25","slug":"retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","title":{"rendered":"Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei prodotti in Python e Pandas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ciao, Habr. Questo articolo \u00e8 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 \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/mgodzi\/\">Maksim Godzi<\/a><\/noindex>, che guida il team di creatori del prodotto e anche autore di questo articolo. Il prodotto \u00e8 stato denominato Retentioneering, ed \u00e8 attualmente trasformato in una libreria open-source e pubblicato su Github, affinch\u00e9 chiunque possa utilizzarlo. Tutto ci\u00f2 potrebbe interessare chi \u00e8 coinvolto nell'analisi dei prodotti e nel marketing, promozione e sviluppo del prodotto. A proposito, su Habr <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/binarydistrict\/blog\/437534\/\">\u00e8 gi\u00e0 stato pubblicato un articolo su uno dei casi di utilizzo di Retentioneering<\/a><\/noindex>. Il nuovo materiale descrive ci\u00f2 che il prodotto \u00e8 in grado di fare e come pu\u00f2 essere utilizzato.<\/p>\n<p>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\u00f2 diventarlo, permettendo di vedere nel dettaglio le peculiarit\u00e0 del comportamento e di estrarre da queste intuizioni per incrementare le metriche aziendali. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Cos'\u00e8 Retentioneering e a cosa serve?<\/h3>\n<p>\nInizialmente, 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. <\/p>\n<p>Per affrontare queste esigenze, \u00e8 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.<\/p>\n<p><b>Retentioneering \u00e8 un metodo e strumenti analitici software che possono essere adattati e integrati in qualsiasi prodotto digitale (e non solo). <\/b><\/p>\n<p>Abbiamo iniziato a lavorare al prodotto nel 2015. Ora \u00e8 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. <\/p>\n<p>Tutto ci\u00f2 \u00e8 contenuto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">in una comoda libreria open-source nel repository pubblico di Github \u2014 retentioneering-tools<\/a><\/noindex>. Utilizzare la libreria \u00e8 semplice; praticamente chiunque ami l'analisi dei dati, anche senza esperienza di programmazione, pu\u00f2 applicare i nostri metodi analitici ai propri dati in modo autonomo e senza dedicare troppo tempo. <\/p>\n<p>Un programmatore, creatore di applicazioni o membro del team di sviluppo o testing, che non ha mai affrontato l'analisi, pu\u00f2 iniziare a esplorare questo codice e vedere i modelli di utilizzo della propria applicazione senza aiuto esterno. <\/p>\n<h3>Il percorso utente come elemento fondamentale dell'analisi e metodi per la sua elaborazione<\/h3>\n<p>\n<b>Il percorso utente \u00e8 la sequenza di stati dell'utente in determinati momenti temporali.<\/b> 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:<br \/>\n\u2022 ha cliccato un pulsante<br \/>\n\u2022 ha vista un'immagine<br \/>\n\u2022 \u00e8 arrivato a uno schermo<br \/>\n\u2022 ha ricevuto un'email<br \/>\n\u2022 ha consigliato un prodotto a un amico<br \/>\n\u2022 ha compilato un modulo<br \/>\n\u2022 ha toccato lo schermo<br \/>\n\u2022 ha fatto scroll<br \/>\n\u2022 si \u00e8 avvicinato alla cassa<br \/>\n\u2022 ha ordinato un burrito<br \/>\n\u2022 ha mangiato un burrito<br \/>\n\u2022 \u00e8 rimasto male per il burrito mangiato<br \/>\n\u2022 \u00e8 entrato nel bar dalla porta sul retro<br \/>\n\u2022 \u00e8 entrato dalla porta principale<br \/>\n\u2022 ha chiuso l'app<br \/>\n\u2022 ha ricevuto una notifica push<br \/>\n\u2022 ha fissato lo schermo per pi\u00f9 tempo di X<br \/>\n\u2022 ha pagato l'ordine<br \/>\n\u2022 ha ritirato l'ordine<br \/>\n\u2022 ha ricevuto un rifiuto del credito<\/p>\n<p>Analizzando i dati dei percorsi di un gruppo di utenti e studiando come avvengono le transizioni, \u00e8 possibile tracciare come si costruisce il loro comportamento nell'app. Questo \u00e8 facile da fare tramite un grafo, dove gli stati sono nodi e le transizioni tra stati sono archi:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: come abbiamo scritto strumenti open-source per l&#039;analisi dei prodotti in Python e Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/07d7a7cf4f023f5d42ef9b31ed07a0ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nIl concetto di \u00abTraiettoria\u00bb \u00e8 molto utile: contiene informazioni dettagliate su tutte le azioni dell'utente, con la possibilit\u00e0 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.<\/p>\n<p>La segmentazione delle traiettorie pu\u00f2 inizialmente sembrare qualcosa di molto complesso. Nella situazione normale \u00e8 cos\u00ec: \u00e8 necessario utilizzare il confronto delle matrici di connessione o l'allineamento delle sequenze. Siamo riusciti a trovare un metodo pi\u00f9 semplice: studiare un gran numero di traiettorie e segmentarle attraverso la clustering.<\/p>\n<p>Come si \u00e8 rivelato, \u00e8 possibile trasformare una traiettoria in un punto attraverso rappresentazioni continue, ad esempio, <noindex><a rel=\"nofollow\" href=\"http:\/\/datameetsmedia.com\/bag-of-words-tf-idf-explained\/\">TF-IDF<\/a><\/noindex>. Dopo la trasformazione, la traiettoria diventa un punto nello spazio, dove sugli assi \u00e8 indicata la frequenza normalizzata di vari eventi e transizioni all'interno della traiettoria. Questa cosa, da uno spazio enorme di mille e pi\u00f9 dimensioni (dimS=sum(event types)+sum(ngrams_2 types)), pu\u00f2 essere proiettata su un piano tramite <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/How-does-t-SNE-work-in-simple-words\">TSNE<\/a><\/noindex>. TSNE \u2014 una trasformazione che riduce la dimensionalit\u00e0 dello spazio a 2 assi, mantenendo quanto pi\u00f9 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.:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: come abbiamo scritto strumenti open-source per l&#039;analisi dei prodotti in Python e Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/3f0386c33885cb842aec8ec01a5f47ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGli 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.<\/p>\n<p>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. <\/p>\n<p>Lavorare con Google Analytics, Firebase e sistemi di analisi simili pu\u00f2 essere abbastanza complesso e non \u00e8 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\u00e0 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. <\/p>\n<h3>Retentioneering e casi studio<\/h3>\n<p>\nCome 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 \u00e8 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 \u2014 1.080 rubli contro 1.300 rubli.<\/p>\n<p>L'azienda ha deciso di aumentare l'efficacia dell'app Android, per la quale \u00e8 stata effettuata un'analisi approfondita. Sono state formulate diverse decine di ipotesi per migliorare le prestazioni dell'applicazione. Dopo aver utilizzato Retentioneering, \u00e8 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 \u00e8 rivelato, i messaggi avrebbero dovuto aiutare l'utente a imparare a utilizzare l'applicazione. <\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: come abbiamo scritto strumenti open-source per l&#039;analisi dei prodotti in Python e Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/9e6718eb967ae65d047605e4b8a92b3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuesto \u00e8 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 \u00e8 stata presa la decisione di aggiungere progressivamente il test di altre due ipotesi. In totale, dopo sette settimane, il fatturato dell'app Android \u00e8 aumentato di un 50% rispetto al livello precedente.<\/p>\n<h3>Come si lavora con Retentioneering?<\/h3>\n<p>\nI 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\u00e0 di analisi dei prodotti. Il set viene continuamente aggiornato, ma \u00e8 gi\u00e0 sufficiente per una prima introduzione. Ognuno pu\u00f2 prendere moduli gi\u00e0 pronti e applicarli immediatamente alle proprie sfide \u2014 questo consente di impostare rapidamente un processo per un'analisi pi\u00f9 dettagliata e un'ottimizzazione dei percorsi degli utenti in modo efficace. Tutto ci\u00f2 permette di identificare i modelli di utilizzo dell'app attraverso un codice chiaro e di condividere questa esperienza con i colleghi.<\/p>\n<p>Retentioneering \u00e8 uno strumento che dovresti utilizzare per tutta la vita dell'applicazione, ecco perch\u00e9:<\/p>\n<ul>\n<li>Retentioneering \u00e8 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\u00e0, il cui impatto sul prodotto non sempre pu\u00f2 essere prevedibile con precisione. In alcuni casi sorgono problemi di compatibilit\u00e0 tra nuove e vecchie funzionalit\u00e0: per esempio, le nuove possono \"cannibalizzare\" quelle gi\u00e0 esistenti. In questa situazione, \u00e8 necessario un'analisi costante dei percorsi. <\/li>\n<li>La situazione \u00e8 analoga nella gestione dei canali pubblicitari: vengono costantemente testate nuove fonti di traffico e creativit\u00e0 pubblicitarie, \u00e8 fondamentale monitorare la stagionalit\u00e0, le tendenze e l'impatto di altri eventi, il che porta all'emergere di nuove classi di problemi. Anche qui \u00e8 necessario un monitoraggio e un'interpretazione costanti delle meccaniche utente. <\/li>\n<li>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.<\/li>\n<\/ul>\n<p>\nIn generale, Retentioneering \u00e8 uno strumento efficace. Ma non ci sono limiti al miglioramento: pu\u00f2 e deve essere perfezionato, sviluppato e su di esso possono essere costruiti nuovi prodotti interessanti. Pi\u00f9 attiva sar\u00e0 la comunit\u00e0 del progetto, pi\u00f9 fork si creeranno e emergeranno nuove interessanti modalit\u00e0 di utilizzo.<\/p>\n<p>Ulteriori informazioni sugli strumenti di Retentioneering:<\/p>\n<ul>\n<li>Il nostro sito: <noindex><a rel=\"nofollow\" href=\"http:\/\/retentioneering.com\">retentioneering.com<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/retentioneering.tilda.ws\/#rec89053099\">Calendario degli incontri<\/a><\/noindex> e registrazione per partecipare<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/t-do.ru\/retentioneering_meetups\">Chat di prodotti e analisi su Telegram<\/a><\/noindex><\/li>\n<li>Gratuito <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">repository di Retentioneering su GitHub<\/a><\/noindex> <\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/468721\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u043e\u0434\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u043d \u0436\u0435 \u2014 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Retentioneering, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 open-source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 Github, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28843,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u043e\u0434\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u043d \u0436\u0435 \u2014 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Retentioneering, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 open-source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 Github, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Retentioneering: \u043a\u0430\u043a \u043c\u044b open-source \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Python \u0438 Pandas \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u043e\u0434\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u043d \u0436\u0435 \u2014 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Retentioneering, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 open-source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 Github, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:23:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-06T14:02:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Retentioneering: come abbiamo scritto strumenti open-source per l'analisi dei dati di prodotto in Python e Pandas | ProHoster","description":"Ciao, Habr. Questo articolo \u00e8 dedicato ai risultati di quattro anni di sviluppo di un insieme di metodi e strumenti per l'elaborazione delle traiettorie degli utenti in un'app o su un sito web. Il creatore del progetto \u00e8 Maxim Godzi, che guida il team di sviluppo del prodotto ed \u00e8 anche l'autore di questo articolo. Il prodotto si chiama Retentioneering, ed \u00e8 stato trasformato in una libreria open-source e pubblicato su Github, affinch\u00e9 chiunque","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Retentioneering: \u043a\u0430\u043a \u043c\u044b open-source \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Python \u0438 Pandas \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u043e\u0434\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u043d \u0436\u0435 \u2014 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Retentioneering, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 open-source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 Github, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:23:40+00:00","article:modified_time":"2026-07-06T14:02:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38424","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 22:00:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:09:23","updated":"2026-01-23 22:00:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/38424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=38424"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/38424\/revisions"}],"predecessor-version":[{"id":182486,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/38424\/revisions\/182486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/28843"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=38424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=38424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=38424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}