Lista zadań

W tym przewodniku opisano zadania – zaawansowaną funkcję używaną do dostosowania sposobu weryfikacji, tworzenia i wysyłania żądań poprzez platformę Measurement Protocol.

Przegląd

Przy każdym wywołaniu polecenia send tag analytics.js wykonuje sekwencję zadań, aby zweryfikować, utworzyć i wysłać z przeglądarki użytkownika do Google Analytics żądanie protokołu pomiarowego. Tabela poniżej opisuje każde z tych zadań w kolejności wykonywania:

Nazwa zadania Opis
customTask Domyślnie to zadanie nie przynosi żadnych rezultatów. Zastąp je, aby zapewnić niestandardowe zachowanie.
previewTask Przerywa żądanie, jeśli strona jest renderowana tylko w celu wygenerowania miniatury „Najpopularniejsze witryny” dla Safari.
checkProtocolTask Przerywa żądanie, jeśli protokół strony jest inny niż http lub https.
validationTask Przerywa żądanie, jeśli brakuje wymaganych pól lub są one nieprawidłowe.
checkStorageTask Przerywa żądanie, jeśli moduł śledzenia jest skonfigurowany do używania plików cookie, ale w przeglądarce użytkownika są one wyłączone.
historyImportTask Importuje informacje z plików cookie ga.js i urchin.js, aby zachować historię użytkowników po migracji witryny do Universal Analytics.
samplerTask Próbkuje użytkowników na podstawie ustawienia sampleRate tego trackera.
buildHitTask Tworzy ciąg znaków żądania platformy Measurement Protocol i zapisuje go w polu hitPayload.
sendHitTask Przekazuje żądanie platformy Measurement Protocol zapisane w polu hitPayload do serwerów Google Analytics.
timingTask Automatycznie generuje trafienie czasowe związane z szybkością witryny na podstawie ustawienia siteSpeedSampleRate tego narzędzia śledzącego.
displayFeaturesTask Wysyła dodatkowe działanie, jeśli włączone są funkcje wyświetlania, a poprzednie działanie nie zostało wysłane w czasie oczekiwania określonym przez plik cookie funkcji reklamowych (_gat).

Każde z tych zadań jest implementowane jako funkcja JavaScriptu, która pobiera jako dane wejściowe pojedynczy parametr modelu. Model to prosty obiekt, który zapewnia dostęp do dowolnego pola określonego w opisie pól w Analytics.js.

Zadania można przeglądać i zastępować za pomocą standardowego narzędzia śledzenia get i set. Korzystając z tych metod, możesz zastępować zadania własnymi funkcjami niestandardowymi lub wzbogacać obecne funkcje przez tworzenie łańcuchów ich wykonywania przed istniejącym zadaniem lub po nim.

Implementacja

W tej sekcji opisujemy, jak dodawać nowe funkcje do istniejących zadań, zastępować wbudowane funkcje zadań własnym kodem niestandardowym lub całkowicie wyłączyć poszczególne funkcje.

Zastępowanie zadania

Aby zastąpić zadanie, możesz set zastosować jego wartość do funkcji, która wykonuje coś innego. Częstym powodem zastępowania zadań jest użycie funkcji stub podczas testowania implementacji biblioteki analytics.js.

Ten kod zastępuje sendHitTask funkcją, która rejestruje ładunek działania w konsoli:

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

Dodawanie do zadania

Aby wstawić nową funkcję, możesz utworzyć łańcuch, aby niestandardowa funkcja zadania była wykonywana przed istniejącym zadaniem lub po nim. W poniższym przykładzie funkcja sendHitTask jest zastępowana niestandardową funkcją zadania, która najpierw wywołuje pierwotną funkcję sendHitTask, aby wysłać zwykły obraz typu beacon na adres google-analytics.com/collection, a potem wykonuje niestandardowy kod, aby wysłać kopię żądania platformy Measurement Protocol na serwer lokalny.

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');

Przerywanie przetwarzania zadań

Zadanie może przerwać przetwarzanie kolejnych zadań przez zgłoszenie wyjątku. Jeśli zadanie wywołujące wyjątek zostanie wykonane przed sendHitTask, w efekcie uniemożliwi to wysłanie żądania platformy Measurement Protocol do serwerów Google Analytics. W poniższym przykładzie przerywamy żądanie, gdy przeglądarka użytkownika zawiera plik cookie o nazwie „testing” i wartości „true”.

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');

Wyłączanie zadania

Aby wyłączyć dowolną z wbudowanych funkcji zadań, zastąp ją wartością null.

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