Görevler

Bu kılavuzda, analytics.js'nin Measurement Protocol isteklerini doğrulama, oluşturma ve gönderme şeklini özelleştirmek için kullanılan gelişmiş bir özellik olan görevler açıklanmaktadır.

Genel bakış

send komutu her çağrıldığında analytics.js, kullanıcının tarayıcısından Google Analytics'e bir Measurement Protocol isteği göndermek, doğrulamak ve oluşturmak için bir dizi görev yürütür. Aşağıdaki tabloda bu görevlerin her biri, yürütildikleri sıraya göre açıklanmıştır:

Görev Adı Açıklama
customTask Varsayılan olarak bu görev hiçbir şey yapmaz. Özel davranış sağlamak için bunu geçersiz kılın.
previewTask Sayfa yalnızca Safari için "En Popüler Siteler" küçük resmi oluşturmak üzere oluşturuluyorsa isteği iptal eder.
checkProtocolTask Sayfa protokolü http veya https değilse isteği iptal eder.
validationTask Gerekli alanlar eksik veya geçersizse isteği iptal eder.
checkStorageTask İzleyici, çerezleri kullanacak şekilde yapılandırılmışsa ancak kullanıcının tarayıcısında çerezler devre dışı bırakılmışsa isteği iptal eder.
historyImportTask Bir site Universal Analytics'e geçtiğinde ziyaretçi geçmişini korumak için ga.js ve urchin.js çerezlerinden bilgi içe aktarır.
samplerTask Bu izleyicinin sampleRate ayarına göre ziyaretçilerden örnekler toplar.
buildHitTask Bir Measurement Protocol istek dizesi oluşturur ve hitPayload alanında depolar.
sendHitTask hitPayload alanında depolanan Measurement Protocol isteğini Google Analytics sunucularına iletir.
timingTask Bu izleyici için siteSpeedSampleRate ayarına göre otomatik olarak bir site hızı zamanlama isabeti oluşturur.
displayFeaturesTask Görüntülü reklam özellikleri etkinse ve reklamcılık özellikleri çerezi (_gat) tarafından ayarlanan zaman aşımı süresi içinde önceki bir isabet gönderilmediyse ek bir isabet gönderir.

Bu görevlerin her biri, giriş olarak tek bir model parametresi alan bir JavaScript işlevi olarak uygulanır. Model, Analytics.js Alan Referansı'nda tanımlanan herhangi bir alana erişim sağlayan basit bir nesnedir.

Görevlere standart izleyici get ve set yöntemleri kullanılarak erişilebilir veya görevler değiştirilebilir. Bu yöntemleri kullanarak görevleri kendi özel işlevlerinizle değiştirebilir veya özel işlevlerinizi mevcut bir görevden önce ya da sonra yürütülecek şekilde zincirleyerek mevcut işlevleri geliştirebilirsiniz.

Uygulama

Bu bölümde, mevcut görevlere yeni işlevlerin nasıl ekleneceği, yerleşik görev işlevlerini kendi özel kodunuzla nasıl değiştireceğiniz veya bir görev işlevini tamamen nasıl devre dışı bırakacağınız açıklanmaktadır.

Bir görevi geçersiz kılma

Bir görevi geçersiz kılmak isterseniz farklı bir işlem yapan bir işleve set değerini ekleyebilirsiniz. Görevleri geçersiz kılmanın yaygın bir nedeni, analytics.js uygulamalarınızı test ederken işlevi saplamaktır.

Aşağıdaki kod sendHitTask öğesini, isabet yükünü konsola kaydeden bir işlevle değiştirir:

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

Bir göreve ekleme

Yeni işlevler eklemek için özel görev fonksiyonunuzu, mevcut bir görevden önce veya sonra yürütülecek şekilde zincirleyebilirsiniz. Aşağıdaki örnekte sendHitTask, google-analytics.com/collection adresine normal istek işaretçisi göndermek için ilk olarak orijinal sendHitTask işlevini çağıran, ardından Measurement Protocol isteğinin bir kopyasını yerel bir sunucuya göndermek üzere özel kodu yürüten bir özel görev işleviyle değiştirilmiştir.

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

Görev İşlemeyi İptal Etme

Bir görev, istisnai duruma yol açarak sonraki görevlerin işlenmesini iptal edebilir. İstisnayı bildiren görev sendHitTask öğesinden önce yürütülürse bu durum, Measurement Protocol isteğinin Google Analytics sunucularına gönderilmesini engeller. Aşağıdaki örnekte, kullanıcının tarayıcısı "true" değerine sahip "testing" adlı bir çerez içerdiğinde istek iptal edilir.

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

Görevi Devre Dışı Bırakma

Yerleşik görev işlevlerinden herhangi birini devre dışı bırakmak için onu null ile değiştirin.

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