.
Posts mit dem Label asynchrones tracking werden angezeigt. Alle Posts anzeigen
Posts mit dem Label asynchrones tracking werden angezeigt. Alle Posts anzeigen

Mittwoch, Mai 05, 2010

Aktuelles zu Google Analytics

Derzeit läuft die eMetrics Summit in San Jose in Kalifornien. Dort gab es nun einige Ankündigungen und News zu Google Analytics die ich hier kurz aufführen möchte.


Der asynchrone Tracking Code wird Standard

Ich hatte bereits im vergangenen Jahr über den asynchronen Tracking Code geschrieben (Asynchrones Tracking mit Google Analytics). Nun wird dieser Code zum Default Code. D.h. natürlich funktionieren nach wie vor beide Tracking Codes, also nicht-asynchron oder asynchron, doch wird der asynchrone Code nun von Google als Standardvariante empfohlen.

In den letzten Monaten gab es in dem Code noch die ein oder andere Änderung - nun ist aber davon auszugehen, dass der Beta-Status verlassen worden ist und dieser Code nun gefahrlos verwendet werden kann. Alle weitere Infos dazu in meinem Blog Post dazu (s.o.).


Google Analytics App Gallery

Neben dem im vergangenen Jahr vorgestellten TrakkBoard (siehe dazu den Blog-Post: TrakkBoard ist live) gibt es noch eine Menge andere Applikationen die auf der Google Analytics API basieren. Die Google Analytics App Gallery listet diese externen Apps auf und stellt sie vor.
Darunter findet sich natürlich auch das TrakkBoard wieder.


Google Analytics Authorized Consultants (GAAC) heißen jetzt Google Analytics Certified Partners (GACP)

Für die die es bislang nicht kennen: Es gibt ein internationales Netzwerk an Google Analytics Partnerfirmen (das sicherlich größter Support-Netzwerk eines Web Analyse Tools). Diese Firmen haben einen Zertifizierungsprozess durchlaufen und gegenüber Google ihr Wissen und ihre Kenntnisse bzgl. Google Analytics bewiesen.

Derzeit gibt es in Deutschland vier ausgewählte Partner - einer davon ist Trakken. Diese Partner hießen bislang Google Analytics Authorized Consultans - ab sofort heißen sie nun: Google Analytics Certified Partners. Dies geschieht im Rahmen der Vereinheitlichung, bspw. heißen auch AdWords Partner jetzt Google AdWords Certified Partner.


AdWords und API

Es wurde angekündigt, dass man über die Google Analytics API auch die AdWords ID ziehen kann. Dies bedeutet, dass man in der Lage sein wird, auch bspw. die wirklich eingegebenen Suchbegriffe gegenüber den gebuchten Keywords zu analysieren. Ich hatte darüber vor fast drei Jahren schon einmal einen Artikel verfasst und einen Workaround vorgestellt, der mehr oder weniger gut funktioniert (Wirklich eingetippte Keywords einer AdWords Kampagne in Analytics). Dies wird nun mit Hilfe der API deutlich einfacher werden.

Doch werden diese Daten nicht nur über die API verfügbar sein, sondern auch in den Google Analytics AdWords Berichten. Der oben genannten Workaround wird hiermit also überflüssig werden und die aus meiner Sicht sowieso überarbeitungswürdigen AdWords Reports werden damit ein deutliches Stück besser und informativer. Zudem wird es möglich sein AdWords Kampagnen in Google Analytics neben den wirklich eingegebenen Suchbegriffen bspw. auch nach Match Type, etc. zu analysieren.

Ein genaues Datum wann dieses Feature in alle Reports verfügbar sein wird ist noch nicht kommuniziert worden - es heißt also abwarten und regelmäßig nachschauen...oder weiterhin meinen Blog lesen ;-) Es soll allerdings in den kommenden Wochen ausgerollt werden! Hier ein Video dazu.



Dies sind wieder einige kleine Schritte die die ständige Verbesserung von Google Analytics zeigen. Viele weitere interessante Features und Updates sind auf dem Weg - es bleibt also spannend.

Nun sind Sie dran. Welche Features fehlen Ihnen in Google Analytics? Was stört Sie am meisten? Wenn Sie drei Wünsche frei hätten, welche wären das in Bezug auf Google Analytics? Schreiben Sie einen Kommentar und lassen Ihren Wünschen freien Lauf...

Dienstag, Dezember 01, 2009

Asynchrones Tracking mit Google Analytics

Bei einer Seite mit sehr vielen JavaScript Aufrufen (bspw. viele Events oder virtuelle PageViews) wird der Google Analytics Tracking Code nicht am Ende der Seite vor dem schließenden Body Tag eingebunden, sondern vorher.

Der Hintergrund ist, dass der Code zunächst initialisiert werden muss, damit die dazugehörigen Events und virtuellen PageViews auch entsprechend zugeordnet werden können.

Dies hat den Nachteil, dass bei sehr vielen Aufrufen die Ladezeit der Seite verlangsamt werden kann was nicht besonders schön für die User ist.

Also was tun? Weniger Trakken? Nein!

Denn ab sofort steht allen Google Analytics Nutzern das asynchrone Tracking zur Verfügung.

Was heißt asynchrones Tracking?


google analytics asynchrones tracking
Bislang wurden die Daten übermittelt sobald der Code auf der Seite geladen wurde, bzw. wennimmer bspw. ein Event ausgelöst wurde. Daher habe ich auch immer empfohlen den Code idealerweise möglichst weit unten auf der Seite einzubauen, damit zunächst der Content der Seite geladen wird, eher der Tracking Code ausgeführt wird.

Das Surferlebnis der User geht vor der Erhebung irgendwelcher Web Analyse Daten!

Das asynchrone Tracking läuft etwas anders ab. Hier werden die Daten quasi zunächst gesammelt und dann später, wenn die Seite komplett geladen ist gesammelt als "Paket" an Google übermittelt.

Dies hat einen großen Vorteil für die User der Webiste - keine unnötigen Ladezeiten wegen des Aufrufs eines Web Analyse Pixels.

google analytics
[Dass Google asynchrones Tracking anbietet unterstreicht einmal mehr, dass Ladezeiten ein wichtiges Indiz für die Beurteilung von Websites sind!]

Was muss ich tun?

Zunächst einmal gar nichts! Denn der Wechsel ist absolut freiwillig und der alte Code funktioniert wie gehabt weiter - keine Sorge als!

Um das asynchrone Tracking anzuwenden bedarf es einer Änderung des bisherigen Tracking Codes.

Der bisherige Standard Tracking Code sieht folgendermaßen aus:


web analytics inside - google analytics tracking code

Der Code für das asynchrone Tracking so:


google analytics asynchrones tracking

Auf den ersten Blick ist die Reihenfolge des oberen mit dem unteren Teil vertauscht. Wichtig ist nun aber die der Aufruf

_gaq.push([.....

Zunächst muss also die bisherige UA-Nummer definiert werden:

  _gaq.push(['_setAccount', 'UA-XXXXX-X']);

Diese bleibt natürlich identisch mit Ihrer Account-Nummer.

Verwenden Sie den Standard Tracking Code ohne weitere Anpassungen muss nun der eigentliche bisherige Aufruf angepasst werden:

  _gaq.push(['_trackPageview']);


Achtung für Google Analytics Nutzer die immer noch den urchin.js statt den ga.js nutzen - asynchrones Tracking wird nicht (!) von dem urchin.js Code unterstützt. Sollten Sie also bisher noch nicht gewechselt haben wäre es jetzt vielleicht an der Zeit darüber nachzudenken...

Die Platzierung des neuen asynchronen Codes muss nun nicht mehr vor dem schließenden Body Tag sein, sondern vor dem schließenden Head-Tag - also sehr weit oben auf der Seite.

Weiter oben heißt akkuratere Daten!

Sollten Sie einen individualisierten Code nutzen (vielleicht waren oder sind Sie Kunde von Trakken und haben eine individuelle Implementierung auf Ihrer Seite) so sollten sämtliche individuellen Anpassungen entsprechend des asynchronen Trackings abgeändert werden.

Der neue asynchrone Tracking Code bietet auch verschiedene Varianten des Einbaus. So kann ich wie im obigen Beispiel jede Zeile einzeln mit einen _gaq.push versehen oder aber auch verschiedene Felder in einem _gaq.push kombinieren, bspw. folgendermaßen:

_gaq.push(
['_setAccount', 'UA-XXXXX-X'],
['_trackPageview']
);


Der Vollständigkeit halber hier eine kurze Auflistung verschiedener Individualisierungsmöglichkeiten. Über einige davon habe ich in der Vergangenheit bereits hier geposted, alle Individualisierungen wurden in meinem Buch (Google Analytics - Implementieren.Interpretieren.Profitieren) ausführlich dargestellt

Daher befindet sich hinter der Rubrik die Seitenzahl aus meinem Buch mit dem korrespondierenden Artikel und/oder ein Link zu dem entsprechenden Blog Post.


Mehrere Konten/Profile (S. 81 f. - Kapitel 6.11)

_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq
.push(['_trackPageview']);
_gaq
.push(['b._setAccount', 'UA-XXXXX-2']);
_gaq
.push(['b._trackPageview']);



ClientInfo, Hash, Flash, Title (S. 92 ff. - Kapitel 6.19)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setClientInfo', false]);
_gaq
.push(['_setAllowHash', false]);
_gaq
.push(['_setDetectFlash', false]);
_gaq
.push(['_setDetectTitle', false]);
_gaq
.push(['_trackPageview']);



Event Tracking (S. 94 ff. - Kapitel 6.20)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_trackPageview']);
...
<a onclick="_gaq.push(['_trackEvent', 'name', value]);">click me<\a>



Linker (Seite 68 ff. - Kapitel 6.4)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setDomainName', 'none']);
_gaq
.push(['_setAllowLinker', true]);
_gaq
.push(['_trackPageview']);
...
<a href='http://example.com/test.html'
onclick
='_gaq.push(['_link', 'http://example.com/test.html'); return false;'>click me



Linker mit Formular (Seite 68 ff. - Kapitel 6.4)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setDomainName', 'none']);
_gaq
.push(['_setAllowLinker', true]);
_gaq
.push(['_trackPageview']);
...
<form name='f' method='post' onsubmit='_gaq.push(['_linkByPost', this]);'>
...
form>



E-Commerce (S. 76 ff. - Kapitel 6.9)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_trackPageview']);
_gaq
.push(['_addTrans',
'1234', // order ID - required
'Mountain View', // affiliation or store name
'11.99', // total - required
'1.29', // tax
'5', // shipping
'San Jose', // city
'California', // state or province
'USA' // country
]);
_gaq
.push(['_addItem',
'1234', // order ID - required
'DD44', // SKU/code
'T-Shirt', // product name
'Green Medium', // category or variation
'11.99', // unit price - required
'1' // quantity - required
);
_gaq
.push(['_trackTrans']);



Kampagnen-Umbenennung (S. 85 f. - Kapitel 6.15)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setCampNameKey', 'ga_campaign']); // name
_gaq
.push(['_setCampMediumKey', 'ga_medium']); // medium
_gaq
.push(['_setCampSourceKey', 'ga_source']); // source
_gaq
.push(['_setCampTermKey', 'ga_term']); // term/keyword
_gaq
.push(['_setCampContentKey', 'ga_content']); // content
_gaq
.push(['_setCampIdKey', 'ga_id']); // id number
_gaq
.push(['_setCampNOKey', 'ga_nooverride']); // don't override
_gaq
.push(['_trackPageview']);



Suchmaschinen (S. 70 ff. - Kapitel 6.5, S. 83 f. - Kapitel 6.13)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_addIgnoredOrganic', 'ignore']);
_gaq
.push(['_addIgnoredRef', 'urchin.com']);
_gaq
.push(['_addOrganic', 'new_search_engine', 'q']);
_gaq
.push(['_trackPageview']);



Cookie-Pfad (S. 84 - Kapitel 6.14)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setCookiePath', '/path/of/cookie/']);
_gaq
.push(['_trackPageview']);



Cookie Timeout (S. 75 f. - Kapitel 6.8)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setCookieTimeout', '31536000']);
_gaq
.push(['_trackPageview']);



Session Timeout (S. 74 f. - Kapitel 6.7)

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq
.push(['_setSessionTimeout', '3600']);
_gaq
.push(['_trackPageview']);



Zugegeben - vielleicht etwas schwere Kost. Dennoch hoffentlich interessant für den ein oder anderen Leser. Feedback? Dann schnell einen Kommentar schreiben....!
 
Google