Retentioneering: jak jsme napsali open-source nástroje pro produktovou analytiku v Pythonu a Pandas

Ahoj, Habr. Tento článek je věnován výsledkům čtyřletého vývoje souboru metod a nástrojů pro zpracování trajektorií pohybu uživatelů v aplikaci nebo na webu. Autorem vývoje je Maxim Godzi, který stojí v čele týmu tvůrců produktu, zároveň je autorem tohoto článku. Samotný produkt dostal název Retentioneering, nyní byl převeden na open-source knihovnu a umístěn na Github, aby ho mohl používat kdokoli. To vše může být zajímavé pro ty, kteří se zabývají produktovou a marketingovou analytikou, propagací a rozvojem produktu. Mimochodem, na Hbru již byla publikována zmínka o jednom z případů práce s Retentioneeringem. V novém materiálu se hovoří o tom, co produkt dokáže a jak ho lze využít.

Přečtením článku budete moci napsat svůj vlastní Retentioneering, tím se může stát jakákoliv standardizovaná metoda zpracování trajektorií uživatelů v aplikaci i mimo ni, umožňující podrobně vidět zvláštnosti chování a extrahovat z toho poznatky pro růst obchodních metrik.

Co je Retentioneering a proč je to potřeba?

Naším původním cílem bylo převést Growth Hacking ze světa „digitálních mágů“ do světa čísel, analýz a prognóz. V důsledku toho — zjednodušení produktové analytiky na čistou matematiku a programování pro ty, kdo dávají přednost číslům před fantastickými příběhy, a vzorcům před chytrými výrazy jako „rebranding“, „repozicionování“ apod., které znějí pěkně, ale ve skutečnosti příliš nepomáhají.

K řešení uvedených úloh byl potřeba rámec pro analýzu přes grafy a trajektorie, a zároveň knihovna, která zjednodušuje typické rutiny analytika jako způsob popisu pravidelných úloh produktové analytiky, která by byla srozumitelná jak lidem, tak robotům. Knihovna umožňuje popisovat chování uživatelů a spojovat ho s obchodními metrikami produktu na tak formálním a jasném jazyce, aby se zjednodušily a automatizovaly rutinní úlohy vývojářů a analytiků a usnadnila se jejich komunikace s byznysem.

Retentioneering — metoda a analytické programové nástroje, které je možné přizpůsobit a integrovat do jakéhokoli digitálního (a nejen) produktu.

Na produktu jsme začali pracovat v roce 2015. Nyní je to již hotový, i když zatím ne ideální soubor nástrojů v Pythonu a Pandas pro práci s daty, modely strojového učení se sklearn-like API, nástroji pro interpretaci výsledků modelů strojového učení eli5 a shap.

To vše je zabaleno do pohodlné open-source knihovny na otevřeném repozitáři Github — retentioneering-tools.Použití knihovny není složité, prakticky každý, kdo má rád produktovou analytiku, ale dosud nepsal kód, může naše analytické metody aplikovat na svá data samostatně a bez značných nároků na čas.

No a programátor, tvůrce aplikace nebo člen vývojového nebo testovacího týmu, který se nikdy předtím nevěnoval analytice, může začít experimentovat s tímto kódem a bez cizí pomoci vidět vzory využívání své aplikace.

Trajektorie uživatele jako základní prvek analýzy a metody jejího zpracování.

Trajektorie uživatele — sekvence stavů uživatele v určitých časových bodech. Přitom události mohou pocházet z různých zdrojů dat, jak online, tak offline. Události, které se uživateli staly — jsou součástí jeho trajektorie. Příklady:
• stiskl tlačítko
• viděl obrázek
• dostal se na obrazovku
• obdržel e-mail
• doporučil produkt příteli
• vyplnil formulář
• ťuknul na obrazovku
• proškrolil
• přistoupil k pokladně
• objednal burrito
• snědl burrito
• otrávil se snědeným burritem
• vešel do kavárny zadním vchodem
• vešel hlavním vchodem
• zavřel aplikaci
• obdržel push notifikaci
• zíral na obrazovku déle než X
• zaplatil objednávku
• vyzvedl objednávku
• obdržel zamítnutí úvěru

Pokud vezmeme data trajektorií skupiny uživatelů a prozkoumáme, jak jsou uspořádány přechody, můžeme sledovat, jak přesně se vyvíjí jejich chování v aplikaci. To se pohodlně provádí přes graf, kde jsou stavy — uzly, a přechody mezi stavy — hrany:

Retentioneering: jak jsme napsali open-source nástroje pro produktovou analytiku v Pythonu a Pandas

„Trajektorie“ je velmi praktický pojem – zahrnuje podrobné informace o všech akcích uživatele s možností přidat jakákoli další data do popisu těchto akcí. To z ní činí univerzální objekt. Pokud máte krásné a uživatelsky přívětivé nástroje, které umožňují pracovat s trajektoriemi, můžete najít podobnosti a segmentovat je.

Segmentace trajektorií se může na první pohled zdát velmi složitá. V běžné situaci to tak je – je třeba použít porovnání matic konektivity nebo vyrovnávání sekvencí. Nám se podařilo najít jednodušší způsob – analyzovat velké množství trajektorií a segmentovat je pomocí shlukování.

Jak se ukázalo, lze trajektorii převést na bod pomocí nepřetržitých reprezentací, například TF-IDF. Po převodu se trajektorie stává bodem v prostoru, kde na osách je normovaná četnost různých událostí a přechodů mezi nimi v trajektorii. Tuto komponentu z obrovského prostoru s více než tisíci rozměry (dimS = součet(typy událostí) + součet(typy 2-gramů)) lze obnovit na rovině pomocí TSNE. TSNE – transformace, která snižuje rozměrnost prostoru na 2 osy a snaží se zachovat relativní vzdálenosti mezi body. Tím se na ploché mapě, obrazové projekční mapě trajektorií, zkoumá, jak spolu jednotlivé body různých trajektorií souvisejí. Analyzuje se, jak blízko nebo daleko od sebe byly, zda vytvářely shluky nebo se rozptýlily po mapě atd.:

Retentioneering: jak jsme napsali open-source nástroje pro produktovou analytiku v Pythonu a Pandas

Analytické nástroje Retentioneering umožňují převést hromady složitých dat a trajektorií na reprezentaci, kterou lze vzájemně porovnat, a poté prozkoumat a interpretovat výsledek transformace.

Pokud mluvíme o standardních metodách zpracování trajektorií, máme na mysli tři hlavní nástroje, které jsme implementovali v Retentioneering – grafy, step matice a projekční mapy trajektorií.

Práce s Google Analytics, Firebase a podobnými analytickými systémy je dost složitá a není stoprocentně efektivní. Problém spočívá v řadě omezení pro uživatele, což znamená, že práce analytika se v těchto systémech redukuje na klikání myší a vybírání segmentů. Retentioneering umožňuje pracovat s trajektoriemi uživatelů, a ne jen s funnelami, jako v Google Analytics, kde se úroveň podrobnosti často omezuje na funnel, i když je postavený pro nějaký segment.

Retentioneering a případy použití

Jako příklad použití vyvinutého nástroje lze uvést případ velkého specializovaného servisu v Rusku. Tato společnost má mobilní aplikaci pro Android, která je populární mezi zákazníky. Roční obrat z mobilní aplikace činil kolem 7 milionů rublů, sezónní fluktuace se pohybovaly v rozmezí 60-130 tisíc. Tato společnost má také aplikaci pro iOS, přičemž průměrná útrata uživatele aplikace pro Apple byla vyšší než průměrná útrata klienta používajícího aplikaci pro Android — 1080 rublů oproti 1300 rublům.

Společnost se rozhodla zvýšit efektivitu aplikace pro Android, a proto provedla její podrobnou analýzu. Bylo vytvořeno několik desítek hypotéz na zlepšení výkonnosti aplikace. Po použití Retentioneering se ukázalo, že problém tkví v zprávách, které byly zobrazeny novým uživatelům. Ti dostávali informace o značce, výhodách společnosti a cenách. Ale jak se ukázalo, zprávy měly uživateli pomoci naučit se pracovat v aplikaci.

Retentioneering: jak jsme napsali open-source nástroje pro produktovou analytiku v Pythonu a Pandas

To bylo realizováno, v důsledku čehož se aplikace začala méně odinstalovávat a růst konverze v objednávkách činil 23 %. Zpočátku bylo pro test vyčleněno 20 procent příchozího provozu, ale po několika dnech, po analýze prvních výsledků a zhodnocení trendu, se proporce odrazily a naopak bylo 20 procent ponecháno pro kontrolní skupinu, zatímco osmdesát procent bylo zařazeno do testu. O týden později bylo rozhodnuto postupně přidat testování dalších dvou hypotéz. Celkem po sedmi týdnech obrat z aplikace pro Android vzrostl o 50 % v porovnání s předchozí úrovní.

Jak pracovat s Retentioneering?

První kroky jsou dost jednoduché – nainstalujeme knihovnu pomocí příkazu pip install retentioneering. V samotném repozitáři jsou připravené příklady a případy zpracování dat pro některé úkoly produktové analytiky. Sada se neustále doplňuje, zatím je dostatečná pro první seznámení. Každý si může vzít hotové moduly a ihned je aplikovat na své úkoly – to umožňuje rychlé nastavení procesu podrobnější analýzy a optimalizace uživatelských cest maximálně efektivně. To vše umožňuje nalézt vzorce používání aplikace prostřednictvím srozumitelného kódu a předat tuto zkušenost kolegům.

Retentioneering – nástroj, který je třeba používat po celou dobu života aplikace, a to z následujících důvodů:

  • Retentioneering je efektivní pro sledování a kontinuální optimalizaci uživatelských cest a zlepšování obchodních ukazatelů. Například v ecommerce aplikacích se často přidávají nové funkce, jejichž vliv na produkt není vždy možné správně předpovědět. V některých případech se objevují problémy s kompatibilitou nových a starých funkcí – například nové „kanibalizují“ již existující. A v této situaci je právě potřeba trvalá analýza cest.
  • Podobná situace je i v práci s reklamními kanály: neustále se testují nové zdroje provozu a kreativní reklamy, je třeba sledovat sezónnost, trendy a dopad dalších událostí, což vede k vzniku stále nových tříd problémů. I zde je vyžadováno trvalé sledování a interpretace uživatelských mechanismů.
  • Existuje celá řada faktorů, které neustále ovlivňují fungování aplikace. Například nové verze od vývojářů: uzavřením aktuálního problému neúmyslně vracejí starý nebo vytvářejí zcela nový. Časem rostoucí počet nových verzí vyžaduje automatizaci procesu sledování chyb – včetně analýzy uživatelských cest.

Celkově je Retentioneering efektivní nástroj. Ale dokonalosti se nedá dosáhnout – lze ho a je třeba ho vylepšovat, rozvíjet, stavět na jeho základě nové skvělé produkty. Čím aktivnější bude komunita projektu, tím více bude forků a objevují se nové zajímavé možnosti jeho využití.

Další informace o nástrojích Retentioneering:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster