Google Analytics für Flash und Flex

Google Analytics ist ein mächtiges Tool um das Nutzerverhalten innerhalb einer Seite zu untersuchen. Wo klickt der User, welche Themen sind besonders interessant und wie kann die Seite für den Nutzer optimiert werden? Dies sind nur ein paar Punkte bei denen Google Analytics hilfreich zur Seite steht.

Bei Flash und Flex Anwendungen war hier bisher Schluss. Die Seite wird aufgerufen, das SWF geladen und dies war der letzte Aufruf des Trackers, wenn der User sich ab nun innerhalb der SWF bewegt. Ein Zustand der jeden Marketingmenschen zur Verzweiflung treibt.

public var gaTracker:GATracker;

Der hier aufgeführte GATracker ist der Kern des com.google.analytics – Packages. Es enthält alle notwendigen Klassen um Google Analytics auf einer Flash oder Flex Anwendung anzusprechen. Dazu wird wie oben beschrieben eine Variable der GATracker erstellt. Über diese läuft dann die gesamte Kommunikation.
Nur wird bei applicationComplete (Flex) oder eben im Konstruktor (Flash) die oben beschriebene Variable instanziiert. Dazu müssen verschiedene Parameter mitgegeben werden damit die Kommunikation zu Google Analytics auch so funktioniert wie es soll. Wenn die Flash oder Flex Anwendung und auf dem MVC-Model basiert, bietet es sich zu dem an, die Tracker Variable im Model anzulegen. So lässt sie sich von überall nutzen.

Um nun aber auf die Parameter der Instanziierung einzugehen:

gaTracker = new GATracker(this, 'XX-XXXXXXX-X', TrackerMode.AS3, true);

Dies beschreebt die Instanziierung der GATrackers via ActionScript. Wobei ‚this‘ das parent DisplayObject darstellt. Ich denke dass es sinnvoll ist, mit this auf root der SWF zu verweisen. Als nächstes kommt der Google Analytics-Account. Diese ID einfach hier als String eintragen. Nun wird es interessanter. Der dritte Parameter beschreibt den TrackerMode ausgehened von der App. Dabei gibt es zwei Modi: TrackerMode.AS3 oder TrackerMode.BRIDGE. Dabei lässt es sich recht einfach unterscheiden, welchen Modus man verwenden soll. Der BRIDGE Modus wird genutzt, wenn in der HTML-Seite, in welche das SWF eingebettet wird, bereits ein Google Analytics-Tracker vorhanden ist. Dieser Tracker wird im BRIDGE-Modus über External-Interface angesprochen und dann auch für die Kommunikation zu Google Analytics genutzt. Der AS3-Modus wird hingegen genutzt, wenn kein Tracker in der HTML-Seite vorhanden ist. Der letzte Parameter sagt aus, ob der Tracker im Debug-Modus laufen soll oder nicht. Dies ist besonders interessant während der Entwicklung um zu überwachen welche Informationen gesendet werden.

Für die Flex-MXML Syntax gibt es einen eigenen Tag zum implementieren:

Hier verhalten sich die Attribute wie oben beschrieben, nur eben das es keinen Verweis auf das DisplayObject gibt, da der Tag sowieso schon in einem liegt. Hinzu kommt aber eine ID um den Tracker aufrufen zu können.

Wie wird nun die Userinteraktion an Google Analytics übertragen? Um es vorweg zu sagen, man kann als Entwickler definieren was alles getrackt werden soll und wie es ankommt. So ließe sich zum Beispiel vom MouseClick bis hin zur kleinsten Mausbewegung alles mittracken. Das dies (meist) nicht sinnvoll ist, ist klar aber es zeigt auf, welche Möglichkeiten es gibt.

Es gibt zwei Aufrufe zum senden von Informationen. trackPageview und trackEvent. Mit dem ersten wird GoogleAnalytics eine Information übermittelt, entsprechend dazu, wenn der User auf eine andere Seite navigieren würde:

gaTracker.trackPageview("/aFakePage");

Dabei wird die „neue“ Verzeichnisstruktur in der sich der User befindet, an Google übermittelt. Eben so als hätte sich die URL verändert.
Die zweite Möglichkeit dient dazu interne Events der RIA zu übermitteln, die nicht von der Usernavigation ausgehen.

gaTracker.trackEvent('category', 'action', 'label', [value:optional]);

Hier entspricht die „category“ der Gruppe zu der der Event zugeordnet werden soll und die „action“ ist inhaltlich an die „categorie“ gebunden. Das heißt, wenn es sich um Events handelt, die beispielsweise von einer Videosteuerung ausgehen, ist es sinnvoll die „category“ ‚video‘ zu nennen und the „actions“ wären zum Beispiel „play“, „pause“ und so weiter. Das „label“ bietet die Möglichkeit weitere Informationen zum category-action-Paar zu übermitteln, ebenso wie über „value„, wobei es sich hier um einen positiven Integer handeln muss.

Insgesamt eine sehr einfache Variante, um aus einem SWF heraus zu Google Analytics zu kommunizieren. Letztendlich würden sorgar zwei Zeile Code ausreichen, um den Datenaustausch zu erstellen. Das Package gibt es im übrigen zum Download bei GoogleCode.

Links:
http://code.google.com/p/gaforflash/
http://www.insideria.com/2009/02/using-google-analytics-within.html