ga.js, kullanıcıların web sitenizle nasıl etkileşime girdiğini ölçmeye yönelik 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ıç
Analytics snippet'i, sayfalarınıza yapıştırdığınız küçük bir JavaScript kodu parçasıdır. ga.js
öğesini sayfaya ekleyerek Google Analytics izleme özelliğini 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, </head>
kapanış etiketinden önce gelecek şekilde yapıştırın.
Temel sayfa izlemeden daha fazlasını yapmanız gerekiyorsa API'de sunulan yöntemlerin listesi için izleme referansına, eşzamansız söz diziminin kullanımı hakkında ayrıntılı bilgi için Kullanım Kılavuzu'na bakın. İzlemenin ayarlanmasıyla ilgili adım adım talimatlar için izlemeyi ayarlama hakkındaki 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. İki snippet'i de aynı sayfada kullanmanızı önermeyiz. Taşıma talimatları için Async'e Geçiş başlıklı makaleyi inceleyin.
Eşzamansız Söz Dizimi Nasıl Çalışır?
_gaq
nesnesi, eşzamansız söz dizimini mümkün kılar.
Sıra görevi görür. İlk gelen, ilk çıkar türündeki bir veri yapısıdır. ga.js
API çağrılarını yürütmeye hazır olana kadar bu çağrıları toplar. Sıraya öğe 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 uygun JavaScript dizileridir. Bir komut dizisindeki ilk öğe, çağırmak istediğiniz izleyici nesnesi yönteminin adıdır. Bu bir dize olmalıdır. Öğelerin geri kalanı, izleyici nesne yöntemine aktarmak 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, iki _gaq.push
çağrısını 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 ayarlamanın bir yolunu bulmamız gerekir. Bu işlevi 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 edinmek 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 izlemeyi kullanırken, bu durumda tarayıcı bir istisna belirleyebilir.
İşlevleri Sıraya Aktarma
Komut dizilerine ek olarak işlev nesnelerini de _gaq
sırasına 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 işlev 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.
Aşağıdaki kod bunun nasıl çalışacağını gösterir.
_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şvuruda bulunur.
Bunun tam tersi kullanım da mümkündür. Ö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 kod, sürecin nasıl çalıştığını gösterir.
_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 iletebilirsiniz. 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 koymanız gerekmez.
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, geri kalanını ise 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 ga.js
kodunu en alta yerleştiren snippet bölümünü 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ı da kendi komut dosyası etiketleri içine sarmalanmalıdır. Ancak orijinal eşzamansız snippet'in yalnızca son altı satırı alta taşınmalıdır. Yöntemleri _gaq
alanına 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.
Uygun büyük/küçük harf 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 düzgün ç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şaretiyle iletilmelidir. 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 iletilmelidir. Dize olarak yorumlanması gereken bir şeyi yazarken yalnızca tırnak işareti 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çine alınmamalıdır. Örnekler:_gaq.push(['_setAllowLinker', 'false']); // bad _gaq.push(['_setAllowLinker', false]); // good
- Dizelerin başında veya sonunda boşluk bulunmadığı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 kodunun devre dışı bırakılması gerekebilir. Örneğin, sitenizin gizlilik politikası, ziyaretçinin Google Analytics izleme özelliğini devre dışı bırakma seçeneği içeriyorsa bunu yapabilirsiniz.
ga.js
izleme snippet'i artık bir pencere mülkü içeriyor. Bu özellik true
olarak ayarlandığında izleme snippet'inin Google Analytics'e veri göndermesini devre dışı bırakır.
Google Analytics bir çerez ayarlamayı veya verileri Google Analytics sunucularına geri göndermeyi denediğinde, bu mülkün true
olarak ayarlanıp ayarlanmadığını kontrol eder. Öyleyse, ziyaretçinin
Google Analytics Kapsamı Dışında Kalma Tarayıcı Eklentisi'ni yüklemiş olmasıyla aynı etkiye sahip olur.
İ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 aralık özelliği, izleme kodu çağrılmadan önce ayarlanmalıdır. Bu mülk, Google Analytics izlemesini devre dışı bırakmak istediğiniz her sayfada ayarlanmalıdır. Bu özellik ayarlanmaz veya yanlış değerine ayarlanırsa izleme her zamanki gibi çalışır.
Dolayısıyla, örneğin bir sayfadaki Google Analytics izleme kodunuz aşağıdakileri 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 sunmak için kullanabileceğiniz kodlara dair basit bir örneği burada bulabilirsiniz.
Öncelikle, devre dışı bırakma mantığını uygulamak 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 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. Gelecekte uzun bir süre için çerez oluşturur ve analytics.js veri toplama özelliğini devre dışı bırakır.
Kullanıcı bu siteye geri 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 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']);