Panduan ini menjelaskan tugas, fitur lanjutan yang digunakan untuk menyesuaikan cara analytics.js memvalidasi, membuat, dan mengirim permintaan Measurement Protocol.
Ringkasan
Setiap kali perintah send
dipanggil, analytics.js menjalankan urutan tugas untuk memvalidasi, membuat, dan mengirim permintaan Measurement Protocol dari browser pengguna ke Google Analytics. Tabel berikut menjelaskan masing-masing tugas ini, sesuai urutan dijalankannya:
Nama Tugas | Deskripsi |
---|---|
customTask |
Secara default, tugas ini tidak melakukan apa pun. Ganti tugas tersebut untuk memberikan perilaku kustom. |
previewTask |
Membatalkan permintaan jika halaman hanya dirender untuk membuat thumbnail 'Situs Populer' untuk Safari. |
checkProtocolTask |
Membatalkan permintaan jika protokol halaman bukan http
atau https . |
validationTask |
Membatalkan permintaan jika kolom wajib diisi masih kosong atau tidak valid. |
checkStorageTask |
Membatalkan permintaan jika pelacak dikonfigurasi untuk menggunakan cookie, tetapi cookie browser pengguna dinonaktifkan. |
historyImportTask |
Mengimpor informasi dari cookie ga.js dan urchin.js untuk mempertahankan histori pengunjung saat situs bermigrasi ke Universal Analytics. |
samplerTask |
Mengambil sampel pengunjung berdasarkan setelan
sampleRate
untuk pelacak ini. |
buildHitTask |
Membuat string permintaan Measurement Protocol dan menyimpannya di
kolom hitPayload . |
sendHitTask |
Mengirimkan permintaan Measurement Protocol yang disimpan di
kolom hitPayload ke server Google Analytics. |
timingTask |
Otomatis membuat hit waktu kecepatan situs berdasarkan
setelan siteSpeedSampleRate untuk pelacak ini. |
displayFeaturesTask |
Mengirimkan hit tambahan jika fitur display diaktifkan dan hit sebelumnya belum dikirim dalam periode waktu tunggu yang ditetapkan oleh cookie fitur iklan (_gat). |
Setiap tugas ini diterapkan sebagai fungsi JavaScript yang menggunakan parameter model tunggal sebagai input. Model adalah objek sederhana yang memberikan akses ke semua kolom yang ditentukan di Referensi Kolom Analytics.js.
Tugas dapat diakses atau diganti menggunakan metode get
dan set
pelacak standar. Dengan metode ini, Anda dapat mengganti tugas dengan fungsi kustom Anda sendiri, atau mengoptimalkan fungsi yang ada dengan merangkai fungsi kustom Anda untuk dijalankan sebelum atau setelah tugas yang ada.
Penerapan
Bagian ini menjelaskan cara menambahkan fungsi baru ke tugas yang ada, mengganti fungsi tugas bawaan dengan kode kustom Anda sendiri, atau menonaktifkan fungsi tugas sepenuhnya.
Mengganti tugas
Untuk mengganti tugas, Anda dapat set
nilainya ke fungsi yang melakukan sesuatu yang berbeda. Alasan umum untuk mengganti tugas adalah untuk menghentikan fungsi saat menguji penerapan analytics.js.
Kode berikut mengganti sendHitTask
dengan fungsi yang mencatat payload hit ke konsol:
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'sendHitTask', function(model) {
console.log(model.get('hitPayload'));
});
Menambahkan ke tugas
Untuk menyisipkan fungsi baru, Anda dapat merangkai fungsi tugas kustom untuk dijalankan sebelum atau setelah tugas yang ada. Pada contoh di bawah, sendHitTask
diganti dengan fungsi tugas kustom yang terlebih dahulu memanggil fungsi sendHitTask
asli untuk mengirimkan beacon permintaan normal ke google-analytics.com/collection, lalu menjalankan kode kustom untuk mengirimkan salinan permintaan Measurement Protocol ke server lokal.
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');
Membatalkan Pemrosesan Tugas
Sebuah tugas dapat membatalkan pemrosesan tugas berikutnya dengan melempar pengecualian. Jika tugas yang melempar pengecualian dijalankan sebelum sendHitTask
, hal ini akan mencegah permintaan Measurement Protocol dikirim ke server Google Analytics. Dalam contoh di bawah, kami membatalkan permintaan setiap kali browser pengguna berisi cookie bernama 'testing' dengan nilai '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');
Menonaktifkan Tugas
Untuk menonaktifkan fungsi tugas bawaan, ganti dengan null.
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');