Google Analytics

2009.05.28. 09:10 stack

Az ingyenes statisztikák közül vitathatatlanul legjobb a Google Analytics. Néhány soros HTML kód beillesztés után egész komoly rálátásunk lehet a látogatóink oldalon eltöltött viselkedéséről.
Az Ajax-os oldalak elterjedésének köszönhetően, megoldották, hogy tetszőleges url-t is szimulálhassunk a következő módon:

if (typeof pageTracker != 'undefined') {
    pageTracker._trackPageview('/szia/vilag');
}

A fenti kódsort hozzárendeljük bármely eseményhez, amivel egy új oldalletöltést kapunk a statisztikában. (ablak megnyitása, tab váltás stb.)

Hálózat nélküli kapcsolat esetén tapasztaltam, hogy az Ext.onReady sokáig várakozott, míg a böngésző megállapította, hogy a ga.js fájlt nem tudja elérni. Egy egyszerű megoldás erre, hogy az onReady után indítjuk csak el a Google oldaláról a letöltést:

Ext.onReady(function() {
    var ga_js_src = ("https:" == document.location.protocol ? "https://ssl." : "http://www.") + 'google-analytics.com/ga.js';
    var ga_init_script = 'if (typeof _gat != "undefined") { var pageTracker = _gat._getTracker("..."); pageTracker._trackPageview(); }';
    if (Ext.isIE) {
        Ext.getBody().createChild({}).update(
            '<script type="text/javascript" defer="defer" src="' + ga_js_src + '"></script>'+
            '<script type="text/javascript" defer="defer">' + ga_init_script + '</script>',
        true);
    } else {
        Ext.DomHelper.useDom = true;
        Ext.getBody().createChild({
            tag: 'script',
            src: ga_js_src,
            onload: ga_init_script
        });
    }
});

Internet kapcsolat esetén is hasznos, ha a statisztika nem lassítja az applikáció elindulását.

4 komment

Címkék: google analytics

A bejegyzés trackback címe:

https://extjs.blog.hu/api/trackback/id/tr421148324

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

carstep 2009.05.28. 14:29:08

Hali, a ket createChild utasitas az nem asszinkron hajtodik vegre veletlenul? Mivel nem ertekado utasitasok. Illetve nem e feltetele az elso script betoltodesenek a masodik script tartalma?

-cs-
Sanyi

stack 2009.05.28. 19:01:52

Szia! Itt most nem Ajax hívásokról van szó! Két egymás utáni utasítás mindenképpen szinkron hajtódik végre, azaz a HTML-ben a két SCRIPT tag biztosan jó sorrendben lesz. Innentől viszont pontosan ugyanaz a helyzet, mintha eredetileg is ott lettek volna. Azt a böngésző garantálja, hogy a második script csak azután hajtódik végre, amikor az első befejeződött.

stack 2009.05.28. 23:45:20

Afene. :) Lehet, hogy ezt egy kicsit elhamarkodtam...

IE alatt nem egészen így működött... sőt... IE-ben a SCRIPT tageket csak Element.update(…, true) formában lehet hozzáadni a HTML-hez.
Ám, ha már így állunk, akkor az onload-ot IE-n kívül mindenki ismeri, ezáltal kicsivel rövidebben is megadható!

carstep 2009.05.29. 10:30:20

@stack: en jQuery-vel futottam korabban bele, hogy ket fuggvenyhivas parhuzamosan futott le, nem pedig szinkron modon. Termeszetesen nem Ajax hivasokrol volt szo. Lejet tevedek, de amikor utanaolvastam, akkor setTimeout es tarsait hasznalo szcriptek, mindig aszinkron futnak! Bar belegondolva, a regi jQuery effect rutinok, szinte mindegyike idoziteses technikat hasznalt, na most is rajottem olyan dologra, amire a munka mellett nincs idom :-(

-cs-
Sanyi

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?