Mit Piwik UTM-URL-Parameter tracken (Google Analytics-Kampagnen-Parameter)

Published by Philipp Schuster on

Piwik Benutzerdefinierte Variablen

Piwik kann die Google Analytics-Kampagnen-URL-Parameter leider nicht komplett verarbeiten, dafür gehe ich aber den Umweg über die Benutzerdefinierten Variablen von Piwik. Mit den UTM-URL-Parametern meine ich die folgenden drei wichtigen:

  • utm_source, z.B. “googleplus”
  • utm_medium, z.B. “profile-about”
  • utm_campaign, z.B. “social-media-promotion”

Für die, die noch nicht wissen, was gemeint ist:
Wenn ihr zum Beispiel das Google+-App-Icon in Chrome öffnet, wird die URL https://plus.google.com/?utm_source=chrome_ntp_icon&utm_medium=chrome_app&utm_campaign=chrome geöffnet und die Besucher-Analyse-Software im Hintergrund kann weitere Daten mit aufnehmen und in die Analyse einfließen lassen.

Wie gesagt, Piwik verarbeitet die drei wichtigen Parameter leider nicht alle komplett, aber dafür gehe ich einen kleinen Umweg. Hierfür muss nur der Piwik-Tracking-Code mit etwas JavaScript modifiziert werden. Die Änderungen finden nur am Tracking-Code statt, im Piwik-Administrationsbereich muss nichts geändert werden.

Zuerst müssen wir die URL darauf untersuchen, ob in ihr Google Analytics-Kampagnen-Parameter enthalten sind. Wird ein Parameter bzw. mehrere gefunden, werden die gefundenen Werte im Array piwikCustomVars abgespeichert.

/* My Piwik Custom Vars
 * [0]: id 1, utm_source_param
 * [1]: id 2, utm_medium_param
 * [2]: id 3, utm_campaign_param
 * Da Piwik nicht alle UTM-Parameter von selbst trackt, gehe ich diesen Weg
 */
var piwikCustomVars = [],
     urlParams = window.location.search;
if (urlParams) {
  if (urlParams.match("utm_source=")) {
    piwikCustomVars[0] = urlParams
      .split(
        "utm_source="
      )[1]
      .split(
        "&"
      )[0];
  }
  if (urlParams.match("utm_medium=")) {
    piwikCustomVars[1] = urlParams
      .split(
          "utm_medium="
      )[1]
      .split(
        "&"
      )[0];
  }
  if (urlParams.match("utm_campaign=")) {
    piwikCustomVars[2] = urlParams
      .split(
        "utm_campaign="
      )[1]
      .split(
        "&"
      )[0];
  }

Im nächsten Schritt müssen wir Benutzerdefinierte Variablen im Piwik-Tracking-Code setzen und mitsenden lassen. Hierfür muss vor

_paq.push(['trackPageView']);

folgendes einfügt werden:

  if (piwikCustomVars[0]) {
  _paq.push(['setCustomVariable', 1, "UTM_Source", piwikCustomVars[0], "visit"]);
  }
  if (piwikCustomVars[1]) {
  _paq.push(['setCustomVariable', 2, "UTM_Medium", piwikCustomVars[1], "visit"]);
  }
  if (piwikCustomVars[2]) {
  _paq.push(['setCustomVariable', 3, "UTM_Campaign", piwikCustomVars[2], "visit"]);

Wenn einer der Parameter existiert, wird eine Custom-Variable gesetzt und mit dem in piwikCustomVars hinterlegten Wert gefüllt.

Jetzt gilt es nur noch im Internet Links mit den Parametern zu verteilen, bzw. sie auf sonstige Weise zu verbreiten und dann die Daten auswerten. Wie das ausschaut, seht ihr z.B. hier:

Piwik Besucherlog

Screenshot aus dem Piwik Besucherlog. Man sieht untereinander aufgelistet die verschiedenen Variablen mit ihren Werten. Wenn nur zwei Parameter in der URL gewesen wären, würde man hier nur zwei Einträge sehen.

In dieser Ansicht sehen wir die entsprechenden Parameter bei einem einzelnen Besuch. Wollen wir aber nun schauen, wie oft zum Beispiel utm_source den Wert “facebook” gehabt hat, gehen wir in die Piwik Benutzerdefinierte Variablen-Übersicht.

Piwik Benutzerdefinierte Variablen

Man kann die verschiedenen Variablen anschauen und durch einen Klick öffnen sich die Werte. Dort sieht man dann z.B. “9x facebook” und kann so weitere Statistiken in die Auswertung der eigenen Seite mit einbeziehen.
Hinweis: Durch diverse Tests mit Testdaten sieht das noch etwas durcheinander aus.

Ich hoffe es hilft ein paar Webmastern da draußen. Piwik nähert sich so ein Stück weiter an Google Analytics an.


Philipp Schuster

Hi, I'm Philipp and interested in Computer Science. I especially like low level development, making ugly things nice, and de-mystify "low level magic".

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *