Olvasottság mérés: Hogyan mérj olvasottságot?

Csentes Zoltán    2018-07-30

Ha azt kérdezik tőled, hogy milyen az oldalad látogatottsága, akkor egyszerűen lekérsz egy oldalletöltés riportot Googla Analytics-ből és meg is van a válasz. És ha azt kérdezik tőled, hogy a cikkeidet ebből mennyien olvasták végig mit mondasz?  Egy erősen AdOps tartalmú poszt következik az online olvasottság mérés beállításáról lépésről-lépésre!

Az oldalletöltés már kevés

Az oldalletöltés (pageviews) a webanalitikában egy nagyon egyszerű alapmutató: azt méri, hogy az adott oldal hányszor jelenik meg. Fontos mutató ez a médiának - hiszen minél több az oldalletöltés, annál több a hirdetési bevétel - és fontos mutató a hirdetőnek is, hiszen ebből látja, hogy hirdetése mekkora portfólión jelenhet meg.

Egy gond van az oldalletöltéssel, hogy a hirdetési piacon elavult mutató. Hasonlóan a megjelenés (impressions) mutatóhoz, itt is csak annyit tudunk meg, hogy az adott oldalt megnézték, de vajon el is olvasták?


Az eltöltött idő nem pontos

A másik mutató, amit az oldal tulajdonos adhat az oldalon eltöltött átlagos idő. A gond ezzel a mutatóval, hogy sajnos nem pontos. Ha valaki meglátogatja az oldalt az időzítő elindul. Ha például 2 percet tölt az oldalon, de olvasás után nem csinál mást csak bezárja azt, akkor az Analytics ezt az időt nem fogja tudni mérni, mert nincs mihez kötnie az idő végét. Vannak persze sufnituning megoldások, például GTM-ben eventet küldünk oldal elhagyáskor, vagy be tudunk állítani "timer" triggert, ami x időnként eventet küld Analytics-be, de a legvégén egy pontatlan számot kapunk.

A márkák ma már szeretnek számukra releváns tartalom mellett megjelenni. Ennek egyik tipikus módja például a natív hirdetés, vagy PR cikk. Ha a hirdető kap egy oldalletöltés számot - ami mellesleg tele lehet téves kattintásokból, visszaforduló látogatóktól vagy akár botoktól származó letöltésekkel - elfogadja, de széleskörű következtetést nem von le belőle. Mi lenne, ha kitisztítanánk ezt a képet, és azt is mérnénk, hogy a látogatóink mennyire elkötelezettek a tartalom iránt, mennyien olvassák végig a cikkeinket?


Olvasottság mérés alapok

Az olvasottság mérésnél alapvetően két dolgot kell figyelembe vennünk:

  1. Eljutott a felhasználó a cikk végére?
  2. Elég időt töltött az oldalon, ahhoz, hogy el is olvassa azt?

Ha mindkét kérdésre igaz a válasz, akkor a felhasználó feltehetően tényleg elolvasta a tartalmat! Ha ezeket a mutatókat mérni tudjuk, akkor minden egyes oldalletöltést tovább tudunk bontani:

  • Visszapattanók (bounce): Nem görgették végig és nem is maradtak elég ideig az oldalon, hogy azt elolvassák.
  • Átfutották: Ők azok, akik végig görgették a cikket, de nem maradtak elég ideig.
  • Beragadtak: Ők azok, aki megnyitották a cikket és kellő időt is eltöltöttek az oldalon - feltehetően elmentek kávézni és nem zárták be az ablakot :) - , de nem görgettek le a cikk végéig.
  • Fogyasztók: Ők az igazi olvasók! Végig görgették az oldalt és elég ideig is maradtak, hogy azt elolvassák.

Olvasottság mérés lépései

A méréshez szükséges minden kódot Google Tag Manager (GTM) segítségével helyezünk el az oldalban. Ha nem hallottál még róla, akkor ne is olvass tovább, ez a cikk nem neked szól. Tudom ajánlani kezdésnek a Láthatóság mérése cikket.

Fontos még megemlíteni, hogy minden oldal más és más. Ebben a tutorialban az ad-ops.hu oldal olvasottság mérésének beállítását mutatom be.

  1. lépés: Mérjük meg mennyi szó található a cikkben
  2. lépés: Határozzuk meg, mennyi idő lenne azt elolvasni
  3. lépés: Mérjük, hogy az olvasó a cikk végére jut-e
  4. lépés: Ha elértünk a cikk végére és az időzítő is letelt, eventet küldünk GA-ba.

1. lépés: Szavak számolása

Először is meg kell keresnünk azt a tartalmi elemet, amit mérni szeretnénk. Esetünkben jól látszik, hogy az id="onlycontent" div tartalmazza a poszt teljes szövegét:

Ez után írjunk egy scriptet, amit majd GTM-ből beteszünk minden poszt oldalra. Ez a script végigmegy ezen a tartalmi elemen és összeszámolja a szavakat:

function get_text(el) {
ret = "";
var length = el.childNodes.length;
for(var i = 0; i < length; i++) {
var node = el.childNodes[i];
if(node.nodeType != 8) {
ret += node.nodeType != 1 ? node.nodeValue : get_text(node);
}
}
return ret;
}
var words = get_text(document.getElementById('onlycontent'));
var wordcount = words.split(/\s+/).length;

A wordcount változó tehát a szavak számát tartalmazza.

2. lépés: Olvasási idő meghatározása

Na ez jó móka :) Találtam egy cikket, ami arról szól, hogy van egy honlap ami a könyvek olvasási idejét becsüli meg. A cikkből kiderül, hogy a fejlesztők ehhez egy átlagos személy olvasási sebességét vették figyelembe, ez pedig 300 szó percenként.

Egészítsük ki a fenti scriptet ezzel:


var readingtime = wordcount*60000/300;

Ezzel meghatározzuk a readingtime változót, ami az adott poszt olvasási idejét fogja megadni milisecundumban.

Tegyük a wordcount és readingtime változókat dataLayerbe:


 window.dataLayer = window.dataLayer || [];
 window.dataLayer.push({ 
    'wordcount': wordcount,
   'readingtime' : readingtime
 });

Mostantól minden egyes poszt megnyitásakor tartalmazni fogja a dataLayer, hogy az adott posztban mennyi szó található és mennyi idő kell az adott poszt elolvasásához!

3. lépés: Mennyien görgették végig

Ebben a lépésben két dolgot fogunk tenni.

  1. Meghatározzuk azt a pontot, ameddig az olvasónak le kell görgetnie ahhoz, hogy a tartalmat teljesen elolvassa. Esetünkben ez a pont legyen a megosztás gombok szekció. Tehát ha a felhasználó látja a megosztás gombokat, akkor valószínűleg a poszt végéhez ért.

    Nálam ennek az elemnek az id-ja: socialButtonOnPage.
    Most pedig hozzunk létre GTM-ben egy Element Visibility triggert erre az elemre:

  2. A másik dolog amit tenni fogunk, hogy GTM-ben csinálunk egy Tag-et, ami a dataLayerbe betesz egy "comment" változót "appeared" értékkel, akkor, ha a fenti trigger behívja:

Összefoglalva: Ha az olvasó a poszt végéhez ér, és láthatóvá válik a megosztás gomb, akkor az oldal dataLayerébe bekerül egy comment változó. Ez később ahhoz fog kelleni, hogy ellenőrizzük az olvasási idő lejártával, hogy legörgetett-e az olvasó az oldal aljára.

4. lépés: Finomítás és Event küldése GA-ba

Mielőtt a végső eventet beküldenénk GA-ba, néhány apróbb módosítást kell ejtenünk a scriptünkön. Egyrészt ki kell egészítenünk egy időzítővel, ami az olvasási idő leteltekor ellenőrzi, hogy a végiggörgetés megtörtént-e és ha igen, akkor elsütünk egy "fullread" eventet. Ha az olvasási idő letelt, de nem volt meg a végiggörgetés, akkor várunk, amíg megérkezik az olvasó a végére.

A következő sorokat fűzzük a script végére:


function check() {    
   try {
    var comments = dataLayer[6]['comment'];
      }
 catch(e){
 }
    
  if (typeof comments != 'undefined') {
      dataLayer.push({'event': 'fullread'});
  }
  else {setTimeout(check,2000);}
};
  
setTimeout(check,readingtime);

Összefoglalva a script, ami minden poszt oldalon le fog futni így néz ki:


function get_text(el) {
    ret = "";
    var length = el.childNodes.length;
    for(var i = 0; i < length; i++) {
        var node = el.childNodes[i];
        if(node.nodeType != 8) {
            ret += node.nodeType != 1 ? node.nodeValue : get_text(node);
        }
    }
    return ret;
}
var words = get_text(document.getElementById('onlycontent'));
var wordcount = words.split(/\s+/).length;
var readingtime = wordcount*60000/300;
 

 window.dataLayer = window.dataLayer || [];
 window.dataLayer.push({ 
    'wordcount': wordcount,
   'readingtime' : readingtime
 });

function check() {    
   try {
    var comments = dataLayer[6]['comment'];
      }
 catch(e){
 }
    
  if (typeof comments != 'undefined') {
      dataLayer.push({'event': 'fullread'});
  }
  else {setTimeout(check,2000);}
};
  
setTimeout(check,readingtime);

Most tegyük be ezt a scriptet egy custom HTML tag-be, és triggernek állítsunk be, hogy minden poszt oldalon PageView-Dom Ready-re hívódjon meg.

Az utolsó lépés egy event küldése Analyticsbe, ha a scriptünk meghívja a fullread eventet:

Ahogy látod grátiszban még az adott poszt szavainak a számát is átadom, jó ha megvan :)

Összefoglalás: Minden poszt oldalon lefut egy script, ami megszámolja az adott posztban mennyi szó van, és meghatározza, hogy az elolvasásához kb. mennyi időre van szükség. Ezen felül figyeljük, hogy a felhasználó végiggörgette-e a cikket. Ha az elolvasáshoz szükséges idő letelik és a posztot végiggörgették, akkor elküldjük Analyticsbe az eventet. Ez az event jelzi, hogy ezt a posztot valaki tényleg végigolvasta.