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