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.
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.
İş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/'); });
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.
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.
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
İ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']);