Agar Google Analytics dapat menentukan bahwa dua hit berbeda merupakan milik pengguna yang sama, ID unik, yang terkait dengan pengguna tertentu tersebut, harus dikirim bersama setiap hit.
Library analytics.js melakukan hal ini melalui kolom Client-ID, yaitu string unik yang dihasilkan secara acak dan disimpan di cookie browser, sehingga kunjungan berikutnya ke situs yang sama dapat dikaitkan dengan pengguna yang sama.
Secara default, analytics.js menggunakan satu cookie pihak pertama bernama
_ga
untuk menyimpan Client ID, tetapi nama, domain,
dan waktu habis masa berlaku cookie dapat disesuaikan. Cookie lain yang dibuat oleh analytics.js
mencakup _gid
, AMP_TOKEN
, dan
_gac_<property-id>
. Cookie ini menyimpan ID lain yang dihasilkan secara acak
dan informasi kampanye tentang pengguna.
Penggunaan cookie memungkinkan analytics.js mengidentifikasi pengguna unik pada sesi browser, tetapi tidak dapat mengidentifikasi pengguna unik pada browser atau perangkat yang berbeda. Jika situs Anda memiliki sistem autentikasi sendiri, Anda dapat menggunakan fitur User-ID, selain Client ID, untuk mengidentifikasi pengguna secara lebih akurat pada semua perangkat yang mereka gunakan untuk mengakses situs Anda.
Panduan ini menjelaskan cara menyesuaikan setelan cookie dan cara menetapkan kolom User-ID untuk mengukur aktivitas pengguna secara lebih akurat pada semua sesi.
Mengonfigurasi setelan kolom cookie
Tabel berikut menunjukkan nilai kolom cookie default yang digunakan oleh analytics.js:
Nama Kolom | Jenis Nilai | Nilai default |
---|---|---|
cookieName |
teks | _ga |
cookieDomain |
teks |
Hasil ekspresi JavaScript berikut:document.location.hostname
|
cookieExpires |
bilangan bulat | 63072000 (dua tahun, dalam detik) |
cookieUpdate |
boolean |
true
|
cookieFlags |
teks |
|
Untuk mengubah salah satu nilai tersebut, Anda dapat menentukannya dalam fieldObject
yang menerima perintah create
. Contoh:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
Kolom cookie yang paling sering ditetapkan adalah cookieDomain
, oleh karena itu, perintah create
menerima kolom cookieDomain
sebagai parameter ketiga opsional untuk
kemudahan:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Konfigurasi Domain Cookie Otomatis
Tag Google Analytics yang direkomendasikan menetapkan string 'auto'
untuk kolom
cookieDomain
:
ga('create', 'UA-XXXXX-Y', 'auto');
Penentuan 'auto'
sebagai cookieDomain
akan mengaktifkan konfigurasi domain cookie
otomatis, yang akan memberi tahu analytics.js agar otomatis menentukan domain
cookie terbaik untuk digunakan.
Konfigurasi domain cookie otomatis menetapkan cookie _ga
pada domain tingkat tertinggi
yang dimungkinkan. Misalnya, jika alamat situs Anda adalah blog.example.co.uk
,
analytics.js akan menetapkan domain cookie ke .example.co.uk
. Selain itu, jika
analytics.js mendeteksi bahwa Anda menjalankan server secara lokal (misalnya dengan localhost
),
analytic.js akan otomatis menetapkan cookieDomain
ke 'none'
.
Masa Berlaku Cookie
Setiap kali hit dikirim ke Google Analytics, waktu habis masa berlaku cookie akan
diperbarui menjadi waktu saat ini ditambah dengan nilai kolom cookieExpires
. Hal ini
berarti jika Anda menggunakan waktu default cookieExpires
selama dua tahun dan pengguna
mengunjungi situs Anda setiap bulan, cookie pengguna tersebut tidak akan pernah berakhir.
Jika Anda menetapkan waktu cookieExpires
ke 0
(nol) detik, cookie akan berubah
menjadi
cookie berbasis sesi
dan habis masa berlakunya setelah sesi browser saat ini berakhir:
Pembaruan cookie
Jika cookieUpdate
ditetapkan ke true
(nilai default), analytics.js akan
memperbarui cookie pada setiap pemuatan halaman. Hal ini akan memperbarui masa berlaku cookie agar ditetapkan
secara relatif terhadap kunjungan terbaru ke situs. Misalnya, jika masa berlaku
cookie ditetapkan menjadi satu minggu dan pengguna berkunjung setiap lima hari sekali
dengan browser yang sama, masa berlaku cookie akan diperbarui pada setiap kunjungan, sehingga
masa berlaku tersebut tidak pernah habis.
Jika ditetapkan ke false
, cookie tidak akan diperbarui di setiap pemuatan halaman. Hal ini mengakibatkan
masa berlaku cookie menjadi relatif terhadap saat pertama kali pengguna mengunjungi
situs.
Flag cookie
Menambahkan flag tambahan ke cookie saat ditetapkan. Flag harus dipisahkan dengan titik koma.
Mendapatkan Client ID dari cookie
Anda tidak boleh mengakses langsung kumpulan analytics.js cookie, karena format
cookie dapat berubah di masa mendatang. Sebagai gantinya, developer sebaiknya menggunakan
readyCallback
untuk menunggu
hingga analytics.js dimuat, lalu dapatkan nilai clientId
yang disimpan di
pelacak.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Menonaktifkan Cookie
Terkadang, Anda mungkin ingin menggunakan mekanisme penyimpanan sendiri (seperti
localStorage
atau
Pekerja Layanan)
untuk mempertahankan Client ID di semua sesi tanpa menggunakan cookie. Anda dapat menonaktifkan
analytics.js dari setelan cookie dengan menetapkan kolom storage
ke 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Jika Anda menyimpan kolom clientId
sendiri, pastikan Anda telah menetapkan
kolom cliendId
saat membuat pelacak.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Untuk menonaktifkan cookie _gac_<property-id>
, tetapkan
kolom storeGac
ke false
pada
perintah create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Menggunakan localStorage untuk menyimpan Client ID
Contoh kode berikut menunjukkan cara memodifikasi tag JavaScript untuk menyimpan Client ID
menggunakan localStorage
, bukan cookie:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
User-ID
User-ID memungkinkan analisis grup sesi, di semua perangkat, menggunakan string ID yang unik, persisten, dan tidak dapat diidentifikasi secara pribadi yang mewakili pengguna. Untuk mengetahui alasan Anda harus menerapkan User-ID, lihat Manfaat menggunakan fitur User-ID.
Untuk menerapkan User-ID dengan analytics.js:
- Sediakan ID string yang unik, persisten, dan tidak dapat diidentifikasi secara pribadi untuk mewakili setiap pengguna yang login. Biasanya ID ini disediakan oleh sistem autentikasi.
- Tetapkan User-ID pada pelacak:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Menangani autentikasi setelah pemuatan halaman
Saat membuat Aplikasi Web Satu Halaman atau situs dinamis lainnya yang menangani login pengguna setelah pemuatan halaman awal, proses penetapan nilai User-ID pada pelacak tidak dapat dilakukan pada waktu pembuatan.
Pada kasus seperti itu, Anda dapat menggunakan
perintah set
untuk menetapkan nilai pada
pelacak segera setelah nilai tersebut diketahui.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
Saat menggunakan pendekatan ini, hit yang dikirim sebelum kolom userId
ditetapkan tidak akan
berisi nilai User-ID. Namun, melalui proses yang dikenal sebagai
Penyatuan Sesi,
Google Analytics dapat mengaitkan hit ini dengan pengguna yang sesuai pada
waktu pemrosesan.