Besserer Datenschutz in Google Analytics mit Tasks - Peaks & Pies

Besserer Datenschutz in Google Analytics mit Tasks

12. Mai 2017

In unserer täglichen Arbeit werden wir häufig mit personenbezogenen Daten in Tracking-Requests konfrontiert. Um nicht gegen das herrschende deutsche Datenschutzrecht zu verstoßen, müssen diese im Vorfeld bereinigt werden. Erst dann dürfen die Daten in diverse Tracking-Tools einlaufen. In Google Analytics greifen wir immer häufiger auf Tasks zurück, um dieses Problem zu lösen.

Was sind Tasks?

Google Analytics gliedert die einzelnen Schritte, die bis zum Versand eines Tracking-Requests erfolgen müssen, in sogenannte Tasks. Diese Tasks übernehmen Unteraufgaben wie zum Beispiel die Validierung der Daten oder das Erstellen des Queries. Insgesamt gibt es zehn Tasks, die nacheinander durchlaufen werden, bis am Ende der Tracking-Request verschickt wird.

Welchen Task nutzen wir?

Mithilfe des buildHitTasks fangen den Tracking-Request ab und bereinigen personenbezogene Daten. Der buildHitTask ist der siebte Task in der Verarbeitungsreihenfolge und erhält alle einzelnen Tracking-Parameter, die im Folgenden verschickt werden. Wir nutzen genau diesen Augenblick, um nochmal gezielt gefährdete Tracking-Parameter zu prüfen und gegebenenfalls zu bereinigen. Danach lassen wir den original buildHitTask den Request für das Measurement-Protokoll zusammenbauen und die Verarbeitung wird fortgeführt.

Wie sieht die Implementierung aus?

Der Code zum Beeinflussen des Tasks wird über die ga()-Funktion an Google Analytics übergeben. Wichtig ist, dass dies ganz am Anfang geschieht, so dass nicht schon Tracking-Requests verschickt werden, bevor unser Task die Chance hat, einzugreifen.

Im Folgenden ist ein vereinfachtes Beispiel zu sehen, bei dem wir mit dem buildHitTask im Location-Parameter nach Email-Adressen suchen und diese verfremden.

ga(function () {

  // Wir müssen explizit den Tracker anfragen,
  // dessen buildHitTask wir beeinflussen wollen.
  // Es hilft daher, mit benannten Trackern zu arbeiten.
  var tracker = ga.getByName('myTracker');

  // Wir speichern den original buildHitTask,
  // um ihn später, wie sonst auch, noch auszuführen
  var originalBuildHitTask = tracker.get('buildHitTask');

  // Wir überschreiben den buildHitTask und übergeben
  // eine Funktion, die von Google für jeden Request
  // aufgerufen wird
  tracker.set('buildHitTask', function (model) {

    // Wir lesen den location-Parameter aus, bereinigen ihn
    // und schreiben ihn wieder zurück.
    var dl = model.get('location');
    model.set('location', dl.replace(/[\w\d]{3}\@[\w\d]{3}/g, 'xxx@xxx'));

    // Nach dem Bereinigen wird der ursprüngliche buildHitTask
    // aufgerufen, um die Verarbeitungskette fortzuführen.
    originalBuildHitTask(model);
  });
})

Was kann man noch mit Tasks machen?

Es gibt viele weitere Möglichkeiten, Tasks zu nutzen. Google selbst zeigt in der Dokumentation der Tasks das Beispiel, den Tracking-Request abzufangen und zusätzlich noch an einen eigenen Server zu schicken. Darüber lässt sich zum Beispiel ein Echtzeit-Dashboard oder eine Echtzeit-Datenverarbeitung mit Informationen versorgen.

Ebenso ist denkbar, dass man zusätzliche Validierungen einbaut und durch das Unterbrechen der Verarbeitungskette bei ungültigen Tracking-Aufrufen das Tracking komplett deaktiviert.

Weitere Artikel