{"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\/sk\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","title":{"rendered":"Retentioneering: ako sme nap\u00edsali open-source n\u00e1stroje pre produktov\u00fa anal\u00fdzu na Pythone a Pandas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj, Habr. Tento \u010dl\u00e1nok je venovan\u00fd v\u00fdsledkom \u0161tvro\u010dn\u00e9ho v\u00fdvoja s\u00faboru met\u00f3d a n\u00e1strojov na spracovanie trajekt\u00f3ri\u00ed pohybu pou\u017e\u00edvate\u013eov v aplik\u00e1cii alebo na webe. Autorom v\u00fdvoja je <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/mgodzi\/\">Maxim Godzi<\/a><\/noindex>, ktor\u00fd vedie t\u00edm tvorcov produktu, a je z\u00e1rove\u0148 autorom tohto \u010dl\u00e1nku. Samotn\u00fd produkt dostal n\u00e1zov Retentioneering, teraz bol transformovan\u00fd na open-source kni\u017enicu a umiestnen\u00fd na Github, aby ho mohol vyu\u017ei\u0165 ka\u017ed\u00fd, kto m\u00e1 z\u00e1ujem. To v\u0161etko m\u00f4\u017ee by\u0165 zauj\u00edmav\u00e9 pre t\u00fdch, ktor\u00ed sa zaoberaj\u00fa produktov\u00fdm a marketingov\u00fdm anal\u00fdzami, propag\u00e1ciou a rozvojom produktu. Mimochodom, na Habri <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/binarydistrict\/blog\/437534\/\">u\u017e vy\u0161iel \u010dl\u00e1nok o jednom z pr\u00edpadov pr\u00e1ce s Retentioneeringom<\/a><\/noindex>. V novom materi\u00e1li sa hovor\u00ed o tom, \u010do produkt dok\u00e1\u017ee a ako ho mo\u017eno vyu\u017ei\u0165.<\/p>\n<p>Po pre\u010d\u00edtan\u00ed \u010dl\u00e1nku budete schopn\u00ed nap\u00edsa\u0165 svoj vlastn\u00fd Retentioneering; m\u00f4\u017ee sa n\u00edm sta\u0165 ak\u00e1ko\u013evek \u0161tandardizovan\u00e1 met\u00f3da spracovania trajekt\u00f3ri\u00ed pou\u017e\u00edvate\u013eov v aplik\u00e1cii a mimo nej, ktor\u00e1 umo\u017e\u0148uje podrobne vidie\u0165 zvl\u00e1\u0161tnosti spr\u00e1vania a z\u00edska\u0165 z toho podnety na rast biznisov\u00fdch metr\u00edk. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>\u010co je Retentioneering a na \u010do je to potrebn\u00e9?<\/h3>\n<p>\nNa\u0161\u00edm p\u00f4vodn\u00fdm cie\u013eom bolo prenies\u0165 Growth Hacking z oblasti \u201edigit\u00e1lneho m\u00e1gia\u201c do sveta \u010d\u00edsel, analytiky a predpoved\u00ed. Ako d\u00f4sledok - z\u00fa\u017eenie produktovej analytiky na \u010dist\u00fa matematiku a programovanie pre t\u00fdch, ktor\u00ed uprednost\u0148uj\u00fa \u010d\u00edsla pred fantastick\u00fdmi pr\u00edbehmi, a vzorce pred inteligentn\u00fdmi v\u00fdrazmi ako \u201erebranding\u201c, \u201erepozicionovanie\u201c at\u010f., ktor\u00e9 znie pekne, ale v praxi m\u00e1lo pom\u00e1haj\u00fa. <\/p>\n<p>Na rie\u0161enie uveden\u00fdch \u00faloh bol potrebn\u00fd r\u00e1mec pre analytiku cez grafy a trajekt\u00f3rie, a z\u00e1rove\u0148 kni\u017enica, ktor\u00e1 u\u013eah\u010duje typick\u00e9 rutiny analytika, ako sp\u00f4sob popisu pravideln\u00fdch \u00faloh produktovej analytiky, ktor\u00fd by bol zrozumite\u013en\u00fd ako pre \u013eud\u00ed, tak aj pre stroje. Kni\u017enica poskytuje mo\u017enos\u0165 opisova\u0165 spr\u00e1vanie pou\u017e\u00edvate\u013eov a prepoji\u0165 ho s biznisov\u00fdmi metrikami produktu na takom form\u00e1lnom a jasnom jazyku, aby sa zjednodu\u0161ili a automatizovali rutinn\u00e9 \u00falohy v\u00fdvoj\u00e1rov a analytikov a u\u013eah\u010dila ich komunik\u00e1cia s biznisom.<\/p>\n<p><b>Retentioneering - met\u00f3da a analytick\u00e9 softv\u00e9rov\u00e9 n\u00e1stroje, ktor\u00e9 je mo\u017en\u00e9 prisp\u00f4sobi\u0165 a integrova\u0165 do ak\u00e9hoko\u013evek digit\u00e1lneho (a nielen) produktu. <\/b><\/p>\n<p>Pr\u00e1cu na produkte sme za\u010dali v roku 2015. Teraz je to u\u017e hotov\u00e1, hoci zatia\u013e nie dokonal\u00e1 sada n\u00e1strojov na Python a Pandas na pr\u00e1cu s \u00fadajmi, modely strojov\u00e9ho u\u010denia s api podobn\u00fdm sklearn, n\u00e1stroje na interpret\u00e1ciu v\u00fdsledkov modelov strojov\u00e9ho u\u010denia eli5 a shap. <\/p>\n<p>V\u0161etko toto je zabalen\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">v pohodlnej open-source kni\u017enici v otvorenom repozit\u00e1ri Github \u2014 retentioneering-tools<\/a><\/noindex>. Pou\u017e\u00edva\u0165 kni\u017enicu nie je \u0165a\u017ek\u00e9, prakticky ktoko\u013evek, kto m\u00e1 r\u00e1d produktov\u00fa analytiku, ale predt\u00fdm nemal sk\u00fasenosti s k\u00f3dovan\u00edm, m\u00f4\u017ee na\u0161e analytick\u00e9 met\u00f3dy aplikova\u0165 na svoje \u00fadaje samostatne a bez v\u00fdrazn\u00fdch n\u00e1kladov na \u010das. <\/p>\n<p>Program\u00e1tor, tvorca aplik\u00e1cie alebo \u010dlen v\u00fdvojov\u00e9ho \u010di testovacieho t\u00edmu, ktor\u00fd sa predt\u00fdm nikdy nezaoberal analytikou, m\u00f4\u017ee za\u010da\u0165 experimentova\u0165 s t\u00fdmto k\u00f3dom a vidie\u0165 vzory pou\u017e\u00edvania svojej aplik\u00e1cie bez vonkaj\u0161ej pomoci. <\/p>\n<h3>Pou\u017e\u00edvate\u013esk\u00e1 trajekt\u00f3ria ako z\u00e1kladn\u00fd prvok anal\u00fdzy a met\u00f3dy jej spracovania<\/h3>\n<p>\n<b>Pou\u017e\u00edvate\u013esk\u00e1 trajekt\u00f3ria je sekvencia stavov pou\u017e\u00edvate\u013ea v ur\u010dit\u00fdch \u010dasov\u00fdch bodoch.<\/b> \u010co sa t\u00fdka udalost\u00ed, m\u00f4\u017eu by\u0165 z r\u00f4znych zdrojov \u00fadajov, online aj offline. Udalosti, ktor\u00e9 sa stali pou\u017e\u00edvate\u013eovi, s\u00fa s\u00fa\u010das\u0165ou jeho trajekt\u00f3rie. Pr\u00edklady:<br \/>\n\u2022 klikol na tla\u010didlo<br \/>\n\u2022 videl obr\u00e1zok<br \/>\n\u2022 dostal sa na obrazovku<br \/>\n\u2022 dostal e-mail<br \/>\n\u2022 odporu\u010dil produkt priate\u013eovi<br \/>\n\u2022 vyplnil formul\u00e1r<br \/>\n\u2022 \u0165ukol na obrazovku<br \/>\n\u2022 posunul sa nadol<br \/>\n\u2022 pribl\u00ed\u017eil sa k pokladni<br \/>\n\u2022 objednal burrito<br \/>\n\u2022 zjedol burrito<br \/>\n\u2022 dostal otravu z jedla burrita<br \/>\n\u2022 vo\u0161iel do kaviarne zadn\u00fdm vchodom<br \/>\n\u2022 vo\u0161iel predn\u00fdm vchodom<br \/>\n\u2022 zavrel aplik\u00e1ciu<br \/>\n\u2022 dostal push notifik\u00e1ciu<br \/>\n\u2022 pozeral do obrazovky dlh\u0161ie ako \u010das X<br \/>\n\u2022 zaplatil objedn\u00e1vku<br \/>\n\u2022 vyzdvihol objedn\u00e1vku<br \/>\n\u2022 dostal odmietnutie \u00faveru<\/p>\n<p>Ak vezmeme \u00fadaje o trajekt\u00f3ri\u00e1ch skupiny pou\u017e\u00edvate\u013eov a presk\u00famame, ako prebiehaj\u00fa prechody, m\u00f4\u017eeme sledova\u0165, ako sa presne vyv\u00edja ich spr\u00e1vanie v aplik\u00e1cii. Je to pohodln\u00e9 zrealizova\u0165 cez graf, v ktorom s\u00fa stavy \u2014 uzly a prechody medzi stavmi \u2014 hrany:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: ako sme nap\u00edsali open-source n\u00e1stroje pre produktov\u00fa anal\u00fdzu na Pythone a Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/07d7a7cf4f023f5d42ef9b31ed07a0ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n\u201eTrajekt\u00f3ria\u201c je ve\u013emi u\u017eito\u010dn\u00fd pojem \u2013 obsahuje podrobn\u00e9 inform\u00e1cie o v\u0161etk\u00fdch akci\u00e1ch pou\u017e\u00edvate\u013eov, s mo\u017enos\u0165ou pridania ak\u00fdchko\u013evek \u010fal\u0161\u00edch \u00fadajov k opisu t\u00fdchto akci\u00ed. To ju rob\u00ed univerz\u00e1lnym objektom. Ak m\u00e1te kr\u00e1sne a u\u017eito\u010dn\u00e9 n\u00e1stroje, ktor\u00e9 umo\u017e\u0148uj\u00fa pracova\u0165 s trajekt\u00f3riami, m\u00f4\u017eete n\u00e1js\u0165 podobnosti a segmentova\u0165 ich.<\/p>\n<p>Segment\u00e1cia trajekt\u00f3ri\u00ed sa na prv\u00fd poh\u013ead m\u00f4\u017ee zda\u0165 ako nie\u010do ve\u013emi zlo\u017eit\u00e9. V be\u017enej situ\u00e1cii to tak aj je \u2013 je potrebn\u00e9 pou\u017e\u00edva\u0165 porovnanie mat\u00edc konektivity alebo vyrovn\u00e1vanie sekvenci\u00ed. N\u00e1m sa podarilo n\u00e1js\u0165 jednoduch\u0161\u00ed pr\u00edstup \u2013 \u0161tudovan\u00edm ve\u013ek\u00e9ho mno\u017estva trajekt\u00f3ri\u00ed a segment\u00e1ciou prostredn\u00edctvom klastrovania.<\/p>\n<p>Ako sa uk\u00e1zalo, je mo\u017en\u00e9 premeni\u0165 trajekt\u00f3riu na bod pomocou nepretr\u017eit\u00fdch reprezent\u00e1ci\u00ed, napr\u00edklad <noindex><a rel=\"nofollow\" href=\"http:\/\/datameetsmedia.com\/bag-of-words-tf-idf-explained\/\">TF-IDF<\/a><\/noindex>. Po transform\u00e1cii sa trajekt\u00f3ria st\u00e1va bodom v priestore, kde s\u00fa na osiach zobrazen\u00e9 normalizovan\u00e9 v\u00fdskyty r\u00f4znych udalost\u00ed a prechodov medzi nimi. Tento objekt z obrovsk\u00e9ho tis\u00edc- a viac rozmern\u00e9ho priestoru (dimS=s\u00fa\u010det(typy udalost\u00ed)+s\u00fa\u010det(typy n-gramov_2)), je mo\u017en\u00e9 transformova\u0165 na rovinu pomocou <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/How-does-t-SNE-work-in-simple-words\">TSNE<\/a><\/noindex>. TSNE \u2013 transform\u00e1cia, zni\u017euje dimenziu priestoru na 2 osi a \u010do najviac zachov\u00e1va relat\u00edvne vzdialenosti medzi bodmi. T\u00fdm sa st\u00e1va mo\u017en\u00e9 na plochej mape, obrazovej projek\u010dnej mape trajekt\u00f3ri\u00ed, sk\u00fama\u0165, ako boli medzi sebou rozlo\u017een\u00e9 body r\u00f4znych trajekt\u00f3ri\u00ed. Analyzuje sa, ako bl\u00edzko alebo \u010faleko od seba boli, \u010di vytv\u00e1rali klastre alebo sa rozpt\u00fdlili po mape a pod.:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: ako sme nap\u00edsali open-source n\u00e1stroje pre produktov\u00fa anal\u00fdzu na Pythone a Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/3f0386c33885cb842aec8ec01a5f47ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnalytick\u00e9 n\u00e1stroje Retentioneering umo\u017e\u0148uj\u00fa premeni\u0165 hromadu zlo\u017eit\u00fdch \u00fadajov a trajekt\u00f3ri\u00ed na reprezent\u00e1ciu, ktor\u00fa je mo\u017en\u00e9 porovn\u00e1va\u0165 medzi sebou, a potom sk\u00fama\u0165 a interpretova\u0165 v\u00fdsledok transform\u00e1cie.<\/p>\n<p>Ke\u010f hovor\u00edme o \u0161tandardn\u00fdch met\u00f3dach spracovania trajekt\u00f3ri\u00ed, m\u00e1me na mysli tri z\u00e1kladn\u00e9 n\u00e1stroje, ktor\u00e9 sme implementovali v Retentioneering \u2013 grafy, step matice a mapy projekcie trajekt\u00f3ri\u00ed. <\/p>\n<p>Pr\u00e1ca s Google Analytics, Firebase a podobn\u00fdmi analytick\u00fdmi syst\u00e9mami je dos\u0165 zlo\u017eit\u00e1 a nie v\u017edy 100% efekt\u00edvna. Probl\u00e9m spo\u010d\u00edva v nieko\u013ek\u00fdch obmedzeniach pre pou\u017e\u00edvate\u013eov, \u010do sp\u00f4sobuje, \u017ee pr\u00e1ca analytika v t\u00fdchto syst\u00e9moch sa obmedzuje na kliky my\u0161ou a v\u00fdber segmentov. Retentioneering umo\u017e\u0148uje pracova\u0165 s pou\u017e\u00edvate\u013esk\u00fdmi trajekt\u00f3riami, a nie len s kan\u00e1lmi, ako to je v Google Analytics, kde je \u00farove\u0148 detailnosti \u010dasto obmedzen\u00e1 na kan\u00e1l, aj ke\u010f je vytvoren\u00fd pre ur\u010dit\u00fd segment. <\/p>\n<h3>Retentioneering a pr\u00edpady<\/h3>\n<p>\nAko pr\u00edklad pou\u017eitia vyvinut\u00e9ho n\u00e1stroja m\u00f4\u017eeme uvies\u0165 pr\u00edpad ve\u013ek\u00e9ho nika slu\u017eieb v Rusku. T\u00e1to spolo\u010dnos\u0165 m\u00e1 mobiln\u00fa aplik\u00e1ciu pre Android, ktor\u00e1 je popul\u00e1rna medzi klientmi. Ro\u010dn\u00fd obrat z mobilnej aplik\u00e1cie predstavoval pribli\u017ene 7 mili\u00f3nov rub\u013eov, sez\u00f3nne fluktu\u00e1cie sa pohybovali medzi 60-130 tis\u00edc. T\u00e1to spolo\u010dnos\u0165 m\u00e1 aj aplik\u00e1ciu pre iOS, pri\u010dom priemern\u00e1 hodnota objedn\u00e1vky pou\u017e\u00edvate\u013ea \u00abjablkov\u00fdch\u00bb aplik\u00e1ci\u00ed bola vy\u0161\u0161ia ako priemern\u00e1 hodnota objedn\u00e1vky pou\u017e\u00edvate\u013ea, ktor\u00fd vyu\u017e\u00edval aplik\u00e1ciu pre Android \u2014 1080 rub\u013eov oproti 1300 rub\u013eom.<\/p>\n<p>Spolo\u010dnos\u0165 sa rozhodla zv\u00fd\u0161i\u0165 efektivitu Android aplik\u00e1cie, za \u010do vykonala podrobn\u00fa anal\u00fdzu. Bolo vytvoren\u00fdch nieko\u013eko desiatok hypot\u00e9z na zv\u00fd\u0161enie v\u00fdkonnosti aplik\u00e1cie. Po pou\u017eit\u00ed Retentioneering sa uk\u00e1zalo, \u017ee probl\u00e9m spo\u010d\u00edval v spr\u00e1vach, ktor\u00e9 sa zobrazovali nov\u00fdm pou\u017e\u00edvate\u013eom. T\u00ed dost\u00e1vali inform\u00e1cie o zna\u010dke, v\u00fdhod\u00e1ch spolo\u010dnosti a cen\u00e1ch. Ale, ako sa uk\u00e1zalo, spr\u00e1vy mali pom\u00f4c\u0165 pou\u017e\u00edvate\u013eovi nau\u010di\u0165 sa pracova\u0165 v aplik\u00e1cii. <\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: ako sme nap\u00edsali open-source n\u00e1stroje pre produktov\u00fa anal\u00fdzu na Pythone a Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/9e6718eb967ae65d047605e4b8a92b3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo sa aj uskuto\u010dnilo, v\u010faka \u010domu sa aplik\u00e1cia za\u010dala menej odstra\u0148ova\u0165, a rast konverzie objedn\u00e1vok dosiahol 23%. Najprv odovzdali na test 20 percent prich\u00e1dzaj\u00faceho trafiku, ale po nieko\u013ek\u00fdch d\u0148och, po anal\u00fdze prv\u00fdch v\u00fdsledkov a pos\u00faden\u00ed trendu \u2014 zrkadlovo zmenili proporcie a naopak, ponechali 20 percent pre kontroln\u00fa skupinu a osemdesiat percent umiestnili do testu. O t\u00fd\u017ede\u0148 nesk\u00f4r bolo prijat\u00e9 rozhodnutie postupne prida\u0165 testovanie \u010fal\u0161\u00edch dvoch hypot\u00e9z. Celkovo po siedmich t\u00fd\u017ed\u0148och sa obrat z Android aplik\u00e1cie zv\u00fd\u0161il o polovicu v porovnan\u00ed s predch\u00e1dzaj\u00facou \u00farov\u0148ou.<\/p>\n<h3>Ako pracova\u0165 s Retentioneering?<\/h3>\n<p>\nPrv\u00e9 kroky s\u00fa pomerne jednoduch\u00e9 \u2014 nain\u0161talujeme kni\u017enicu pr\u00edkazom pip install retentioneering. V samotnom repozit\u00e1ri s\u00fa pripraven\u00e9 pr\u00edklady a pr\u00edpady spracovania d\u00e1t pre niektor\u00e9 \u00falohy produktovej anal\u00fdzy. Sada sa neust\u00e1le dop\u013a\u0148a, aj ke\u010f zatia\u013e je dostato\u010dn\u00e1 na prv\u00e9 obozn\u00e1menie. Ka\u017ed\u00fd m\u00f4\u017ee vzia\u0165 hotov\u00e9 moduly a okam\u017eite ich aplikova\u0165 na svoje \u00falohy \u2014 to umo\u017e\u0148uje r\u00fdchlo a efekt\u00edvne nastavi\u0165 proces podrobnej\u0161ej anal\u00fdzy a optimaliz\u00e1cie pou\u017e\u00edvate\u013esk\u00fdch ciest. To v\u0161etko pon\u00faka mo\u017enos\u0165 n\u00e1js\u0165 vzory pou\u017e\u00edvania aplik\u00e1cie prostredn\u00edctvom zrozumite\u013en\u00e9ho k\u00f3du a pren\u00e1\u0161a\u0165 tieto sk\u00fasenosti kolegom.<\/p>\n<p>Retentioneering \u2014 n\u00e1stroj, ktor\u00fd by sa mal pou\u017e\u00edva\u0165 po\u010das cel\u00e9ho \u017eivotn\u00e9ho cyklu aplik\u00e1cie, a to z nasleduj\u00facich d\u00f4vodov:<\/p>\n<ul>\n<li>Retentioneering je \u00fa\u010dinn\u00fd pri sledovan\u00ed a kontinu\u00e1lnej optimaliz\u00e1cii pou\u017e\u00edvate\u013esk\u00fdch ciest a zlep\u0161ovan\u00ed obchodn\u00fdch ukazovate\u013eov. Napr\u00edklad, v ecommerce aplik\u00e1ci\u00e1ch sa \u010dasto prid\u00e1vaj\u00fa nov\u00e9 funkcie, ktor\u00fdch vplyv na produkt nie je v\u017edy mo\u017en\u00e9 presne predpoveda\u0165. V niektor\u00fdch pr\u00edpadoch vznikaj\u00fa probl\u00e9my s kompatibilitou nov\u00fdch a star\u00fdch funkci\u00ed \u2014 napr\u00edklad, nov\u00e9 \"kanibalizuj\u00fa\" u\u017e existuj\u00face. A v tejto situ\u00e1cii je potrebn\u00e1 neust\u00e1la anal\u00fdza ciest. <\/li>\n<li>Podobn\u00e1 situ\u00e1cia je aj pri pr\u00e1ci s reklamn\u00fdmi kan\u00e1lmi: neust\u00e1le sa testuj\u00fa nov\u00e9 zdroje dopravy a reklamn\u00e9 kreat\u00edvy, je potrebn\u00e9 sledova\u0165 sez\u00f3nnos\u0165, trendy a vplyv in\u00fdch udalost\u00ed, \u010do vedie k vzniku nov\u00fdch tried probl\u00e9mov. Aj tu je potrebn\u00e9 neust\u00e1le sledovanie a interpret\u00e1cia pou\u017e\u00edvate\u013esk\u00fdch mechan\u00edk. <\/li>\n<li>Existuje cel\u00e1 rada faktorov, ktor\u00e9 neust\u00e1le ovplyv\u0148uj\u00fa fungovanie aplik\u00e1cie. Napr\u00edklad, nov\u00e9 vydania od v\u00fdvoj\u00e1rov: t\u00fdm, \u017ee uzatv\u00e1raj\u00fa aktu\u00e1lny probl\u00e9m, ne\u00famyselne vracaj\u00fa star\u00fd alebo vytv\u00e1raj\u00fa \u00faplne nov\u00fd. Postupom \u010dasu sa po\u010det nov\u00fdch vydan\u00ed zvy\u0161uje a proces sledovania ch\u00fdb je potrebn\u00e9 automatizova\u0165 \u2014 vr\u00e1tane anal\u00fdzy ciest pou\u017e\u00edvate\u013eov.<\/li>\n<\/ul>\n<p>\nCelkovo je Retentioneering \u00fa\u010dinn\u00fd n\u00e1stroj. Ale dokonalosti nie je koniec \u2014 m\u00f4\u017ee sa a m\u00e1 sa zlep\u0161ova\u0165, rozv\u00edja\u0165, budova\u0165 na jeho z\u00e1klade nov\u00e9 skvel\u00e9 produkty. \u010c\u00edm akt\u00edvnej\u0161ie bude komunitn\u00e9 prostredie projektu, t\u00fdm viac bude forkov a objavia sa nov\u00e9 zauj\u00edmav\u00e9 varianty jeho pou\u017eitia.<\/p>\n<p>Dodato\u010dn\u00e9 inform\u00e1cie o n\u00e1strojoch Retentioneering:<\/p>\n<ul>\n<li>Na\u0161a str\u00e1nka: <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\">Harmonogram meet-upov<\/a><\/noindex> a registr\u00e1cia na \u00fa\u010das\u0165<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/t-do.ru\/retentioneering_meetups\">Chat produktov a analytikov na Telegrame<\/a><\/noindex><\/li>\n<li>Bezplatn\u00fd <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">repozit\u00e1r Retentioneering na GitHub<\/a><\/noindex> <\/li>\n<\/ul>\n<p>Zdroj: <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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - 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.\" \/>\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\/sk\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/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\udd47Retentioneering: ako sme vytvorili open-source n\u00e1stroje na produktov\u00fa analytiku v Pythone a Pandas | ProHoster","description":"Ahoj, Habr. Tento \u010dl\u00e1nok je venovan\u00fd v\u00fdsledkom \u0161tvoro\u010dn\u00e9ho v\u00fdvoja sady met\u00f3d a n\u00e1strojov na spracovanie trajekt\u00f3ri\u00ed pohybu pou\u017e\u00edvate\u013eov v aplik\u00e1cii alebo na str\u00e1nke.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/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":"sk_SK","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.","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/38424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=38424"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/38424\/revisions"}],"predecessor-version":[{"id":182486,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/38424\/revisions\/182486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/28843"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=38424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=38424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=38424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}