Çerez ve Kullanıcı Tanımlama

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

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

Analytics.js, varsayılan olarak istemci kimliğini depolamak için _ga adlı tek bir birinci taraf çerezi kullanır ancak çerezin adı, alan adı ve geçerlilik süresinin tamamı özelleştirilebilir. analytics.js tarafından oluşturulan diğer çerezler: _gid, AMP_TOKEN ve _gac_<property-id>. Bu çerezler, rastgele oluşturulmuş diğer kimlikleri ve kullanıcı hakkındaki kampanya bilgilerini depolar.

Çerez kullanımı, analytics.js'nin göz atma oturumlarında benzersiz kullanıcıları tanımlamasına olanak tanır ancak farklı tarayıcı veya cihazlardaki benzersiz kullanıcıları tanımlayamaz. 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 İstemci Kimliği'nin yanı sıra User ID özelliğini de kullanabilirsiniz.

Bu kılavuzda, çerez ayarlarının nasıl özelleştirileceği ve kullanıcı oturumları genelindeki kullanıcı etkinliğini daha doğru bir şekilde ö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 kısa mesaj _ga
cookieDomain kısa mesaj Şu JavaScript ifadesinin sonucu:
document.location.hostname
cookieExpires tam sayı 63072000 (saniye cinsinden iki yıl)
cookieUpdate boolean true
cookieFlags kısa mesaj

Bu değerlerden herhangi birini değiştirmek için ilgili değeri create komutunu ilettiğiniz fieldObject bölümünde 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',
});

Ayarlanması gereken en yaygın çerez alanı cookieDomain'dir. Bu nedenle create komutu, cookieDomain alanını kolaylık sağlamak için isteğe bağlı bir üçüncü 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');

'auto' değerinin cookieDomain olarak belirtilmesi, analytics.js'nin kullanılacak en iyi çerez alanını otomatik olarak belirlemesini söyleyen otomatik çerez alanı yapılandırmasını etkinleştirir.

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

Google Analytics'e her isabet gönderildiğinde çerez geçerlilik süresi, geçerli saatin yanı sıra cookieExpires alanının değeri olacak şekilde güncellenir. Yani, varsayılan olarak iki yıllık bir süreyi cookieExpires kullanıyorsanız ve bir kullanıcı sitenizi her ay ziyaret ediyorsa çerezinin süresi hiçbir zaman dolmaz.

cookieExpires süresini 0 (sıfır) saniye olarak ayarlarsanız çerez, oturuma dayalı çereze dönüşür ve geçerli 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 işlem, çerez geçerlilik süresini siteye yapılan en son ziyarete göre ayarlanır. Örneğin, çerez geçerlilik süresi bir hafta olarak ayarlanırsa ve bir kullanıcı her beş günde bir aynı tarayıcıyı kullanarak ziyaret ederse çerez geçerlilik süresi her ziyarette güncellenir ve bu nedenle geçerlilik süresi hiçbir zaman sona ermez.

false olarak ayarlandığında, her sayfa yüklemesinde çerezler güncellenmez. Bu durum, bir çerezin geçerlilik süresinin kullanıcının siteyi ilk ziyaret ettiği zamana göre etkisidir.

Ayarlandığında çereze ek işaretler. İşaretler virgülle ayrılmış olmalıdır.

Çerez biçimi gelecekte değişebileceğinden, çerez analytics.js kümelerine doğrudan erişmemelisiniz. Bunun yerine, geliştiricilerin analytics.js yüklenene kadar beklemek için readyCallback kullanmaları, ardından izleyicide depolanan clientId değerini almaları gerekir.

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

Çerezleri Devre Dışı Bırakma

Bazı durumlarda, çerez kullanmadan oturumlarda istemci kimliğini korumak için kendi depolama mekanizmanızı (ör. localStorage veya Hizmet Çalışanı) kullanmak isteyebilirsiniz. storage alanını 'none' olarak ayarlayarak analytics.js'nin çerezleri 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ı ayarladığınızdan emin olmanı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 değerine 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 istemci kimliğini depolamak için 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');

User-ID

User-ID, kullanıcıyı temsil eden, kimlik ifşa eden bilgiler içermeyen ve benzersiz, kalıcı bir kimlik dizesiyle, 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ı başlıklı makaleyi inceleyin.

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

  1. Oturum açmış her kullanıcıyı temsil etmek için benzersiz, kalıcı ve kimlik bilgileri içermeyen dize dizelerinizi sağlayın. Bu kimlik çoğu zaman bir kimlik doğrulama sistemi tarafından sağlanır.
  2. İzleyicide User ID'yi ayarlayın:
ga('create', 'UA-XXXXX-Y', 'auto', {
  userId: USER_ID
});
ga('send', 'pageview');

Sayfa yüklendikten sonra kimlik doğrulamayı kullanma

Tek Sayfa Uygulamaları veya ilk sayfa yüklemesinden sonra kullanıcı oturum açmayı işleyen diğer dinamik web siteleri oluşturulurken, izleyicide kullanıcı kimliği değerini ayarlama işlemi oluşturma sırasında gerçekleşemez.

Bu tür durumlarda, izleyicide değer bilinir olmaz izleyicideki değeri 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ğerleri içermez. Bununla birlikte, Oturum Birleştirme olarak bilinen bir işlem sayesinde Google Analytics, bu isabetleri işleme sırasında doğru kullanıcıyla ilişkilendirebilir.