Çerez ve Kullanıcı Tanımlama

Google Analytics'in iki farklı isabetin aynı kullanıcıya ait olduğunu belirlemesi için her bir isabetle birlikte söz konusu kullanıcıyla ilişkilendirilmiş benzersiz bir tanımlayıcı gönderilmelidir.

analytics.js kitaplığı bunu, tarayıcı çerezlerinde depolanan benzersiz, rastgele oluşturulmuş bir dize olan Client-ID alanı aracılığıyla gerçekleştirir. Böylece, aynı siteye daha sonra yapılan ziyaretler aynı kullanıcıyla ilişkilendirilebilir.

Varsayılan olarak analytics.js, İstemci Kimliği'ni depolamak için _ga adlı tek bir birinci taraf çerezi kullanır. Ancak çerezin adı, alanı ve geçerlilik süresinin tamamı özelleştirilebilir. analytics.js tarafından oluşturulan diğer çerezler arasında _gid, AMP_TOKEN ve _gac_<property-id> yer alır. Bu çerezler, kullanıcı hakkında rastgele oluşturulmuş diğer kimlikleri ve kampanya bilgilerini depolar.

Çerez kullanmak, analytics.js'nin tarama oturumları genelinde benzersiz kullanıcıları tanımlamasına olanak tanır ancak farklı tarayıcılar veya cihazlar genelinde tekil kullanıcıları tespit edemez. Sitenizin kendi kimlik doğrulama sistemi varsa bir kullanıcıyı sitenize erişmek için kullandığı tüm cihazlarda daha doğru bir şekilde tanımlamak için Client-ID'nin yanı sıra User ID özelliğini kullanabilirsiniz.

Bu kılavuzda, çerez ayarlarının nasıl özelleştirileceği ve oturumlar genelinde kullanıcı etkinliğini daha doğru ölçmek için User-ID alanının nasıl ayarlanacağı açıklanmaktadır.

Aşağıdaki tabloda, analytics.js tarafından kullanılan varsayılan çerez alanı değerleri gösterilmektedir:

Alan adı Değer Türü Varsayılan değer
cookieName text (metin) _ga
cookieDomain text (metin) Şu JavaScript ifadesinin sonucu:
document.location.hostname
cookieExpires tam sayı 63072000 (saniye cinsinden iki yıl)
cookieUpdate boolean true
cookieFlags text (metin)

Bu değerlerden herhangi birini değiştirmek için create komutunu kullanarak fieldObject politikasında belirtebilirsiniz. Örneğin:

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

Ayarlanacak en yaygın çerez alanı cookieDomain'dir. Bu nedenle, create komutu, cookieDomain alanını kolaylık sağlamak için isteğe bağlı üçüncü bir parametre olarak kabul eder:

ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');

Önerilen Google Analytics etiketi, cookieDomain alanı için 'auto' dizesini ayarlar:

ga('create', 'UA-XXXXX-Y', 'auto');

cookieDomain olarak 'auto' belirtilmesi, otomatik çerez alan adı yapılandırmasını etkinleştirir. Bu yapılandırma, analytics.js'ye kullanılacak en iyi çerez alanını otomatik olarak belirlemesini sağlar.

Otomatik çerez alan yapılandırması, _ga çerezini mümkün olan en üst düzey alanda ayarlar. Örneğin, web sitesi adresiniz blog.example.co.uk ise analytics.js, çerez alan adını .example.co.uk olarak ayarlar. Ayrıca analytics.js, bir sunucuyu yerel olarak (ör. localhost) çalıştırdığınızı algılarsa cookieDomain öğesini otomatik olarak 'none' şeklinde ayarlar.

Google Analytics'e her isabet gönderilişinde çerezin geçerlilik süresi, geçerli süreye cookieExpires alanındaki değerin eklenmesiyle hesaplanarak güncellenir. Yani, iki yıllık varsayılan cookieExpires zamanını kullanırsanız ve bir kullanıcı sitenizi her ay ziyaret ederse çerezinin süresi hiçbir zaman dolmaz.

cookieExpires süresini 0 (sıfır) saniye olarak ayarlarsanız çerez oturuma dayalı bir çereze dönüşür ve mevcut tarayıcı oturumu sona erdiğinde çerezin süresi dolar:

cookieUpdate, true (varsayılan değer) olarak ayarlandığında analytics.js, her sayfa yüklemesinde çerezleri günceller. Bu durumda çerez geçerlilik süresi siteye yapılan en son ziyarete göre ayarlanarak güncellenir. Örneğin, çerez geçerlilik süresi bir hafta olarak ayarlanırsa ve kullanıcı beş günde bir aynı tarayıcıyı kullanarak siteyi ziyaret ederse çerez geçerlilik süresi her ziyarette güncellenir ve süresi hiçbir zaman dolmaz.

Bu parametre false olarak ayarlandığında çerezler her sayfa yüklenişinde güncellenmez. Bu durumda çerez geçerlilik sonu, kullanıcının siteye yaptığı ilk ziyarete göre hesaplanır.

Ayarlandığında çereze ek işaretler ekler. İşaretler noktalı virgülle ayrılmalıdır.

Çerez biçimi ileride değişebileceği için analytics.js kümelerine doğrudan erişmemelisiniz. Geliştiriciler bunun yerine analytics.js yüklenene kadar beklemek için readyCallback kullanmalı ve ardından izleyicide depolanan clientId değerini almalıdır.

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Çerezleri Devre Dışı Bırakma

Bazı durumlarda, istemci kimliğini çerez kullanmadan oturumlar arasında korumak için kendi depolama mekanizmanızı (ör. localStorage veya Service Worker) kullanmak isteyebilirsiniz. storage alanını 'none' değerine ayarlayarak analytics.js'nin çerez ayarlamasını devre dışı bırakabilirsiniz.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none'
});

clientId alanını kendiniz depoluyorsanız izleyiciyi oluştururken cliendId alanını ayarlamanız gerekir.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none',
  'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3'
});

_gac_<property-id> çerezlerini devre dışı bırakmak için create komutunda storeGac alanını false olarak ayarlayın:

ga('create', 'UA-XXXXX-Y', {
  storeGac: false,
});

İstemci Kimliğini depolamak için localStorage'ı kullanma

Aşağıdaki kod örneğinde, JavaScript etiketini çerezler yerine Client-ID'yi depolamak üzere localStorage kullanacak şekilde nasıl değiştirebileceğiniz gösterilmektedir:

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

Kullanıcı Kimliği

User ID, kullanıcıyı temsil eden ancak kimlik ifşa eden bilgiler içermeyen, benzersiz, kalıcı bir kimlik dizesi sayesinde cihazlar arasında oturum gruplarının analiz edilebilmesine olanak tanır. User ID'yi neden uygulamanız gerektiğini öğrenmek için User ID özelliğini kullanmanın avantajları bölümüne bakın.

analytics.js ile User-ID'yi uygulamak için:

  1. Oturum açmış her kullanıcıyı temsil edecek benzersiz, kalıcı ve kimlik bilgisi içermeyen kendi dize kimliğinizi sağlayın. Bu kimlik genellikle bir kimlik doğrulama sistemi tarafından sağlanır.
  2. Takip cihazında User-ID'yi ayarlayın:
ga('create', 'UA-XXXXX-Y', 'auto', {
  userId: USER_ID
});
ga('send', 'pageview');

Sayfa yüklemesinden sonra kimlik doğrulamayı işleme

Tek Sayfalık Uygulamalar veya ilk sayfa yüklemesinden sonra kullanıcı oturum açma işlemini gerçekleştiren diğer dinamik web siteleri oluştururken, izleyicide User-ID değerini oluşturma işlemi oluşturma sırasında gerçekleşemez.

Bu gibi durumlarda, izleyicideki değeri bilinir hale gelir gelmez ayarlamak için set komutunu kullanabilirsiniz.

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

Bu yaklaşım kullanılırken userId alanı ayarlanmadan önce gönderilen isabetler User-ID değerlerini içermez. Ancak Google Analytics, Oturum Birleştirme olarak bilinen bir işlemle, işlem zamanında bu isabetleri doğru kullanıcıyla ilişkilendirebilir.