Client ID je spôsob, akým Google Analytics identifikuje “používateľov”. Tento identifikátor však bežne nie je dostupný v štandardných reportoch a nemôžete k nemu pristúpiť ako k iným dimenziám. Viete tak urobiť len v User Explorer reporte.

Tak ako v prípade Client ID vieme segmentovať údaje od konkrétneho používateľa, v prípade Session ID vieme segmentovať všetky hity v rámci jednej Session. To je veľmi užitočné či už pri debugovaní implementácie, alebo akejkoľvek bližšej analýze jednej konkrétnej Relácie (Session).

Client ID

Pre posielanie Client ID využijeme funkciu customTask(). Bez prílišného zachádzania do detailov – customTask() je posledný moment, kedy môžete zmeniť model objekt, alebo pristúpiť k dátam, ktoré sa odošlú do Google Analytics.

Client ID sa dá získať aj z _ga cookie, problém však je, že pri prvej Pageview nového používateľa táto Cookie ešte nemusí byť vytvorená, čo by znamenalo, že hodnota sa do Google Analytics neodošle správne. Avšak, pri využití customTask() funkcie tento problém odpadá, nakoľko Client ID je povinný atribút každého jedného hitu a preto v tomto momente bolo používateľovi Client ID už pridelené (hoci cookie ešte stále nemusí byť vytvorená).

Funkciu, ktorá sa vykoná ako customTask uložíme do Custom JavaScript premennej. Jediné, čo je v tomto kóde potrebné zmeniť je index Vlastnej dimenzie, do ktorej chceme Client ID odoslať (v príklade dolu napr. posielame Client ID do vlastnej dimenzie 17). Nezabudnite v Google Analytics property vytvoriť Vlastnú dimenziu Client ID. Keďže túto dimenziu budeme posielať s každým jedným hitom, je úplne jedno, či ju nastavíme na Hit, Session alebo User scope.

Ukážka JS – customTask premennej:

function() {
  return function(model) {
    // CD17 bude obsahovat client ID
    model.set('dimension' + 17, model.get('clientId'));
  }
}

Následne túto premennú s kódom musíme uložiť ako customTask v časti ‘Fields to set’ (ideálne do Google Analytics Settings Variable, v horšom prípade do každého GA tagu).

Session ID

Posielanie Session ID je omnoho jednoduchšie, pretože využijeme princíp na ktorom fungujú Vlastné dimenzie s rozsahom Relácie (Session scoped). V GTM nevieme jednoduchým spôsobom určiť, kedy vzniká a zaniká Session, a kedy hit spadá do Session A a kedy už do Session B. Hity sú do jednotlivých Session priradené až v Google Analytics. Session scoped dimenzie však fungujú na jednoduchom princípe – posledná hodnota, ktorá bola do Session scoped dimenzie poslaná, bude po skončení session priradená každému jednému hitu v rámci Session. Tzn. že ak s každým jedným hitom budeme posielať náhodne vygenerované ID, eventuálne, keď Session skončí, sa posledné vygenerované ID priradí všetkým predchádzajúcim hitom. Dôležité však je, aby bola vlastná dimenzia nastavená ako Session scoped, inak táto implementácia nebude fungovať. Takže podobne ako pri Client ID, nezabudnite vytvoriť dimenziu Session ID v Google Analytics (Session scoped).

V prvom rade potrebujeme funkciu, ktorá bude generovať náhodný identifikátor. Na formáte príliš nezáleží, takže funkcia môže vyzerať takto:

Ukážka JS – Session ID premennej:

function () {
  return '_' + Math.random().toString(36).substr(2, 9);
};

Túto funkciu si znova uložíme do Custom JavaScript premennej. Posledným krokom je vložiť túto funkciu do časti tagu, kde sa nastavujú Vlastné dimenzie spolu s prislúchajúcim indexom (znova, ideálne Google Analytics Settings Variable, v horšom prípade do každého jedného Google Analytics tagu).

Táto implementácia vám napríklad odhalí, koľko Relácii sa priblížilo k hranici 500 hitov (maximálny počet hitov na Reláciu, všetky ďalšie hity nebudú v GA zaznamenané). V prípade, že veľké množstvo Session túto hranicu dosiahlo, alebo sa k nej blíži, mali by ste identifikovať, ktoré hity ta a pokúsiť sa optimalizovať implementáciu.