Ziel Tracking mit Silverlight und Piwik

25. August 2010

Analyse-Tools wie Google Analytics oder Piwik liefern einem wertvolle Informationen über die Aktionen der Besucher auf seiner Seite. Jedoch scheitern diese Tools daran, wenn irgendetwas innerhalb einer Silverlight Anwendung (oder auch Flash) passiert. Mit einigen wenigen Handgriffen ist es jedoch aus Silverlight möglich mittels des Ziel Trackings von Piwik auch Aktionen innerhalb von Silveright Anwendungen zu erfassen.

1. Ziele in Piwik anlegen.
Zuerst sollte man in Piwik die gewünschten Ziele anlegen welche erfasst werden sollen. Dabei ist zu beachten, dass der Punkt “Ziel wird ausgelöst” auf “manuell” gestellt wird.

Piwik Ziel anlegen

2. Tracking Klasse erstellen
Als nächstes erstellen wir in unserer Silverlight Applikation eine Tracking Klasse. Diese dient dazu das Piwik Tracking im HTML Dokument auszulösen. Wenn man sich die Piwik API-Dokumentation anschaut stellt man fest, dass drei Parameter an die entsprechende Funktion übergeben werden können, wovon die ZielID Pflicht ist. Von daher sollten wir bei der Klasse darauf achten, dass alle drei Möglichkeiten abgedeckt werden. Meine Klasse schaut wie folgt aus:

public static class Tracking
{
  public static void Track(int goalId)
  {
    Track(goalId, 0, string.Empty);
  }
 
  public static void Track(int goalId, decimal revenue)
  {
    Track(goalId, revenue, string.Empty);
  }
 
  public static void Track(int goalId, decimal revenue, string customVars)
  {
    // Invoke javascript methods
    HtmlPage.Window.Invoke("trackGoal", goalId, revenue, customVars);
  }
}

Die ersten zwei Varaiten sind Überladungen und rufen nur die dritte Methode auf. In der dritten Methode, in welcher alle drei Parameter übergeben werden können, wird dann eine JavaScript-Funktion aufgerufen welch im nächsten Schritt erläutert wird.

3. JavaScript Funktion
Als letzes benötigen wir noch eine JavaScript Fuktion, welche von Silverlight aus aufgerufen wird und die doe eigentliche Piwik API Methode ausführt. Diese Methode kann über ein externe ausgelagerte Javascript Datei oder direkt im eigentlich HTML-Code eingebettet werden.

function trackGoal(goalid, revenue, customVars) {
  piwikTracker.trackGoal(goalid, revenue, customVars);
}

Anschließend kann einfach per Aufruf einer der drei Track-Methoden innerhalb von Silverlight das entsprechende Ziel Tracking ausgelöst werden. Die benötigten IDs findet man in einer Piwik-Verwaltung.

Selbstverständlich kann man sich hier auch noch einige Komfort-Funktionen einbauen. Gerade wenn man mehr Ziele in Piwik angelegt hat, kamm man schnell mit den Ids durcheinander kommen. Hierfür würde ich dann bei der Track-Methode keine Int-Übergabe verwenden sodern Enums anlegen.

{ 0 Kommentare } { 0 Shares }

Schreib einen Kommentar

Previous post:

Next post: