ga.js'ye giriş (Eski)

ga.js, kullanıcıların web sitenizle nasıl etkileşimde bulunduğunu ölçmek için kullanılan bir JavaScript kitaplığıdır. Bu eski bir kitaplık. Google Analytics'i kullanmaya yeni başladıysanız en yeni izleme kitaplığı olan analytics.js'yi kullanmanız gerekir.

İzleme Kodu 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 ekleyerek Google Analytics izlemeyi etkinleştirir. Sayfalarınızda kullanmak için aşağıdaki kod snippet'ini kopyalayıp UA-XXXXX-X, web mülkü kimliğinizle değiştirin. Bu snippet'i web sitenizin şablon sayfasına yapıştırarak </head> kapanış etiketinin hemen öncesine yapıştırın.

Temel sayfa izlemeden daha fazlasını yapmanız gerekiyorsa API'de bulunan yöntemlerin listesi için izleme referansına ve eşzamansız söz dizimini kullanmayla ilgili ayrıntılı bilgi için Kullanım Kılavuzu'na bakın. İzleme özelliğini ayarlamayla ilgili adım adım talimatlar için izleme kurulumu 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 özelliğini kullanır ve 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 son, eşzamansız sürüme güncelliyorsanız önce mevcut izleme snippet'ini kaldırmanız gerekir. İki snippet'i de aynı sayfada birlikte kullanmanızı önermeyiz. Taşıma talimatları için Eşzamansıza Geçiş bölümüne bakın.

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

Eşzamansız söz dizimini mümkün kılan _gaq nesnesidir. Bu, sıraya alınan ve API çağrılarını ga.js yürütmeye hazır olana kadar ilk gelen,ilk çıkan veri yapısıdır. Sıraya eklemek için _gaq.push yöntemini kullanın.

Bir API çağrısını sıraya aktarmak için geleneksel JavaScript söz diziminden komut dizisine dönüştürmeniz gerekir. Komut dizileri, belirli bir biçime uygun JavaScript dizileridir. Bir komut dizisindeki ilk öğe, çağırmak istediğiniz izleyici nesne yönteminin adıdır. 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() yöntemini çağırır:

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

Eşzamansız söz dizimindeki eşdeğer kod, _gaq.push için 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 yine de izleyici için web mülkü kimliğini ayarlamamız gerekir. Bu özelliği sağlamak için _setAccount yöntemi eklendi. 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 edinmek için _gaq.push yönteminin İzleme Referansı bölümüne bakın.

Başa Dön

HTML Etkinlik İşleyicileri ile izleme

Eşzamansız izleme söz dizimi, DOM etkinlik işleyicileri 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>

Tarayıcı ga.js öğesini yüklemeyi bitirmeden bu düğme 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, işlev nesnelerini _gaq sırasına da aktarabilirsiniz. İşlevler herhangi bir 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 sonuca sahip bir bağlantının 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, bir izleme nesnesi oluşturmak için _gat kullanılır ancak yerel bir değişkene atandığı için işlevin dışındaki kod bunu kullanamaz. Bu kabul edilebilir bir yöntem olmakla birlikte, _gat._createTracker yöntemini kullanarak kalıcı ve küresel olarak erişilebilir bir nesne oluşturabilirsiniz. Bu işlemin nasıl yapılacağını aşağıdaki kodda görebilirsiniz.

_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 komut dizisinde bu ada referans verir.

Bunun tersi bir durum da söz konusu olabilir. Örneğin, daha önce aktarılan bir komut dizisi aracılığıyla oluşturulan eşzamansız izleyici nesnesini kullanmanız gerekiyorsa _gat._getTrackerByName yöntemini kullanın. Aşağıdaki kod, işleyiş şeklini göstermektedir.

_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

Tek Push, Birden Fazla Komut

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

_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 öğeyi aktarmanıza olanak tanıyan Array.push yöntemini taklit eder.

Başa Dön

Snippet'i bölme

Analytics snippet'ini sayfanın en altına koymayı tercih ederseniz snippet'in tamamını en altına yerleştirmeniz gerekmediğini bilmeniz gerekir. 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 tutup geri kalanını alta taşıyın. İzleme snippet'inin ilk kısmının sayfa oluşturma üzerinde çok az etkisi olduğundan veya hiç etkisi olmadığından, snippet'i en üstte bırakıp snippet'in alt kısmına ga.js ekleyen kısmı ekleyebilirsiniz.

Eşzamansız snippet'in yarısına bölünmüş bir sayfa şu şekilde 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ı etiketleriyle sarmalanması gerekir ancak orijinal eşzamansız snippet'in yalnızca son altı satırının en alta taşınması gerekir. Yöntemleri _gaq öğesine aktaran tüm satırlar en üstte kalabilir.

Başa Dön

Sık Karşılaşılan Hatalardan 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.
    Başarılı bir büyük/küçük harf kullanımı olmadan bir yöntem adı kullanırsanız yöntem çağrılarınız çalışmaz. Örnekler:
    _gaq.push(['_trackpageview']);   // bad
    _gaq.push(['_trackPageview']);   // good
  • Doğru yöntem adlarını kullanın.
    İzlemeniz doğru çalışmıyorsa yöntem için doğru adı kullandığınızdan emin olun. Örnekler:
    _gaq.push(['_setDomain', 'example.com']);       // bad
    _gaq.push(['_setDomainName', 'example.com']);   // good
    
  • Yalnızca dizeler tırnak işaretleri içinde geçirilmelidir. Diğer tüm türler alıntılanmamış olarak bırakılmalıdır.
    Boole, nesne değişmez değeri, işlev veya dizi gibi dize olmayan bir değer, tırnak işaretleri olmadan geçirilmelidir. Dize olarak yorumlanması gereken bir öğeyi taşırken yalnızca tırnak işaretleri kullanın. Geleneksel söz diziminden geçiş yapıyorsanız tırnak işaretleri olmadan iletilen tüm işlev parametreleri eşzamansız söz diziminde alıntılanmamış halde 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, bunu yapmak için sitenizin gizlilik politikası, ziyaretçinin Google Analytics izlemeyi devre dışı bırakmasını sağlıyorsa 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 özelliği içeriyor. Google Analytics bir çerez ayarlamaya veya Google Analytics sunucularına verileri göndermeye çalıştığında bu özelliğin true olarak ayarlanıp ayarlanmadığını kontrol eder. Eklenti varsa, ziyaretçi Google Analytics Kapsamı Dışında Kalma Tarayıcı Eklentisi yüklü ile aynı etkiye sahiptir.

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

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

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 kodundan önce ayarlanmalıdır. Bu özellik, Google Analytics izleme özelliğini devre dışı bırakmak istediğiniz her sayfada ayarlanmalıdır. Bu özellik ayarlanmaz veya false (yanlış) değerine ayarlanırsa izleme işlevi normal şekilde çalışır.

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

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

Bu izleme kodunun çerezleri ayarlamasını veya verileri Google Analytics'e geri 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 her bir web mülkü için eşdeğer window['ga-disable-UA-XXXXXX-Y'] değişkenini, o sayfada Google Analytics izleme özelliğini tamamen devre dışı bırakacak şekilde true olarak ayarlamanız gerekir.

Örnek

Kullanıcılarınız için devre dışı bırakma işlevini sağlamak üzere kullanabileceğiniz bazı kod örnekleri aşağıda verilmiştir.

Devre dışı bırakma mantığını çalıştırmak 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'inden önce ekleyin. UA-XXXX-Y olan gaProperty değerini, sitenizde kullanılan mülkle 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. Çerez, gelecekte uzun süreli bir ç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ı, kapsam dışında kalma çerezinin ayarlanıp ayarlanmadığını kontrol eder. Bu özellik mevcutsa analytics.js veri toplama özelliği de devre dışı bırakılır.

SSL'yi (HTTPS) zorlama

Google Analytics'in güvenli olmayan sayfalardan (HTTP) bile her zaman SSL kullanarak veri göndermesini zorunlu kılmak için bu ö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