O vývoji portálu Markeťáci.online

říj 11 2020

V posledních měsících jsem věnoval maximální úsilí spuštění portálu Markeťáci. V dnešním zápisku se budu věnovat tomu - jak a proč portál Markeťáci vznikl.

Prvotní myšlenka 

Prvotní nápad na Markeťáky jsem dostal v létě 2017. Spolupracovali jsme tehdy půl roku s marketingem Deloitte a řešili jsme linkbuilding pro témata PSD2 a GDPR v době ještě před hlavní vlnou zájmu o tato témata. V onlinu tehdy panovala příležitost vybudovat pro tato témata obsah a zachytit očekávanou vysokou hledanost, která v budoucnu dle očekávání Deloitte přišla. Jedni z mála, kdo tenkrát úspěšně razili informační osvětu kolem daných témat byla paní Škorničková a PWC. Deloitte nechtěl být pozadu. Dostali jsme tehdy skromnější budget a mandát oslovit média a publikovat s nimi články. Od konzultantů jsme byli vybaveni podrobnými informacemi o tématech a s interními webaři jsme konzultovali podobu a interní prolinkování dopadových stránek Deloitte.
 
Jako cíl jsme si nezvolili zadávání PR článků do velkých mediálních domů, ale poměrně hustou síť profesních magazínů zaměřených na startupy, fintechy, inovace a internetový byznys, kterým jsme chtěli dodat téma, o němž tehdy ještě příliš nepsali (a někteří ani nevěděli). Mezi vybraným portfoliem magazínů se vyjímal magazín Ty Internety se silným brandem a vysokým dopadem na sociálních sítích. Potvrdili jsme si záměr zde publikovat s Deloitte a vybaven mandátem jednat a odhodláním konzultantů poskytnout vyčerpávající informace o tématu jsem Těm Internetům napsal jako jednomu z prvních magazínů. Posuďte sami, jak moc jsem byl tenkrát naivní...
 
Dobrý den Ivo,
 
sestavuji pro klienta - společnost Deloitte - portfolio oborových magazínů pro propagaci v rámci témat PSD2 a GDPR. 
 
Klient má pro obě témata zájem o napsání a publikaci článků s 2 - 3 odkazy směřujícími na jeho prezentaci / mikrostránku. Zajímají ho též možnosti sdílení těchto článků na sociálních sítích. Rozhodujícím kritériem je pro klienta cena. Pro tyinternety.cz vzniká příležitost vyzpovídat přední konzultanty PSD2 a GDPR v době, kdy tato témata vzbuzují velký ohlas.
 
Pokud máte o spolupráci na těchto článcích zájem, navrhujeme následující postup:
  • poprosíme Vás o určení ceny obou článků, cena bude posouzena vedoucím marketingu Deloitte,
  • v případě schválení publikace Vám předáme kontakt na příslušné odborníky, kteří konzultují zmíněné problematiky,
  • k finálnímu článku dodáme informace z jakých klíčových slov odkazovat jaké podstránky Deloitte.
Srdečně zdraví
 
Michal Rost
Nezasloužil jsem si ani odpověď. Naštěstí se tehdy našla média, která mi odpověděla. Celá akce se nakonec povedla a v době největšího nástupu témat se Deloitte hřál na výsluní prvních pozic a rostoucího zájmu. Mimochodem Deloitte na Těch Internetech téma GDPR stejně publikoval. Článek jsme tam totiž chtěli a celá věc pak šla oficiálně přes PR oddělení. Ty Internety možná dodnes neví, že tak přišli o možnost autoritativního článku a pohledu pod pokličku od konzultantů, kteří v té době tato témata vykopávali s klienty jako Česká spořitelna a dalšími.
 
Koncept Těch Internetů se mi velmi zamlouval, chyběl mi marketingový magazín s focusem na online, kde by naše firmy mohly za rozumný peníz kupovat články a sem tam mu dodat echo o zajímavých startupech a projektech z mého okolí. Tam kde mi dveře otevřou, rád spolupracuji. Tam kde mi dveře zůstanou zavřené, přemýšlím, jak postavit vlastní dům. Vycházím totiž z předpokladu, že podobné potřeby jako já má více lidí, zavřené dveře jsou tedy příležitost jinde je nechat otevřené. 

Rozpracování myšlenky Markeťáků

V následujícím roce jsem myšlenku Markeťáků více rozpracoval. Chtěl jsem přijít s něčím navíc, co poslouží nejen nám, ale i dalším marketingovým agenturám. Jednou z nočních můr pro mne a mé kolegy bylo sepisování referencí na web, pořád na to nebyl čas. A proto jsem se rozhodl, že do Markeťáků začleníme možnost budovat si přehledný, interaktivní strom referencí. Důležitým zamýšleným prvkem byly rovněž provazby. Není tolik práce pořídit screenshot z reference, přidat k němu popisek a plácnout vše do výpisu referencí na webu či vytvořit příspěvek na zdi sociálního profilu. Pracnější je už ale napojit všechny provazby například na evidenci klientů či dodané služby. Takovými prostředími většina webů současných marketingových agentur nedisponuje a běžně používané sociální sítě toto neumí.
 
Ukázka finálního stromu referencí na Markeťácích
Obr. 1: Ukázka finálního stromu referencí na Markeťácích
 
Základním pilířem měl však být fungující magazín. A protože jsem dosud provozoval maximálně blogy a neměl jsem žádné zkušenosti se řízením redakce, představil jsem koncept Markeťáků Lukášovi Benzlovi, toho času odpovědnému za obsah Mladé fronty a provozovateli vlastní mini sítě magazínů. Lukáš se pro myšlenku Markeťáků nadchl a přišel s řadou nápadů životně důležitých pro existenci projektu. 
 
S kolegy jsem řešil, v čem Markeťáky vytvořit. Nabízel se WordPress jako nejrozšířenější redakční systém, ve kterém by bylo vše hotovo za pár týdnů. Vzhledem k tomu, že jsme chtěli mít větší kontrolu nad rozšiřitelností a výkonem portálu. Místo lepení magazínu z pluginů, řešení jejich vzájemné kompatibility a optimalizace jejich výkonu jsme se rozhodli pro vývoj na zelené louce v osvědčeném Nette.

Vývoj Markeťáků

S vývojem jsme začali v létě 2018. Protože já a kolegové jsme kvůli práci na zakázkách neměli dostatečnou kapacitu na vývoj vlastních projektů, rozhodli jsme se posílit vývojový tým ve WebMedea a vývoj Markeťáků pojmout jako školící projekt. Vzhledem k vrcholícímu období konjunktury jsme hledali talenty mezi studenty středních škol. Přes portál DayWork jsme vybrali šikovného studenta, který s sebou přivedl ještě dva spolužáky. Představa byla taková, že si kluky během studia na střední škole vyškolíme a postupně jim vytvoříme takové podmínky, aby se po škole stali součástí našeho týmu a mohli jsme jim svěřit náročnější výzvy, které řešíme. Kluci měli tvorbu markeťáků jako brigádu při škole, průběžně se zdokonalovali v programování a spolupracovali na projektu. Vývoj jim s přestávkami trval do konce léta 2019, kdy prezentovali hrubý funkční prototyp Markeťáků a zároveň ambici osamostatnit se a pracovat pro nás dále jako externí dodavatelé pod hlavičkou své firmy. Zde se však neprotla naše očekávání. V pozici klienta jsme měli jiná očekávání ohledně vedení komunikace ze strany dodavatele, než v situaci, kdy investujeme náš čas do rozvoje a motivace interních kolegů. Adam se rozhodl zůstat u nás a se zbylými kluky se naše cesty prozatím rozešli.
 
Když byl počátkem března 2020 vyhlášen nouzový stav a odpadla možnost scházet se s klienty osobně, přestěhovali jsme se se ženou na chalupu. Tam jsem se zavřel a podstatnou část času věnoval dokončení Markeťáků, většinu webu jsem přitom od začátku přepsal. Pozvolna se přidal Pepa, který dotáhl design portálu. V půlce června jsme měli víceméně portál hotový. Marek se s pomocí Martina pustil do optimalizace pro vyhledávače. Richard nastavil měřící kódy a vytvořil soustavu měkkých konverzních cílů, aby se nám dobře sledovalo co se na portálu děje. Celkově jsme dosud na Markeťácích odpracovali 1 958 hodin.
 
Rozložení celkového počtu 1 958 hodin dosud odpracovaných na Markeťácích
Obr. 2: Rozložení celkového počtu 1 958 hodin dosud odpracovaných na Markeťácích

Přidaná hodnota pro agentury

Během posledních dní vývoje jsem s kolegy hodně řešil přidanou hodnotu pro agentury. Bylo nám jasné, že nejobtížnější částí každého sociálního či komunitního projektu je přimět svou cílovou skupinu k interakci. To, že agenturám zdarma nabídneme možnost doplnit své reference je v dnešní době malá přidaná hodnota. Proč by to agentury měly dělat, když doposud si je z velké části nedávaly ani na svůj vlastní web?
 
Registrovaná agentura proto na svém profilu vidí možnosti, co může doplnit a vidí i co zato dostane. Pokud má řádně vyplněný profil, dostane z něj dofollow odkaz. Pokud pravidelně přidává reference, objevuje se na titulní stránce Markeťáků. Pokud poctivě vyplňuje reference objevuje se na stránkách s detaily služeb (SEO, PPC atd.) a na mapce firem nabízejících dané služby. Všechny tyto vlastnosti budeme v průběhu času na markeťácích komunikovat ještě důrazněji.
 
Výše uvedené přidané hodnoty jsou stimulované růstem impaktu Markeťáků jako média, magazín je tedy pro ně multiplikátorem. Jako prvotní cíl jsme si proto stanovili vybudovat navštěvovaný magazín.

Obsah na Markeťácích

V červnu 2020 jsme si sedli s Lukášem, který v mezičase vytvořil prvních 10 článků. Dohodli jsme se, že vyrobíme železnou zásobu článků. Proto, abychom při spuštění magazínu měli připravenou "munici" na měsíce dopředu a mohli se soustředit na vybudování redakce a marketing. Celé léto jsem pak při každé příležitosti psal zadání pro články, zanedbával jsem kvůli tomu i tento blog. Oba Lukášové z Textfieldu zadání rozepisovali a sypali do redakčního systému. Zároveň články začali psát kolegové. Ozvala se nám šikovná odbornice na sociální sítě Míša Pejřimovská, pár článků nám poslal Jirka Kynčl. Zásoba obsahu, ze které články budeme uvolňovat ještě dva měsíce, tak vznikla.
 
Zvlášť jsme museli řešit data o firmách. Bylo by bláhové si myslet, že někoho zaujme prázdný portál. Pokud chceme demonstrovat, co Markeťáci umí, musíme přidat ukázkový obsah. Přidali jsme tedy své agentury a vyrobili jim ukázkové profily, které si budeme udržovat pro potřeby svých referencí. Protože by bylo nefér v komunitním projektu zvýhodňovat agentury, se kterými jsme propojeni, rozhodli jsme se, že první agentura, mimo ty naše, která si vyšperkuje profil parádním způsobem a začne pravidelně evidovat reference, bude použita jako referenční ukázka v materiálech Markeťáků. Uděláme s ní rozhovor a zapromujeme ji na Facebooku atd. Zatím se taková agentura nenašla, takže pokud tyto řádky náhodou čte nějaký Markeťák, má teď náskok. Poloprázdný portál by ale byl pořád málo, proto Adam napsal nad daty z WebMedea skript, který naplnil Markeťáky marketingovými agenturami, které v té době WebMedea znala, a docrawloval k nim reference. Automatizaci Markeťáků budeme nadále rozvíjet takže se v budoucnu ještě hustěji zaplní referencemi tak či tak, ať už organicky nebo strojově. 

Spuštění Markeťáků a prvních 25 dní běhu

Spuštění magazínu jsme v červnu načasovali na úterý 15. 9. 2020 z následujících důvodů. Bude po dovolených a zároveň po největším humbuku spojeným se začátkem školy. Do Vánočního šílenství bude ještě dlouho. Na řádění COVID gaunerů bude taky ještě teplo. Následující článek pak rozvádí proč úterý. Termín jsme dodrželi a Markeťáky spustili.
 
Spuštění proběhlo s vybranými počátečními články. Lukášové rozjeli publikační plány živené předem vytvořenou zásobou článků a pustili se do pohovorování redakce. Výsledkem je základ stále redakce Markeťáků Natálie s Martinou, které se ihned zapojily do tvorby aktuálního obsahu. Lukáš Benzl dotáhl všechny procesy, takže je teď pro mne už radost chodit se dívat do redakčního TRELLO. Zúročují se zde Lukášovy letité zkušenosti s řízením tvorby obsahu a redakcí.
 
Obr. 3: TRELLO, srdce redakce Markeťáků
 
Marek s Terkou z TRITON IT nastavili PPC kampaň s cílem upozornit na Markeťáky znalce brandů etablovaných marketingových magazínů. Glaceo začalo Markeťákům spravovat sociální sítě.
 
Ukázka PPC reklamy na Markeťáky s cílem upozornit čtenáře podobných magazínů
Obr. 4: Ukázka PPC reklamy na Markeťáky s cílem upozornit čtenáře podobných magazínů
 
Pozitivně mne překvapily první marketingové agentury, které se zaregistrovaly, aniž bychom spustili kampaně, které máme nachystány na další měsíce. Udělaly nám tím radost. Patrně jejich ochotu přijít k neznámému projektu a zaregistrovat se v budoucnu nějakým způsobem odměníme, například v podobě rozhovoru či PR článku zdarma. Zároveň jsme si tak mohli vyzkoušet reálné fungování konverzních cílů. 
 
Celkem web Marketaci.online za prvních 25 dní běhu dosáhl 887 návštěvníků, jejichž míra okamžitého opuštění je necelých 28 %. Facebookový profil získal 347 sledujících fanoušků.
 
Výsledky v Google Analytics po prvních 25 dnech běhu
Obr. 5: Výsledky v Google Analytics po prvních 25 dnech běhu Markeťáci.online

Další kroky

Teď si Markeťáky za postupného uvolňování zásoby článků přebírá nová redakce. Aktuální reportáže a rozhovory začnou vznikat ve větší míře, na řadu z nich se už sám těším. Jakmile si to více sedne a proces pofrčí na plné obrátky, zpracujeme v mezičase nasbíranou zpětnou vazbu a na jejím základě uděláme další vylepšení.
 
Další v pořadí je začít postupně maximalizovat průtok naším trychtýřem měkkých konverzních cílů. Máme k tomu připraveno řadu nápadů, témat a akcí.
 
Připravujeme zajímavá partnerství, která jsme už začali rozjednávat, nebo se na to teprve chystáme. Rovněž máme v záloze plný šuplík nápadů na další unikátní funkce do portálu, které chceme postupně uvolňovat.
 

Využití WebMedea ranku

čen 14 2020

V rámci sestavování linkbuildingových strategií používáme WebMedea rank k identifikaci příležitostí pro umístění zpětného odkazu. V kombinaci s další informací, například cenou za článek, nám dává náš rank krásnou představu o optimálním poměru ceny a očekávaného užitku pro SEO.

I pokud dodatečnou informaci (v tomto případě cenu) pro vybraný magazín neznáme, dokážeme při dostatečném množství dat snadno určit její ideální rozpětí.
 
Srovnání WebMedea ranku a ceny za publikaci u vybraných lifestyle magazínů
Obr. 1: Ukázka vztahu WM ranku a ceny publikace pro vybrané lifestylové magazíny
 
V rámci vývoje WebMedea je pro nás WM rank klíčovým ukazatelem, jehož ladění věnujeme nemalou pozornost. Výpočet je založen na grafových algoritmech. Z orientovaného grafu domén a odkazů, reprezentujícího český internet, vybíráme podgrafy a na nich využíváme metody náhodných procházek k výpočtu aktuální hodnoty ranku. Pro interpretaci této hodnoty jsme zvolili škálu 0 až 100 procent. Přičemž distribuce webů na škále je nerovnoměrná a s rostoucím rankem klesá počet stejně hodnocených webů. Hodnoty 100% pak dosahuje jen několik jednotek českých domén. 
 
Během posledních dvou let rank neustále zpětně verifikujeme. Jeho vypovídací schopnost nám dělá velikou radost.
 

Slave roboti WebMedea

led 31 2019
V předchozím příspěvku jsem psal, že se naše slave aplikace na internetu chovají slušně. Co si pod tím představit? Ve WebMedea se na internet díváme jako na les. Les si žije svým životem, roste a mění se nezávisle na WebMedea. Ta jej pouze z každého jeho místa pozoruje. Jak? Naše infrastruktura představuje mraveniště rozesetá po lese. Slave aplikace pak představují mravenečky sbírající po lese kousíčky informací, které odnáši do mraveniště.
 

mravenci, PixaBay

Obr. 1: Roboti WebMedea jsou hodní mravenečci :), zdroj PixaBay

Za prvé, slave aplikace respektují robots.txt na webech. Pokud si autoři webu nepřejí, aby určité části webu procházeli roboti, naše slavy to respektují. Zkrátka mraveneček není dotěrný a nevleze do nory zvířátku, které si to nepřeje. 
 
Za druhé, slave aplikace poslouchají svého mastera, který je neposílá dvakrát na to samé místo dříve, než za určitou dobu. Z daného webu si tak slave odnese jen potřebné minimum informací, které předá masterovi (a ten registrům), a na web se vrátí až když je informaci nutné aktualizovat. Mravenečci jsou tedy organizovaní a neshlukují se opakovaně na jednom místě v lese a nepustoší ho.
 
Za třetí, slavy jsou šetrné ke službám Seznamu a Google, data si berou jednou za čas a v malých množstvích. Master aplikace vyhodnocují priority - o která data si kdy říci. Analogie: Mravenečci sbírají jehličí kolem stromů a nosí je do mraveniště.
 
Toto není samo sebou, zatímco WebMedea slave je mraveneček, existují aplikace, které se v lese chovají jako dřevorubci. Zadavatel řekne dřevorubci, co má natěžit, dřevorubec vezme sekeru a jde rubat. Rube hlava nehlava. Čím více lidí chce natěžit data, tím více dřevorubců nenávratně devastuje les. Ekonom i ajťák si snadno udělají obrázek o škálovatelnosti takové služby i její závislosti na okamžité dostupnosti plundrovaného lesa. :) 

Poolování linků ve WebMedea

led 27 2019
WebMedea je založena na microservices architektuře, rozprostřené přes vlastní síť dedikovaných a virtuálních serverů. Jak si ji nejlépe představit? Viděli jste film Na hraně zítřka s Tomem Cruisem na motivy knihy All You Need Is Kill? Tak mimozemská entita, proti které hlavní hrdina bojoval, odpovídá architektuře WebMedei. Omegy jsou dedikované servery s aplikacemi nazvanými registry, ty všechno ví - jsou napojeny přímo na Cassandru a opečovávány ve špičkových datových centrech. Alphy odpovídají uzlům s aplikací nazvanou master, která dokáže nezávisle pracovat na složitějších výpočtech a řídit armádu slavů. Chobotnaté vetřelčí Bety z filmu představují aplikace typu slave, nasazené na velkém množství virtuálních serverů po celé republice. Každý slave vidí jen svého mastera, dotazuje se ho pro úkoly a odvádí rutinní práci. Slave je úplně odstíněn od registrů, může být okamžitě nahrazen a znásoben. Nutno podotknout, že slave se na internetu chová slušně.
 
Jedním z nejvíce zatížených míst v systému jsou registry, které musí neustále poskytovat data pro byznysové analýzy master uzlů. Přičemž největší tok dat způsobuje více než miliarda hypertextových odkazů napříč všemi weby v ČR, které jsou neustále sbírány, ukládány a analyzovány. Původní implementace registrů byla založena na javovském Cassandra driveru od Datastax a knihovně Spring Boot a umožňovala následující workflow:
  1. Master se dotázal REST rozhraní registrové aplikace
  2. Registry aplikace sestavila požadovaný dotaz a poslala jej Cassandře
  3. Pomocí CassandraConverterRowCallback se z výsledkové sady vytvořily požadované objekty
  4. Objekty se zpracovaly (druhotné vyfiltrování, seřazení, či jiné předzpracování)
  5. REST rozhraní registrů vrátilo Masterovi serializované pole požadových objektů
  6. Master deserializoval objekty a provedl s nimi potřebné operace
Uvedené řešení fungovalo spolehlivě zhruba do začátku léta 2018. Mezitím přerostl počet evidovaných hyperlinků miliardu. Narostla také hustota linků v okolí jednotlivých webů. Při zpracování začalo docházet k enormnímu paměťovému zatížení a to zejména u registry aplikací.
 
Situaci jsme se rozhodli vyřešit poolováním objektů v registry a master aplikacích. Protože jsme neměli kontrolu nad instancováním tříd v CassandraConverterRowCallback a při deserializaci Sprint Boot, byli jsme nuceni tuto funkci přenechat poolu. Implementace poolu byla jednoduchá, bylo jen potřeba pamatovat na to, že si do něj souběžně chce šahat více vláken...
 
@Component
public class LinkPool {

  Deque<Link> links = new ConcurrentLinkedDeque<>();

  public void recycle(Collection<Link> links) {
    synchronized (this.links) {
      this.links.addAll(links);
    }
  }

  public void recycle(Link link) {
    synchronized (links) {
      this.links.add(link);
    }
  }

  public Link getLink(Row row) {
    Link link = null;
    synchronized(links) {
      while (link == null) {
        if (links.isEmpty()) {
          return new Link(row);
        }
        link = links.poll();
      }
    }
    return link.fromResultSetRow(row);
  }
}
Další optimalizací bylo snížení trafficu mezi registry a masterem. Byznys vrstvy pracují s linky na úrovni logických celků. Naše výpočetní algoritmy jsou založeny na principu procházení grafu do šířky. Tím pádem se systematicky přesouvají od jedné domény na druhou a zpracovávají jejich okolí. No a projít okolí domácích gigantů jakými jsou iDnes, nebo Firmy.cz vyžaduje přechroustat velké množství linků, ve kterých se zdrojové a cílové domény často opakují. Indexací duplicit při serializaci v registrech a opětovným zrekonstruováním linků při deserializaci v master aplikacích se nám v ideálním případě podařilo zmenšit traffic až o 50%.
 
Souběžně s optimalizací aplikace Marek vyčlenil master server Ares pouze k účelu analýz nad linky. Řešení se ukázalo být stabilní a neustále rostoucí databázi zvládáme bez velké zátěže vyhodnocovat.