ga.js'ye (Eski) giriş

ga.js, kullanıcıların web sitenizle nasıl etkileşime girdiğini ölçen bir JavaScript kitaplığıdır. Bu eski bir kitaplık. Google Analytics'i kullanmaya başlıyorsanız en yeni izleme kitaplığı olan analytics.js'yi kullanmanız gerekir.

İzleme Kodu İçin Hızlı Başlangıç Kılavuzu

Analytics snippet'i, sayfalarınıza yapıştırdığınız küçük bir JavaScript kodu parçasıdır. Sayfaya ga.js parametresini ekleyerek Google Analytics izlemeyi etkinleştirir. Bunu sayfalarınızda kullanmak için aşağıdaki kod snippet'ini kopyalayıp UA-XXXXX-X yerine web mülkü kimliğinizi yazın. Bu snippet'i web sitenizin şablon sayfasına, kapanış </head> etiketinden önce görünecek şekilde yapıştırın.

Temel sayfa izlemeden daha fazlasını yapmanız gerekirse API'de sunulan yöntemlerin listesini görmek için izleme referansını, eşzamansız söz dizimini kullanmayla ilgili ayrıntılar için Kullanım Kılavuzu'nu inceleyin. İzlemenin ayarlanmasıyla ilgili adım adım talimatlar için izlemeyi ayarlama konulu Yardım Merkezi makalesini inceleyin.

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Yukarıdaki snippet, bir sayfayı eşzamansız olarak izlemek için gereken minimum yapılandırmayı temsil eder. Sayfanın web mülkü kimliğini ayarlamak için _setAccount kodunu kullanır ve ardından izleme verilerini Google Analytics sunucularına geri göndermek için _trackPageview yöntemini çağırır.

Önemli: Sayfalarınızı geleneksel snippet'ten en yeni eşzamansız sürüme güncelliyorsanız öncelikle mevcut izleme snippet'ini kaldırmanız gerekir. Her iki snippet'i aynı sayfada birlikte kullanmanızı önermeyiz. Taşıma talimatları için Async'e Taşıma sayfasına göz atın.

Eşzamansız Söz Dizimi Nasıl Çalışır?

_gaq nesnesi, eşzamansız söz dizimini mümkün kılar. Bir sıra görevi görür. ga.js, bu çağrıları gerçekleştirmeye hazır olana kadar API çağrılarını toplayan bir ilk gelen,ilk çıkar veri yapısıdır. Sıraya bir şey eklemek için _gaq.push yöntemini kullanın.

Sıraya bir API çağrısı aktarmak için çağrıyı geleneksel JavaScript söz diziminden komut dizisine dönüştürmeniz gerekir. Komut dizileri, belirli bir biçime uyan JavaScript dizileridir. Bir komut dizisindeki ilk öğe, çağırmak istediğiniz izleyici nesne yönteminin adıdır. Bu bir dize olmalıdır. Öğelerin geri kalanı, izleyici nesne yöntemine iletmek istediğiniz bağımsız değişkenlerdir. Bunlar herhangi bir JavaScript değeri olabilir.

Aşağıdaki kod, geleneksel söz dizimini kullanarak _trackPageview() çağrısı yapar:

var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();

Eşzamansız söz dizimindeki eşdeğer kod, _gaq.push öğesine iki çağrı gerektirir.

_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);

Eşzamansız söz diziminde, izleyici nesnesinin oluşturulması ima edilir, ancak izleyicinin web mülkü kimliğini ayarlamak için bir yönteme ihtiyacımız vardır. Bu özelliği sağlamak için _setAccount yöntemi eklenmiştir. Diğer tüm izleyici nesne yöntemleri hem eşzamansız hem de geleneksel izlemede aynıdır. Yalnızca söz dizimi farklıdır.

Eşzamansız söz dizimi hakkında daha fazla bilgi için _gaq.push yönteminin İzleme Referansı'nı inceleyin.

Başa Dön

HTML Etkinlik İşleyicileriyle İzleme

Eşzamansız izleme söz dizimi, DOM etkinlik işleyicilerin içinden de kullanılmalıdır. Örneğin aşağıdaki düğme, tıklandığında bir etkinlik oluşturur.

<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"></button>

Bu düğme, tarayıcı ga.js yüklemesini tamamlamadan önce tıklansa bile etkinlik yakalanır ve sonunda yürütülür. Geleneksel izleme kullanıldığında, tarayıcı bu durumda bir istisna oluşturabilir.

Başa Dön

İşlevleri Sıraya Aktarma

Komut dizilerine ek olarak _gaq sırasına işlev nesneleri aktarabilirsiniz. İşlevler rastgele JavaScript içerebilir ve komut dizileri gibi _gaq öğesine aktarıldıkları sırayla yürütülür. Bu teknik, değer döndüren izleme API'lerini çağırmak için yararlıdır. Örneğin, aşağıdaki kod bir bağlayıcı URL'si oluşturur ve sonucu içeren bir bağlantı için href özelliğini ayarlar.

_gaq.push(function() {
  var pageTracker = _gat._getTracker('UA-XXXXX-X');
  var link = document.getElementById('my-link-id');
  link.href = pageTracker._getLinkerUrl('http://example.com/');
});

Yukarıdaki örnekte izleyici nesnesi oluşturmak için _gat kullanılmaktadır ancak bir yerel değişkene atandığından işlevin dışındaki kod bunu kullanamaz. Bu kabul edilebilir olsa da kalıcı, küresel olarak erişilebilir bir nesne oluşturmak için _gat._createTracker yöntemini kullanabilirsiniz. Bu işlemin nasıl yapılacağı aşağıdaki kodda gösterilmiştir.

_gaq.push(function() {
  var pageTracker = _gat._createTracker('UA-XXXXX-X', 'myTracker');
  var link = document.getElementById('my-link-id');
  link.href = pageTracker._getLinkerUrl('http://example.com/');
});

_gaq.push(['myTracker._trackPageview']);

Yukarıdaki örnek, işlevin içinde eşzamansız bir izleyici oluşturur ve daha sonra bu izleyiciye, komut dizisinde adıyla başvurur.

Bunun tam tersi bir kullanım da söz konusudur. Örneğin, daha önce aktarılan bir komut dizisi aracılığıyla oluşturulmuş eşzamansız bir izleyici nesnesi kullanmanız gerekiyorsa _gat._getTrackerByName yöntemini kullanın. Aşağıdaki kodda sistemin işleyiş şekli gösterilmektedir.

_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']);

_gaq.push(function() {
  var pageTracker = _gat._getTrackerByName('myTracker');
  var link = document.getElementById('my-link-id');
  link.href = pageTracker._getLinkerUrl('http://example.com/');
});

Başa Dön

Bir İtme, Birden Çok Komut

Her çağrı için _gaq.push(...) yazmak yerine tüm komutlarınızı aynı anda aktarabilirsiniz. Aşağıdaki kod bu tekniği gösterir.

_gaq.push(
  ['_setAccount', 'UA-XXXXX-X'],
  ['_setDomainName', 'example.com'],
  ['_setCustomVar', 1, 'Section', 'Life & Style', 3],
  ['_trackPageview']
);

_gaq.push yöntemi, tek bir çağrıyla birden fazla öğenin aktarılmasına olanak tanıyan Array.push yöntemini taklit ettiği için bu işe yarar.

Başa Dön

Snippet'i Bölme

Analytics snippet'ini sayfanın en altına yerleştirmeyi tercih ederseniz tüm snippet'i en alta yerleştirmenize gerek yoktur. Snippet'i ikiye bölerek eşzamansız yüklemenin birçok avantajını koruyabilirsiniz. İlk yarısını sayfanın üst kısmında tutun ve diğer yarısını en alta taşıyın. İzleme snippet'inin ilk bölümünün sayfa oluşturma üzerinde çok az etkisi olduğundan veya hiç etkisi olmadığından, bu bölümü üstte bırakabilir ve snippet'in ga.js yerleştiren bölümünü en alta yerleştirebilirsiniz.

Eşzamansız snippet'in ikiye ayrıldığı bir sayfa aşağıdaki gibi görünebilir:

<html>

<head>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXX-X']);
    _gaq.push(['_trackPageview']);
  </script>
</head>

<body>
  <p>Page Content</p>

  <script src="some_random_script.js"></script>

  <p>Page Content</p>

  <script type="text/javascript">  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script> </body> </html>

Her iki kod parçasının da kendi komut dosyası etiketleri içine yerleştirilmesi gerekir ancak orijinal eşzamansız snippet'in yalnızca son altı satırı en alta taşınmalıdır. Yöntemleri _gaq üzerine aktaran tüm çizgiler en üstte kalabilir.

Başa Dön

Sık Karşılaşılan Tehlikelerden Kaçınma

Eşzamansız veya geleneksel söz dizimini kullanırken aşağıdakileri göz önünde bulundurun:

  • Yöntem adları büyük/küçük harfe duyarlıdır.
    Yöntem adını uygun büyük/küçük harf olmadan kullanırsanız yöntem çağrıları çalışmaz. Örnekler:
    _gaq.push(['_trackpageview']);   // bad
    _gaq.push(['_trackPageview']);   // good
  • Doğru yöntem adlarını kullanın.
    İzlemeniz düzgün çalışmıyorsa yöntem için doğru adı kullanıp kullanmadığınızı kontrol edin. Örnekler:
    _gaq.push(['_setDomain', 'example.com']);       // bad
    _gaq.push(['_setDomainName', 'example.com']);   // good
    
  • Yalnızca dizeler tırnak işaretleriyle geçirilmelidir. Diğer tüm türler tırnak işaretleri olmadan bırakılmalıdır.
    Boole değerleri, nesne değişmez değerleri, işlevler veya diziler gibi dize olmayan tüm değerler tırnak işaretleri olmadan geçirilmelidir. Dize olarak yorumlanması gereken bir şeyi geçirirken yalnızca tırnak işaretlerini kullanın. Geleneksel söz diziminden geçiş yapıyorsanız tırnak işaretleri olmadan geçirilen tüm işlev parametreleri, eşzamansız söz diziminde tırnak işaretleri olmadan kalmalıdır. Örnekler:
    _gaq.push(['_setAllowLinker', 'false']);    // bad
    _gaq.push(['_setAllowLinker', false]);      // good
    
  • Dizelerin başında veya sonunda boşluk olmadığından emin olun.
    Örnekler:
    _gaq.push(['_setAccount', ' UA-65432-1']);    // bad
    _gaq.push(['_setAccount', 'UA-65432-1']);     // good
    

Başa Dön

İzlemeyi Devre Dışı Bırakma

Bazı durumlarda, kod snippet'ini kaldırmak zorunda kalmadan bir sayfadaki Google Analytics izleme kodunu devre dışı bırakmak gerekebilir. Örneğin, sitenizin gizlilik politikası, bir ziyaretçinin Google Analytics izleme kapsamı dışında kalmayı seçmesi seçeneğini içeriyorsa bunu yapabilirsiniz.

ga.js izleme snippet'i artık true olarak ayarlandığında izleme snippet'inin Google Analytics'e veri göndermesini devre dışı bırakan bir pencere mülkü içeriyor. Google Analytics bir çerez ayarlamaya veya verileri Google Analytics sunucularına geri göndermeye çalıştığında, bu mülkün true değerine ayarlanıp ayarlanmadığını kontrol eder. Bu kod, ziyaretçinin Google Analytics Kapsamı Dışında Kalma Tarayıcı Eklentisi'ni yüklemiş olmasıyla aynı etkiyi yaratır.

İzlemeyi devre dışı bırakmak için aşağıdaki pencere özelliğini true olarak ayarlayın:

window['ga-disable-UA-XXXXXX-Y'] = true;

Burada UA-XXXXXX-Y değeri, izlemeyi devre dışı bırakmak istediğiniz web mülkü kimliğine karşılık gelir.

Bu pencere özelliği, izleme kodu çağrılmadan önce ayarlanmalıdır. Bu mülk, Google Analytics izlemeyi devre dışı bırakmak istediğiniz her sayfada ayarlanmalıdır. Özellik ayarlanmazsa veya false olarak ayarlanırsa izleme her zamanki gibi çalışır.

Bu nedenle, örneğin bir sayfadaki Google Analytics izleme kodunuz şunları içeriyorsa:

_gaq.push['_setAccount', 'UA-123456-1']

Bu izleme kodunun çerez oluşturmasını veya Google Analytics'e veri göndermesini devre dışı bırakmak istiyorsanız, izleme kodu çağrılmadan önce aşağıdaki kodu kullanırsınız:

window['ga-disable-UA-123456-1'] = true;

Birden fazla web mülkü kimliğine sahip bir sayfada birden fazla izleyici kullanıyorsanız söz konusu sayfada Google Analytics izlemesini tamamen devre dışı bırakmak için her bir web mülkü için eşdeğer window['ga-disable-UA-XXXXXX-Y'] değişkenini true olarak ayarlamanız gerekir.

Örnek

Kullanıcılarınıza kapsam dışında kalma işlevi sağlamak için kullanabileceğiniz bazı kodların basit bir örneğini burada bulabilirsiniz.

Öncelikle, devre dışı bırakma mantığını yürütmek için sitenize yeni bir HTML bağlantısı ekleyin:

<a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a>

Ardından, aşağıdaki kod snippet'ini ga.js kod snippet'inin önüne ekleyin. UA-XXXX-Y olan gaProperty değerini, sitenizde kullanılan özellikle değiştirdiğinizden emin olun. Bu, _setAccount komutuna ilettiğiniz değerle aynıdır.

<script>
// Set to the same value as the web property used on the site
var gaProperty = 'UA-XXXX-Y';

// Disable tracking if the opt-out cookie exists.
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
  window[disableStr] = true;
}

// Opt-out function
function gaOptout() {
  document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
  window[disableStr] = true;
}
</script>

Kullanıcı, kapsam dışında kalma HTML bağlantısını tıkladığında özel gaOptout işlevi yürütülür. Gelecekte uzun süre çerez oluşturur ve analytics.js veri toplama özelliğini devre dışı bırakır. Bir kullanıcı bu siteye döndüğünde, yukarıdaki komut dosyası devre dışı bırakma çerezinin ayarlanıp ayarlanmadığını kontrol eder. Ayarlanmışsa analytics.js veri toplama özelliği de devre dışı bırakılır.

SSL'yi (HTTPS) zorunlu kılma

Google Analytics'i, güvenli olmayan sayfalardan (HTTP) bile olsa her zaman SSL kullanarak veri göndermeye zorlamak için aşağıdaki örnekte olduğu gibi _gat._forceSSL yöntemini kullanın:

_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_gat._forceSSL']);       // Send all hits using SSL, even from insecure (HTTP) pages.
_gaq.push(['_trackPageview']);

Başa Dön