Adaptive Mind

Warning: this is pretty heavy JavaScript stuff.

If you’d ask what the most used web analytics solution is, you would probably get pretty obvious answer. But what is not so obvious to the most people who use Google Analytics is the fact that it is a piece of JavaScript and it can be customized a lot. Especially these days when we measure dynamic websites full of JavaScript features that stay hidden to the basic generated tracking script.

Frontend developers got used to benefit from JavaScript libraries like jQuery that help them not to write repetitive code, resolve a lot of cross-browsers issues and achieve a better maintainability of their code. And as I said before, Google Analytics Tracking Code (GATC) is just another piece of JavaScript that you include into your website, so why wouldn’t you give it the same treatment as to the rest of the scripts.

A little optimized basic asynchronous tracking script (Google recommends to put it into your document’s <head> section as an inline script):

var _gaq = [];


       ['_setAccount', 'UA-XXXXXX-X'],   // doplnit vlastní ID účtu




(function (d, t) {

       var g = d.createElement(t),

             s = d.getElementsByTagName(t)[0];

       g.async = 1;

       g.src = ("https:" === d.location.protocol ? "https://ssl" : "http://www");

       g.src += "";

       s.parentNode.insertBefore(g, s);

}(document, "script"));

With this article I would like to start a series of implementation tips that should help you to make the most of Google Analytics implementation using the features of the most popular JavaScript library jQuery.


And when I say that the tracking script is just another piece of JavaScript, I would give it a proper treatment also in terms of your website’s performance. Because the most of the setting script doesn’t change, you can remove it from the inline script block and include it (minimized) into a JavaScript bundle to:

  1. allow the browsers to cache some extra bytes of code;
  2. decrease the needed number of HTTP requests to your server.

Because we are going to use jQuery library, the only thing that you have to do is to make sure, that the library will be initialized, when we will need to use it. So I would recommend that jQuery is the first and our setting script the second script in the bundle. It might look like in this file.

First tip: Custom Events

With this functionality which is built-in the jQuery library you can easily measure activity of your website’s visitors that is purely controller by another JavaScript within a single page. You can use it for interactions with tabbed content, carousels, pagination or whatever you decided to implement in JavaScript or AJAX to enrich your visitor’s experience.

Somewhere within your JavaScript code:

// Fire Event

$(document).trigger("custom", [{

       param: "value"


The corresponding part handling the event:


$(document).bind("custom", function (e, extraParameters) {



The main advantage of this approach is that you can set some basic conventions for your frontend developers so they would fire a Custom Event on every measurable interaction. Then it is up to you whether you will implement the event’s handler to do the actual measurement.

Example 1: Measuring AJAX calls

You should probably measure only the successful requests, so the code might look like this:

// in the AJAX call definition


       url: "myurl.html",

       success: function(){

             // ...

             $(document).trigger("ajax:call", [{

                    trackURL: $(this).url




And when you decide to measure this event, you can simply extend your GATC


$(document).bind("ajax:call", function (e, extraParameters) {

       _gaq.push(["_trackPageview", extraParameters.trackURL]);



I hope this was somehow useful to you. I would like to continue with similar tips, so stay tuned.


Why should we bother? Because it is actionable!

Internal search is the best place to gather feedback from your potential customers. They come to your website and tell you:

  • what they want to find there;
  • where did they gave up trying to navigate there and used search functionality instead.

But what do they do if they see an empty results page? Some might try to refine their search phrase, but I would say that it really doesn’t improve their overall experience.

It also might be the good signal for you to:

  • deliver content that is not currently present on your website;
  • change copywriting a bit in case you have picked a different words for the content;
  • or try to implement a manually added results for those searches.


This article is meant to describe possible solutions when you are using a newer asynchronous Google Analytics tracking code placed in the head section of your website.

Google Analytics doesn’t provide this report by default. So we will have to do some extra work to achieve this. The first thing that is necessary to do is to be sure that you are able to identify a zero search results page programmatically.

Then you need to be able to manipulate the Google Analytics Tracking Script a bit or include an extra block of JavaScript into the tracked page.

Options to consider

You certainly don’t want to use an extra _trackPageview call, because this would inflate your data (especially Pages per Visit metric).

In certain cases you actually might be able to modify the tracked URL, but it can be achieved only in particular Web Content Management Systems that are able to pass in all the variables from the page into any template fragment of the generated page. With this capability, you could manipulate the tracked URL as described in this article by Justin Cutroni. The resulting code might look a bit like this:

<script type="text/javascript">
       var _gaq = _gaq || [],
             p = document.location.pathname,
             s =;

       _gaq.push(['_setAccount', 'UA-15436952-1']);
<? if (resultsCount == 0) { ?>
       _gaq.push(['_trackPageview', p + s + '&category=no-results']);
<? } else {?>
<? } ?>
       (function() {
    know this part...

Afterwards you can proceed with the Site Search functionality configuration by the instructions from Justin’s article.

If you don’t have such a comfortable CMS, you can still measure some extra data with the two following features of Google analytics.

Event Tracking

This method was already described in the article Using Google Analytics to Track ‘Zero Results Found’ for Site Searches by Bob Scavilla. I would just point out that it might be a lot easier if the actual search term would be generated by the CMS so you won’t have to suck it from the URL with a regular expression. The resulting code looks much simpler thought:

<? if (resultsCount == 0) { ?>
<script type="text/javascript">
<? } ?>

Custom Variables

The first thing you can do is to use a page-level custom variable. You can store the actual zero results search terms like this:

<? if (resultsCount == 0) { ?>
<script type="text/javascript">
<? } ?>

or you can store the particular results count:

<script type="text/javascript">

Then if you are a little advanced, you can use the API to show all search terms and their count of results in one report (using ga:searchKeyword and ga:customVarValue1 dimensions and ga:pageviews metric).


The only downturn of some of these methods is that the Site Search Terms report still includes all the searches that ended up with no results and you cannot really distinguish them.

Sedmý článek uzavírá seriál, který vznikl na základě mé přednášky na Barcampu ve Vsetíně. V úvodním článku najdete vysvětlení důvodů jeho vzniku. Všechny články také na konci obsahují rozcestník na ostatní kapitoly a já už jsem zvědavý, jaké téma mě pohltí příště.

Smilstvo - Luxuria

Smilstvo - Luxuria

Kde jsem dnes

Po všech těch patáliích už mám poměrně jasno v tom, co mě zajímá. Chci se v tom zdokonalovat a vím, co bych měl ke své práci potřebovat. Zároveň si uvědomuju, že k opravdovému zavedení user experience principů do praxe se musím vypořádat ještě s jednou podstatnou výzvou.

V celém procesu, který jsem popisoval v předešlých článcích, jsem se o klientech vždy zmiňoval spíše okrajově. Právě oni jsou ale hnací silou tohoto podniku. Už tuším, že remcání o nepoučených, neodvážných a lakomých klientech, kteří považují user experience za zbytečnost, nikam nevede. Je třeba osvěta a neustálý tlak.

Hřešil jsem

K tomuto poznání jsem ale došel přes další selhání – smilstvo s klienty. Nechal jsem se totiž ukolíbat pocitem, že mé vlastní zkušenosti jsou dostatečné, abych poctivou a komplexní práci suploval svými předpoklady na základě předchozích zkušeností. Byl jsem ochoten klientům nabízet alternativní (a hlavně levnější) varianty řešení uživatelských rozhraní, která se obejdou bez uživatelského výzkumu a testování.

Tímhle postupem jsem si ale často řezal větev, na které sám sedím. Když to šlo bez user experience jednou, proč by to nemělo jít podruhé?

Slovíčko na závěr

Díky tomuto seriálu jsem se dokázal na chvíli zastavit a sebekriticky rozebrat sám sebe. Tuhle kůru bych čas od času doporučil každému – je vpravdě očistná. Vím, že mě za ta léta v internetovém byznysu neposunulo dál puntičkářské bazírování na pojmech a principech, ale možnost zašpinit si ruce u konkrétních projektů s konkrétními lidmi, kteří byli mnohdy dál než já. Nevím, jestli je to pouze můj aktuální pocit, ale řekl bych, že dál mě posunuly případy, kdy jsem něco zpackal. Nerad plýtvám energií na zakrývání nezdarů, protože jedině upřímnost dokáže nabyté zkušenosti přenášet dál.



Právě čtete šestý díl seriálu, který vzniká na základě mé přednášky na Barcampu ve Vsetíně. V úvodním článku najdete vysvětlení důvodů jeho vzniku. Všechny články také na konci obsahují rozcestník na další kapitoly, a jak vidíte, seriál se již pomalu blíží do finále.

Obžerství (Gula)

Další posun kupředu

Na zahraničních blozích, ve webinářích i na konferencích se nevyhnete produktovým prezentacím. Žasl jsem nad novými technologiemi, nástroji nebo metodikami. Uvěřil jsem, že v mé praxi se neposunu dál, pokud nebudu mít disponovat dostatečně mocnými prostředky.

Kvanta a kvanta nových produktů neustále vznikají a vy si také v každé kategorii vzpomenete alespoň na jeden další. S těmi zdarma jsem se pokoušel experimentovat, na ty placené jsem sháněl rozpočet.

Hřešil jsem

Když s tím jednou začnete, nemůžete přestat. Nechtěl jsem být za troubu, který o nějakém produktu alespoň neslyšel. Říkal jsem si, že když budu mít na každý problém ten nejlepší nástroj nebo metodiku, nemůžu se splést a výsledek je zaručený.

Jestli máte opravdu hodně času nazbyt, pusťte se za podobnou chimérou také.

Jak jsem se poučil

Díky praxi v oboru narůstá také můj okruh přátel s obdobným profesním zaměřením. Musím ale konstatovat, že naprostá většina z nich si v každé disciplíně již zvolila svého favorita a všemi prostředky své rozhodnutí hájí. Neznamená to ale, že by kdokoliv z nich zvolil špatně – každému může vyhovovat něco trochu jiného. Opravdové schopnosti každého z nich totiž netkví v robustnosti a síle jejich nástrojů.

Jednoduše jsou dobří ve svém oboru a byli by v něm dobří i bez těchto nástrojů. Stejně jako by kohokoliv z vás přehrál Tiger Woods s holemi z výprodeje v Tescu, stejně jako bych raději podstoupil operaci srdce kuchyňským nožem od uznávaného kardiochirurga než v profesionálním operačním sále nejsterilnějším skalpelem od „experta“.

Nebojím se pro každý projekt vybrat jiný, protože samotný nástroj důležitý není. Ať budu přesvědčený já sám, že je vhodný, nebo jej prosadí jiný účastník projektu.


Vlastnosti: ,

Tento článek je pátým dílem seriálu, který vzniká na základě mé přednášky na Barcampu ve Vsetíně. V úvodním článku najdete vysvětlení důvodů jeho vzniku. Všechny články také na konci obsahují rozcestník na další kapitoly, který budu doplňovat tak, jak budou vznikat.

Zavist (Invidia)

Závist (Invidia)

Moje další cesta

Na základě svých předchozích přehmatů jsem došel k závěru, že je třeba rozšířit si obzory. Kromě článků o HTML, CSS a JavaScriptu jsem začal sledovat také dění kolem web analytics, projektového řízení, marketingu, PR, psychologie, kreativity a designu. V té době také nebylo dále možné přehlížet nástup sociálních sítí a později i mobilních technologií. Hledal jsem mezi vším pojítka a souvislosti.

Hřešil jsem

S každým dalším přečteným článkem, s každou další case study nebo webinářem v angličtině jsem se utvrzoval v tom, že jsme tu pozadu. U nás zněla slova „uživatelské testování“, „personas“ nebo „mentální modely“ pouze po hospodách a mezi zapálenými jedinci, kteří studovali informační technologie, ačkoliv nikdy nechtěli programovat. Žádný studijní obor zabývající se uživatelským rozhraním tu totiž nenašli. V zahraničí už měli specializované studijní obory, agentury i profesionální UX konzultanty, kteří létali mezi konferencemi po celé planetě.

Záviděl jsem jim zejména poučené klienty, kteří o jejich služby stojí. Dokonce jim svěřují nemalé prostředky, aby mohli pracovat na něčem, co mě samotného tak baví. Zatímco u nás to jde stále ztuha. Jsme malý trh. Jsme omezení češtinou.

Jak jsem se poučil

Dnes už nemám pocit, že ta závist někam vedla. Navíc jsem měl od té doby šanci zúčastnit se několika zahraničních konferencí. Potkal jsem tam spousty zajímavých lidí a většina z nich se ode mě příliš nelišila – naše oblasti zájmu nebyly vždy stejné, ale zvědavost, komunikativnost a ochotu naslouchat jsme vždy sdíleli. Proto jsem jim už nedovedl závidět. Navíc jsem pojal podezření, že v Česku příliš lpíme na bezchybné znalosti teorie – dokážeme se hádat hodiny o píčovinách, protože jde o princip. Když se ale přestaneme bát praxe a začneme do toho šlapat, máme stejné šance. Čeština a její jasná hranice je možná legitimní omezení, ale má triviální řešení – vyrazit do světa a ukázat, že tu nejsme vůbec pozadu. Naopak!



Tento článek je čtvrtým dílem seriálu, který vzniká na základě mé přednášky na Barcampu ve Vsetíně. V úvodním článku najdete vysvětlení důvodů jeho vzniku. Všechny články také na konci obsahují rozcestník na další kapitoly, který budu doplňovat tak, jak budou vznikat.

Hněv - Ira

Co bylo dál

Mé další kroky směřovaly k analýzám přístupnosti, testům použitelnosti a obecnějším konzultacím kolem technických parametrů uživatelských rozhraní. Abych mohl k těmto analýzám dokladovat průkazná data, ponořil jsem se také do webové analytiky. Prostřednictvím naměřených dat jsem chtěl lépe propagovat přínosy user experience odvětví. Říkal jsem si, že pokud klientům naservíruju neprůstřelné srovnání jejich dosavadního webu a jeho nové verze s user experience přísadou, posadí se na zadek a vytáhnou šrajtofle.

V počátcích se to ale nedařilo. Když už se povedlo prosadit nějaký z UX principů, vždy bylo obtížné přesvědčit také vývojáře, že se ta extra práce vyplatí. Zároveň ani výsledky nebyly vždy zcela průkazné nebo se nedostavily hned.

Hřešil jsem

Něco se ve mně zlomilo a začal jsem hledat viníky kolem sebe:

  • hněval jsem se na klienty za to, že UX dostatečně nerozumějí;
  • hněval jsem se na vývojáře, že si chtějí jen ušetřit práci a výsledek je nezajímá;
  • hněval jsem se na uživatele, že neoceňují navržené změny a inovace.

Myslel jsem si, že jsou všichni pyšní, lakomí a líní a bez jejich zájmu nemá smysl dál valit tenhle balvan na vrch kopce. Uzavřel jsem se tedy a soustředil se urputněji na web analytics. Věřil jsem totiž, že potřebuju pouze průkaznější data.

Jak jsem se poučil

Tento hřích je moje srdcovka. Myslím totiž, že mě jeho pochopení obohatilo nejvíce. Díky tomu, že jsem chvíli vše pozoroval s povzdálí, mohl jsem si utřídit myšlenky. Došel jsem k tomu, že hněv nic nevyřeší a chyby musím hledat u sebe.

  • Klientům nestačí sliby a vzletné fráze – chtějí záruky, že se jim spolupráce s vámi dlouhodobě vyplatí. Musejí cítit, že mám na jejich úspěchu evidentní zájem a nejde mi pouze o prodej většího objemu služeb. V tomhle ohledu pak pomáhá ochota snížit cenu na úroveň nákladů, ale za předpokladu, že na případném úspěchu budeme motivováni například formou success-fee.
  • Vývojáře je nutné motivovat – všem ale jako motivace nestačí samotná účast na zajímavém projektu nebo pochvala od kolegů. Nejsem personalistou a nerozhoduju o finančním ohodnocení svých kolegů – mohu se proto pouze snažit přimět vlastní společnost o stejné vidění problému a o změny v systému motivace zaměstnanců. Sám pak musím makat na popularizaci UX na konferencích, neformálních setkáních i na svých blozích.
  • Zájem uživatelů si musím zasloužit – třeba tak, že je vhodným způsobem zapojím do vývoje a rozhodování o nové podobě rozhraní. Ukázkovým příkladem šikovné práce s nechutí ke změnám je využití sociální validace, kterou nedávno předvedl Facebook – prostřednictvím streamu uživatelů, kteří jako early-adopters vyzkoušeli nové rozhraní, napsali jejich přátelům, že již využívají novou podobu webu. Kdo by pak také nechtěl „ten nový Facebook“, který již mají aktivovaný všichni kamarádi.

Stojí to hodně úsilí, ale bez důsledné komunikace všemi směry je jakákoliv snaha o změnu výrazně složitější. A protože i komunikaci lze trénovat, snažím se pravidelně do hloubky promyslet nějaký problém a následně ho co nejsrozumitelnější a nejkratší formou vyjádřit na svém druhém blogu.



Tento článek je třetím dílem seriálu, který vzniká na základě mé přednášky na Barcampu ve Vsetíně. V úvodním článku najdete vysvětlení důvodů jeho vzniku. Všechny články také na konci obsahují rozcestník na další kapitoly, který budu doplňovat tak, jak budou vznikat.

Kam následovaly moje kroky

S tím, jak se moje kompetence posunuly blíže ke klientům, začal jsem zúročovat své zkušenosti nashromážděné z několika melouchů při škole, z první práce na částečný úvazek, vlastních experimentů a spousty času stráveného s RSS čtečkou, diskusními fóry a e-mailovými odběry článků (Vážně! Pane Nielsene! Je tu 21. století, haló…). Pravidelně jsem sledoval CSS galerie, návody, tipy a triky a řadu věcí jsem se snažil ihned vyzkoušet a zavést do praxe i v Et neteře.

Blízkost ke klientům mi ale přinesla pochopení, že na webových projektech není klíčová pouze snaha o přístupnost, použitelnost a pixel-perfect design. U klientů jako jsou Datart, Annonce a Telefónica O2 přišlo prozření, že libovůle namyšlených manažerů není jediným důvodem pro tlak na termíny, cenu a zdánlivě nesmyslné požadavky.

Hřešil jsem

Dopředu se musím přiznat, že s lenivostí prozatím svůj boj prohrávám. Chtěl bych být uznávaným specialistou, jehož čas je ceněný natolik, že práce dva dny v týdnu ho pohodlně uživí. Mělo by to přeci být snadné, protože tvorba webů je natolik nová disciplína, že se v ní nikdo nevyzná. Stačí tedy sledovat, co se děje nového, být o krok napřed než potenciální zákazníci (tak jako obvykle fungovali učitelé výpočetní techniky – alespoň na školách, kde jsem se učil já).

S mým posunem ke klientům jsem objevil zcela nový vesmír. Internetová stránka je najednou součástí produktu, podporou nebo cílem marketingových aktivit nebo prostředkem k dosažení cílů obchodních. Product Management, Marketing, Reklama, PR nebo podniková ekonomika tu jsou ale nesrovnatelně déle než internet. Trvalo mi příliš dlouho, než jsem pochopil, že nestačí sledovat jen nové trendy. Že je třeba přestat vymýšlet kolo a využít cestičky, které již jednou někdo prošlapal. Variantní testování, etnografické výzkumy, persony, uživatelské testování – tyto všechny metody byly už vyzkoušeny jak v tištěné reklamě, tak v televizi (např. první doložená reklama pochází ze starověkého Egypta a jedno z prvních variantních testování reklamy proběhlo v roce 1925 – hezký otvírák na toto téma je, na živo o tisíc procent lepší – Eric Reiss: How The Advertising Industry Thinks).

Samozřejmě nelze opomenout ani současnost. S rozvojem online videa máme možnost sledovat přednášky na všechna možná témata a srovnávat své schopnosti s profesionály z celého světa (na toto téma doporučuji začít přednáškou zakladatele pojektu TED – Chris Anderson: Jak online video pohání globílní inovaci).

Jak jsem se poučil

Tvorba webů vychází ze stínu IT a přestává být doménou úzké skupinky kutilů, kteří měli nějakou shodou okolností blíž k počítačům a internetu. Hranice oboru se rozvolnila směrem ke klasickému marketingu, reklamě a PR. Tyto disciplíny disponují lety prověřenými postupy, které neztratily na efektivnosti ani s dnes dostupnými technologiemi – lidský mozek se totiž s příchodem parního stroje, spalovacího motoru, elektřiny, krájeného chleba ani internetu nijak nezměnil (rozhodně ne k lepšímu).

Nejspíš se mi nepodaří dosáhnout kýženého dvoudenního pracovního týdne, protože se mám stále co učit, ale velkou výhodu vidím v tom, že mě to prostě baví.


Sleduj mě na Twitteru

Moje twíty

Chyba: Twitter neodpovídá. Prosím, vyčkejte několik minut a obnovte tuto stránku.

RSS Google Reader

  • Objevila se chyba, RSS zdroj je pravděpodobně mimo provoz. Zkuste to později.


  • Objevila se chyba, RSS zdroj je pravděpodobně mimo provoz. Zkuste to později.