Hlavní navigace

Petr Janošík, Ondřej Machek (Smartlook): Hledáme v datech, co je skutečně důležité

Autor: Jan Sedlák
Jan Sedlák

Brněnský Smartlook umí nahrávat chování lidí na webech a v mobilních aplikacích. Jeho analýzy hodně zaujaly například herní firmy.

Doba čtení: 15 minut

Sdílet

Smartlook je mladá brněnská společnost, která umí pořizovat nahrávky toho, co na webových stránkách a v mobilních aplikacích dělají uživatelé. Důležitou součástí je analytická část, pomocí níž je možné odhalovat problémy typu proč zákazníci nevyužívají nové funkce, proč nedokončí nákup a podobně. Smartlook v poslední době objíždí světové herní akce, protože se jeho mobilní SDK zalíbilo mobilním videoherním společnostem, které jsou i vzhledem k mikrotransakcím na podrobné datové analytice závislé.

Smartlook původně vznikl jako funkce pro livechatovou službu Smartsupp, která na rozvoj nové služby vydělává. První kapitál do firmy vložil i brněnský podnik Webnode a Ondřej Fryc z Reflex Capital. Mezi zákazníky patří Seznam.cz, O2, DámeJídlo.cz, Madfinger Games, Miele, Dr. Max, Conrad, Hyundai nebo Železničná spoločnosť Slovensko.

Zakladatel a výkonný ředitel Petr Janošík a technologický ředitel Smartlooku Ondřej Machek v rozhovoru pro Lupu popisují, co jejich služba umí, kde se vzala nebo jaké je její technologické pozadí.

Kde se vzal Smartlook?

Petr Janošík (PJ): Původně jsme vytvořili náš první startup nazvaný Smartsupp, což je live chat pro komunikaci se zákazníky na webu. Pak se k nám přidal další kolega Vladimír Šandera, který už působil v Jihomoravském inovačním centru, a začal nám pomáhat s tím, jak dělat překlady, jak jít více do světa, napojoval nás na zahraniční zákazníky. A pak se to začalo rozjíždět a začali jsme nabírat lidi. V oblasti live chatů se každopádně objevilo značné množství konkurentů, přičemž někteří z nich v Silicon Valley nabrali investice i v řádech desítek milionů dolarů. Přemýšleli jsme tedy, co dělat dále, abychom mohli měnit trh a dostali se na první příčky.

Napadlo nás, že přidáme nahrávání zákazníků na webu. Když přes live chat komunikujete se zákazníkem, aby bylo možné vidět, co na webu dělá. Když se tedy někdo zeptá na podpoře a píše o nějaké chybě, není nutné se složitě vyptávat a je možné chybu hned vidět. Čekali jsme, že se díky tomu mezi live chaty najednou dostaneme na první příčky. Byli jsme asi sedmí, což byl docela úspěch, jenže u SaaS aplikací to funguje tak, že první dva obsadí 80 až 90 procent trhu a zbytek sbírá drobky. Takže jedna nová funkce sice trochu pomohla, ale úplně nahoru nás nedostala.

Začali jsme tedy přemýšlet, co dále. Napadlo nás, že vezmeme ono nahrávání a začneme ho prodávat jako samostatný produkt. Všiml jsem si, že zákazníci používají nahrávání samotné a chat ani tolik ne. Zamysleli jsme se také nad vším, co jsme u Smartsuppu udělali špatně. Třeba nad tím, že není dobré hned od začátku chtít po lidech peníze a je lepší nejdříve nasbírat hodně uživatelů.

Takže Smartsupp byl taková přípravka před tím, o co se dnes snažíte se Smartlookem?

PJ: Ano. Udělali jsme hodně chyb a u Smartlooku jsme si řekli, že to by mohla být ta raketa, která z nás udělá jedničku či dvojku na trhu. V podstatě jsme k myšlence na něj přišli náhodou s tím, jak jsme se postupně vyvíjeli. Smartlook jsme tedy vydali jako samostatný produkt. Byl zadarmo, přičemž na trhu byli tři globální hráči. Všichni se prezentovali jako analytický nástroj pro marketéry. Mě přišlo, že to komunikují příliš složitě a že to musí jít udělat jednoduše. Žádné grafy, žádné analýzy – musí se stisknout tlačítko „Play“ a díky tomu vidět, co uživatelé na vašem webu dělají. Kolegy z týmu tato myšlenka zaujala a šli jsme do toho s tím, že uděláme něco tak rozšířeného, jako je Google Analytics, což je také něco, co může používat základní i pokročilý uživatel.

Smartlook
Autor: Smartlook

Smartlook

V jaké fázi jste tedy se Smartlookem nyní?

Ondřej Machek (OM): Pořizujeme nahrávky toho, co uživatelé dělají na webech a v mobilních aplikacích. Budeme nejspíše jeden z nejlepších produktů na trhu. Konkurenti dělají veskrze sampling. Pořizují pouze některé nahrávky u některých uživatelů a do analytické části jdou s tím, že vzorek je dostatečně reprezentativní. Ale zákazníci potřebují každou nahrávku a musí se spolehnout na to, že je tam každý uživatel. My tedy máme always-on-recording a můžeme to nasadit kdekoliv. Kiwi.com třeba nahraje miliony sessions měsíčně a nestojí je to ani tolik peněz. Vstupuje do toho naše technické řešení. Infrastrukturu jsme postavili tak, aby naše služba v podstatě byla pro masové využití a mohl si ji pořídit téměř každý.

PJ: Zásadní část přitom hraje samotná analytika pořízených nahrávek. Ty samy o sobě nestačí, je nutné z nich číst informace, které zákazníkům k něčemu budou.

Takže nahrávka jako taková je pouze komodita?

OM: Data, respektive samotnou nahrávku bereme jako komoditu, kterou pak zpracováváme. Začínali jsme se surovou komoditou, kdy jsme „uhlí“ házeli dále a zákazníci s tím něco museli dělat. Nyní se snažíme nad touto surovinou stavět analytiku a dělat z toho lepší produkt. Snažíme se v datech najít něco, co je skutečně důležité.

PJ: V samotných nahrávkách není dlouhodobá hodnota, za kterou by byli zákazníci ochotní platit. Zamýšleli jsme se nad tím, za co by byli ochotní kontinuálně dávat peníze. V nahrávkách jsou všechny kliky, je vidět, co uživatel udělal, jak se choval. Je možné vidět, jak používal danou funkci, jak často se k čemu vrací a tak dále. Proto jsme do Smartlooku přidali analýzu událostí, často známou jako event tracking. Díky tomu pak lze vidět, že například na novou funkci kliknulo dvacet tisíc lidí, ale pouze malý zlomek ji využil naplno. Pak lze podle dat a nahrávek sledovat, proč ostatní uživatelé akci nedokončili a co je k tomu vedlo.

Sami na nás jsme třeba sledovali, jakým způsobem uživatelé přecházejí od free účtu k placenému. Dříve jsme e-mailem posílali dotazníky, ale z tisíce rozeslaných dotazů se nám vrátily klidně desítky odpovědí. Nějaký obrázek tedy dostat lze, ale není to zdaleka kompletní. Díky nahrávkám lze získat výrazně přesnější informace.

OM: Příkladem využití může být analýza toho, proč lidé nedokončí na vašem webu nákupní proces. Díky nahrávkám a nad tím postavené analytice si lze v administračním rozhraní vyfiltrovat, kdo udělal první krok v nákupu, ale zároveň už se nedostal k dalšímu – z různých důvodů. Na nahrávkách lze vidět, co přesně nastalo za problém a proč jste přišli o peníze. V podstatě vytvoříme takový „playlist“ lidí, kdy během sekund dostanete seznam toho, co vás zajímá. Pak lze analyzovat problém a například jít rovnou za vývojáři a říci jim, že se někdy uživatelům platební proces zasekne a podobně. Případně za UX/UI oddělením a jasně ukázat, že uživatelé při placení tápají a není pro ně intuitivní, tak to radši vzdají. Podobných příkladů je řada. A tohle, co děláme na webu, se nyní snažíme replikovat také v mobilních aplikacích.

Co umí vaše mobilní nahrávání a jak funguje?

Ondřej Machek, Adam Černý: Aktuálně umíme nahrávat native aplikace, a to jak klasický vývoj, tak React native, a Unity a Flutter. Pro vytváření videa se využívá hardwarový enkodér na zařízení uživatele. Unity build má momentálně větší volnost v možnosti nastavení FPS, ale brzy bude možné vybrat i pro native nahrávání z několika nastavení, a to nízkou, střední a vysokou kvalitu. Na iOS bude takové nastavení celkem jednoduché, ale na Androidu ještě musíme pořádně otestovat, jaká nastavení H.264 a v budoucnu H.265 jsou ideální. Každý výrobce má totiž jinou implementaci, a ačkoliv Google vydal specifikaci ohledně kodeku, z naší zkušenosti se na to ne vždy dá spolehnout – proto se do toho nehrneme příliš rychle.

Mimo videa také SDK sbírá základní informace o telefonu a veškeré kliky, dotyky, multidotyky a další eventy. Mimo aktivit či controlleru vytahujeme i jejich názvy a názvy views, takže i neprogramátor může jednoduše vytvářet analytické filtry. Vývojáři také mohou posílat jakékoliv custom eventy kvůli analytice a pak to prohnat třeba přes různé upravené funnely. U integrace například ke Crashlytics automaticky přidáváme odkaz na náš přehrávač, takže je možné se dostat na nahrávku a vidět, co předcházelo pádu.

Jakmile doladíme posledních několik problémů, byť tento boj asi nikdy neskončí, máme v plánu pár nových funkcí. Jedním z nich je třeba Smartlook Live, prozatím pro mobilní SDK. Herní studia se tak mohou napojit na konkrétní živé uživatele, využití je však i v rámci oddělení podpory, kde bude možné pomoci lidem takřka v reálném čase.

Chceme prozkoumat i nahrávání Windows aplikací, protože schopnost reprodukovat nějakou chybu bez vizuálního vjemu je i tam velmi těžké a může to zabrat i desítky hodin. Tady můžeme hodně pomoci. Vzhledem k tomu, že náš back-end již nyní můžeme prohlásit za dostatečně univerzální a schopný přijímat data takřka odkudkoliv, nebráníme se ani myšlenkám na vytváření dalších SDK pro platformy, které by mohly být zajímavé v řádu několika let, typicky třeba chytré televize.

Rok 2018 byl u nás hlavně o vývoji analytické části Smartlooku a možnosti skákat přímo z eventu do videa na místa, kde se děje to, co člověka zajímá. Jelikož nahrávaných dat je i tak hodně, tento rok určitě představíme automatické vyhodnocování „divného“ chování. V rámci webového nahrávání jsme zrovna dokončili detekci anomálií pro rage kliky a error eventy a samozřejmě je v plánu toto rozšířit i do mobilního SDK.

Další větší věcí bude end-to-end šifrování nahrávek a veškerých dat, aby bylo možné oslovit a uspokojit požadavky i velkých firem, které se pohybují například ve financích. V minulém roce se investovalo spoustu času a úsilí do implementace GDPR a toto je další krok směrem k enterprise klientům. Pracujeme rovněž na on-premise architektuře, protože některé firmy chtějí vše hostovat na jejich serverech či enterprise cloudu.

Petr Janošík a Ondřej Machek, Smartlook
Autor: Jan Sedlák

Petr Janošík a Ondřej Machek, Smartlook

Největší zájem o mobilní nahrávky tedy aktuálně mají herní studia?

PJ: Je to trh, který se zdá být skutečně veliký. Uzavřeli jsme například kontrakt s Madfinger Games. Ti doposud neviděli problémy, proč jim hráči odchází pryč ze hry a podobně, kde díky nahrávkám umíme pomoci. Na Madfinger, kteří mají obrovské datové toky, jsme tady v Brně narazili náhodou a díky tomu jsme objevili nový trh. Původně jsme se, podobně jako u webového nahrávání, chtěli zaměřit spíše na e-commerce a SaaS firmy, ale u e-commerce je více konkurence a hodně různých analytických nástrojů. Herní studia jsou také ochotná platit více. Současné měsíční ARPU na herní firmu máme řádově desítky tisíc korun. Pomáhá nám v tom i to, že u nahrávání enginu Unity nemáme konkurenci.

Nahrávání videí z webů funguje přes DOM?

OM: Na začátku se udělá snapshot DOMu a v čase si ukládáš změny z iniciálního stavu. Takže je to poměrně optimalizované a poměrně malé, byť původní snapshot je celá stránka, takže se bavíme o desítkách kilobytů. První request může být náročný, ale samotný průběh nahrávání je relativně nenáročný. U mobilních nahrávek se generuje MP4 video přímo na klientovi. Můžeme tam velmi dobře ovlivnit rozlišení či velikost. Datově je to tedy náročnější, ale dáváme zákazníkům možnosti nastavení – třeba zda se v aplikaci bude dané nahrávání zapínat pouze v případě, že je zařízení na Wi-Fi a tak dále.

Než začneme v obou případech nahrávat, proběhne iniciační komunikace se serverem. SDK nebo webový skript se zeptá našeho serveru, zda tento projekt může vůbec nahrávat. V rámci toho přijde nastavení, a to včetně věcí, které jsou vyžadovány kolem GDPR a podobně. Na základě toho se začne, nebo nezačne nahrávat.

Jak nahrávky zatěžují webový prohlížeč a chytré telefony?

OM: Obecně prohlížeč zatěžovaný není. U mobilního SDK je to tak, že pokud je dostupná, využívá se pro nahrávání hardwarová akcelerace. V ten moment je to v podstatě nepoznatelné. Problém může nastat na starších zařízeních, kde hardwarová akcelerace není dostupná, ale je zde šance, že SDK tato zařízení nebude vůbec podporovat a videa z nich nahrávat vůbec nebude. Obecně třeba na iPhonu člověk vůbec nepozná, že se něco děje. Druhou věcí, na kterou se zaměřujeme, je velikost samotné SDK knihovny, jejíž kód si uživatelé stahují do telefonu. Dostali jsme se do velikosti kolem 200 kilobytů.

Funguje nahrávání v případě, že mám v prohlížeči zapnutý AdBlock?

OM: Záleží na nastavení daného adblocku. Jsou adblocky, které nás zakazují, a jsou i takové, které nás nezakazují. My se s tím určitě nechceme prát. Lidé mají právo na soukromí, a pokud směrem k tomu aktivně vystupují, nebudeme jim v tom bránit. Právo na soukromí naprosto respektujeme, a dokonce na webu nabízíme i funkci, kde lze určit, aby vás Smartlook nikde na webu nenahrával.

Smartlook

Smartlook

Smartlook umí na nahrávkách automaticky začerňovat některé údaje. Jak to funguje?

OM: My se dokážeme integrovat do aplikace tak, že zvládneme detekovat inputy. My sami v základním stavu potlačujeme inputy, které jsme schopní v aplikaci detekovat. Jakmile tedy detekujeme, že je někde uživatelský vstup, hned ho začerníme. Samozřejmě se může stát, že se objeví nějaká profilová obrazovka, kde údaje nebudou v inputu, ale budou pouze napsané. V ten moment v SDK poskytujeme metody, které umožňují vývojáři webu nebo aplikace tyto věci začernit, ale musí to udělat aktivně on. Pak už je to na daném vývojáři. V Evropě je třeba být v souladu s GDPR, takže kdybychom například u někoho přišli na to, že nezačernil, co začernit má, měli bychom mu takovou nahrávku smazat. Vývojář má povinnost to udělat a my mu pomáháme v tom, aby to udělat mohl. Aktuálně standardně nenahráváme žádné formuláře, čísla, e-maily a snažíme se zde být hodně aktivní. Poskytujeme k tomu i vlastní consent API.

Jak řešíte datové toky, abyste se doplatili za Amazon Web Services, na kterých běžíte? Posíláte data po částech, abyste se vyhnuli konstantní komunikaci?

OM: To je dobrá otázka, protože například náš konkurent Hotjar používá WebSockety – když tedy nahrává, drží otevřené WebSockety. To musí být naprostá šílenost. Možná právě proto dělají pouze samply nahrávek a nejsou schopní utáhnout always-on-recording u všech klientů.

My tedy běžíme na AWS, kde používáme jejich load balancer a data na něj posíláme v binární podobě a po částech. Za load balancerem máme proměnlivé množství instancí, které informace skladují do paměti. Potom se z toho udělá velký balík, který se pak jedním requestem nahraje na S3. Tím si výrazně šetříme náklady na komunikaci s S3. Na té je jeden z největších nákladů zápis dat. My nahrajeme stovky milionů sessions za měsíc a každá taková session má další záznamy. To bychom se nedoplatili.

Data držíte v Elasticsearch?

OM: Jedeme kompletně v Elasticsearch, ve kterém teď máme asi šest miliard dokumentů. Data postupně odmazáváme a máme sedm instancí s NVMe disky. V Elasticu držíme pět až sedm terabytů dat. Na produkci jsme schopní toto všechno prohledávat pod 200 milisekund.

Je pro vás public cloud dlouhodobě udržitelný?

OM: Zatím ano. Zabývali jsme se optimalizací velikosti dokumentů, řadu věcí jsme si ukládali pouze jako pojistku, kdybychom je potřebovali, a některé věci máme redundantně. Například máme user agent, což je jeden dlouhý string, který je ještě dále rozbitý na další části, a tak dále. U nás je to tak, že každý znak, který odebereme z dokumentu, nám může ušetřit gigabyte. Takže pracujeme s optimalizací a zatím jsme neuvažovali, že bychom šli na vlastní železo. Takto nám to vyhovuje, můžeme velice snadno škálovat.

Dívali jsme se na jiná řešení, jako je Elastic Cloud, protože Amazon má určité limity, co s tím clusterem lze dělat. Některé operace jsou zakázané. Jsou to omezení, která nás sem tam štvou, ale vždy se to nějak dá vyřešit.

Petr Janošík, Smartlook
Autor: Smartlook

Petr Janošík, Smartlook

Analytika nad nahrávkami se dělá přímo nad Elasticem?

OM: Je to dotaz přímo na Elasticsearch. Data lidí jsou routována přímo na jeden shard, který je umístěn na konkrétní instanci. Když se člověk pak někam dotazuje, měla by to obsluhovat právě jedna instance. Elastic má řadu věcí, které nás štvou a které jsou dané z jeho podstaty. Třeba updaty, které jsou pomalé. Ale vždy se dá design navrhnout tak, aby se dalo vyhnout nepříjemným pasážím.

Jak jste na tom finančně?

PJ: V roce 2018 jsme v tržbách meziročně vyrostli o 70 procent na 35 milionů korun. Jsme v černých číslech a v podstatě vše investujeme zpátky. Využíváme toho, že Smartsupp vydělává peníze, které můžeme investovat do rozvoje Smartlooku a soustředit se na růst počtu uživatelů. Postupně se začínáme soustředit na aktivní prodeje Smartlooku. U něj máme nastavené balíčky podle měsíčních sessions (začíná se na pěti tisících) a historických dat (od jednoho měsíce). K dispozici je také free trial, a to jak u webů, tak mobilních aplikací.

V roce 2016 jste dostali od Ondřeje Fryce a firmy Webnode investici deset milionů korun. Budete sbírat další externí peníze?

PJ: Díky Smartsuppu jsme na nule. Mohli bychom nějaké další investice získat, ale vyvíjeli jsme analytickou část Smartlooku, stejně jako mobilní nahrávky. Nyní očekáváme zvýšený zájem, což nám zlepší i čísla. Když budeme mít více sexy čísla, budou se pak případně lépe peníze shánět. Pokud ne, můžeme nadále rozvoj financovat do té doby, než výrazný nárůst přijde. Zatím se nám bootstrapping daří dobře.

U SaaS aplikací se často aplikuje strategie, že je třeba co nejrychleji obsadit trh, aby tak neučinil nikdo další, na což se od investorů vybírají velké peníze. Vám to tedy jde i bez toho?

PJ: Nám se to daří. V počtu uživatelů jsme většinu hráčů předehnali a jsme hned za firmou Hotjar.

OM: Zároveň se to složitě počítá. Hotjar začal u heatmap a pak šel do nahrávek, zatímco u nás to bylo naopak. Hotjar také nějakou základní analytiku má, ale my postupně míříme někam jinam. Dalo by se říci, že si tvoříme vlastní segment trhu. Podobnou věc, jakou děláme my, tvoří ještě startup FullStory. Pak se různě překrýváme, třeba s projektem Mixpanel.

Tipli listopad2

PJ: Analytických nástrojů je hodně, ale dělají kvantitativní datovou analytiku, kdy ukazují grafy či metriky. My se díky eventům můžeme pozicovat jako „No. 1 nástroj v kvalitativní analytice“. Díky tomu, že máme eventy, je možné vyhledat nahrávky přesněji.

Zároveň můžeme říci, že nás poměrně hodně oslovují investoři. Oni si velice jednoduše mohou zjistit, kdo je na trhu největší, a to podle toho, kdo má na web nasazené jaké skripty. Investoři vidí potenciál v tom, že náš trh jednou může být skutečně velký, případně je zde šance integrace do nějaké sady analytických nástrojů.