Ç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şkilendirilen benzersiz bir tanımlayıcı gönderilmesi gerekir.

analytics.js kitaplığı bunu İstemci Kimliği alanı aracılığıyla yapar. Bu, 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, istemci kimliğini depolamak için varsayılan olarak _ga adlı tek bir birinci taraf çerezi kullanır ancak çerezin adı, alanı ve geçerlilik süresi ö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.

Çerezler, analytics.js'nin farklı tarayıcı oturumlarındaki tekil kullanıcıları tanımlamasına olanak tanır ancak farklı tarayıcı veya cihazlardaki benzersiz 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'ye ek olarak User ID özelliğini de 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) Aşağıdaki 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 içinde 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'tir. Bu nedenle, create komutu, cookieDomain alanını kolaylık sağlamak amacıyla 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 bildirir.

Otomatik çerez alan yapılandırması, _ga çerezini mümkün olan en üst düzey alanda ayarlar. Örneğin, web sitenizin adresi blog.example.co.uk ise analytics.js, çerez alanını .example.co.uk olarak ayarlar. Ayrıca, analytics.js, yerel olarak bir sunucu (ör. localhost) çalıştırdığınızı tespit ederse cookieDomain değerini 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. Diğer bir deyişle, iki yıllık varsayılan cookieExpires süresini 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 işlem, çerez geçerlilik süresini siteye yapılan en son ziyarete göre ayarlanacak şekilde günceller. Örneğin, çerezin 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 geçerlilik süresi hiçbir zaman geçerli olmaz.

Bu ayar 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ğinden, çerez analytics.js gruplarına 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ırlar.

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ı 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 olarak ayarlayın:

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

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

Aşağıdaki kod örneğinde, çerezler yerine Client-ID'yi depolamak için localStorage kullanmak üzere JavaScript etiketini 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 kimliği tanımlayabilecek 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ı'na göz atın.

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

  1. Oturum açmış her kullanıcıyı temsil edecek benzersiz, kalıcı ve kişisel olarak tanımlanamayan dize kimliğinizi sağlayın. Bu kimlik genellikle 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

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

Bu gibi durumlarda, izleyicideki değeri öğrenilir öğrenmez 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şlem aracılığıyla, işlem zamanında bu isabetleri doğru kullanıcıyla ilişkilendirebilir.