Aufgaben

In diesem Leitfaden werden Aufgaben beschrieben. Mit dieser erweiterten Funktion können Sie anpassen, wie mit analytics.js Measurement Protocol-Anfragen validiert, erstellt und gesendet werden.

Überblick

Jedes Mal, wenn der send-Befehl aufgerufen wird, führt analytics.js eine Reihe von Aufgaben aus, um eine Measurement Protocol-Anfrage vom Browser des Nutzers zu validieren, zu erstellen und an Google Analytics zu senden. In der folgenden Tabelle werden die einzelnen Aufgaben in der Reihenfolge ihrer Ausführung beschrieben:

Aufgabenname Beschreibung
customTask Standardmäßig hat diese Aufgabe keine Auswirkungen. Überschreiben Sie es, um ein benutzerdefiniertes Verhalten bereitzustellen.
previewTask Die Anfrage wird abgebrochen, wenn die Seite nur gerendert wird, um eine Miniaturansicht „Top-Websites“ für Safari zu generieren.
checkProtocolTask Bricht die Anfrage ab, wenn das Seitenprotokoll nicht http oder https ist.
validationTask Die Anfrage wird abgebrochen, wenn Pflichtfelder fehlen oder ungültig sind.
checkStorageTask Die Anfrage wird abgebrochen, wenn der Tracker für die Verwendung von Cookies konfiguriert ist, aber im Browser des Nutzers Cookies deaktiviert sind.
historyImportTask Importiert Informationen aus den Cookies ga.js und urchin.js, um den Besucherverlauf beizubehalten, wenn eine Website zu Universal Analytics migriert wird.
samplerTask Es werden anhand der Einstellung sampleRate für diesen Tracker Stichproben der Besucher genommen.
buildHitTask Erstellt einen Measurement Protocol-Anfragestring und speichert ihn im Feld hitPayload.
sendHitTask Überträgt die Measurement Protocol-Anfrage, die im Feld hitPayload gespeichert ist, an Google Analytics-Server.
timingTask Auf Grundlage der siteSpeedSampleRate-Einstellung für diesen Tracker wird automatisch ein Treffer für die Websitegeschwindigkeit generiert.
displayFeaturesTask Ein zusätzlicher Treffer wird gesendet, wenn display features aktiviert ist und kein vorheriger Treffer innerhalb des durch das Cookie für Werbefunktionen (_gat) festgelegten Zeitlimit gesendet wurde.

Jede dieser Aufgaben wird als JavaScript-Funktion implementiert, die einen einzelnen Modellparameter als Eingabe verwendet. Das Modell ist ein einfaches Objekt, das Zugriff auf alle Felder bietet, die in der Analytics.js-Feldreferenz definiert sind.

Aufgaben können mit den Standard-Tracker-Methoden get und set aufgerufen oder ersetzt werden. Mit diesen Methoden können Sie Aufgaben durch Ihre eigenen benutzerdefinierten Funktionen ersetzen oder die vorhandene Funktionalität erweitern, indem Sie Ihre benutzerdefinierten Funktionen verketten, die vor oder nach einer vorhandenen Aufgabe ausgeführt werden.

Implementierung

In diesem Abschnitt wird beschrieben, wie Sie vorhandenen Aufgaben neue Funktionen hinzufügen, die integrierten Aufgabenfunktionen durch Ihren eigenen benutzerdefinierten Code ersetzen oder eine Aufgabenfunktion vollständig deaktivieren.

Aufgaben überschreiben

Wenn Sie eine Aufgabe überschreiben möchten, können Sie deren Wert mit set auf eine Funktion übertragen, die etwas anderes ausführt. Ein häufiger Grund für das Überschreiben von Aufgaben ist die Stub-Funktion beim Testen Ihrer analytics.js-Implementierungen.

Der folgende Code ersetzt sendHitTask durch eine Funktion, die die Treffernutzlast in der Konsole protokolliert:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'sendHitTask', function(model) {
  console.log(model.get('hitPayload'));
});

Einer Aufgabe hinzufügen

Um neue Funktionen einzufügen, können Sie Ihre benutzerdefinierte Aufgabenfunktion so verketten, dass sie vor oder nach einer vorhandenen Aufgabe ausgeführt wird. Im folgenden Beispiel wird die sendHitTask durch eine benutzerdefinierte Aufgabenfunktion ersetzt, die zuerst die ursprüngliche sendHitTask-Funktion aufruft, um das normale Anfrage-Beacon an google-analytics.com/collection zu senden. Anschließend wird benutzerdefinierter Code ausgeführt, um eine Kopie der Measurement Protocol-Anfrage an einen lokalen Server zu senden.

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {

  // Grab a reference to the default sendHitTask function.
  var originalSendHitTask = tracker.get('sendHitTask');

  // Modifies sendHitTask to send a copy of the request to a local server after
  // sending the normal request to www.google-analytics.com/collect.
  tracker.set('sendHitTask', function(model) {
    originalSendHitTask(model);
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/localhits', true);
    xhr.send(model.get('hitPayload'));
  });
});

ga('send', 'pageview');

Aufgabenverarbeitung abbrechen

Eine Aufgabe kann die Verarbeitung nachfolgender Aufgaben durch Auslösen einer Ausnahme abbrechen. Wenn die Aufgabe, die die Ausnahme auslöst, vor dem sendHitTask ausgeführt wird, wird verhindert, dass die Measurement Protocol-Anfrage an die Google Analytics-Server gesendet wird. Im folgenden Beispiel wird die Anfrage immer dann abgebrochen, wenn der Browser des Nutzers ein Cookie namens „testing“ mit dem Wert „true“ enthält.

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {
  var originalBuildHitTask = tracker.get('buildHitTask');
  tracker.set('buildHitTask', function(model) {
    if (document.cookie.match(/testing=true/)) {
      throw 'Aborted tracking for test user.';
    }
    originalBuildHitTask(model);
  });
});

ga('send', 'pageview');

Aufgabe deaktivieren

Zum Deaktivieren einer der integrierten Aufgabenfunktionen ersetzen Sie sie durch null.

ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');