Skip to content

Instantly share code, notes, and snippets.

@cihad
Last active May 9, 2020 19:17
Show Gist options
  • Save cihad/8ff6be6275a00fa44fbab22b15dd2a10 to your computer and use it in GitHub Desktop.
Save cihad/8ff6be6275a00fa44fbab22b15dd2a10 to your computer and use it in GitHub Desktop.
Rails, Turbolinks, Google Tag Manager, Google Analytics
Google Tag Manager sayfanizda:
1. Sol menuden Tetikleyiciler'e tikla
a. Yeni'ye tikla
1) Acilan sayfanin ustunde tetikleyici adi: Adsız Tetikleyiciyi turbolinksPageView olarak degistirdim.
2) Tetikleyici Yapılandırması'na tikla
a) Tetikleyici türü seçin: ---->Ozel etkinlik<------ (*)
b) Etkinlik adi: turbolinks:load (*)
c) Baska bir seye dokunmadan Kaydet diyelim.
2. Etiketlere tiklayalim. (*)
a. Yeni diyelim.
1) Acilan sayfanin ustunde etiket adi olarak ben "GA - All Pages - Page View" verdim.
2) Tetikleyicilere tikla
a) + tusuna tiklayacak turbolinksPageView'i sec
b) Kaydet
3. Gonder yayinla gitsin.
4. Calisiyor mu dene.
(*) Neden Ozel etkinlik ekledik?
Turbolinkste sayfa tamamen yuklenmedigi icin bunu google tag manager anlayamiyor.
Biz bu islemi elimizle manuel olarak javascript kodu ile sayfamizda
yapmamiz gerekiyor. Bu sekilde turbolinks:load eventi ateslendiginde biz de gtm'i
atesleyecegiz. Cok atesli olacak.
(*) Etkinlik adi olarak ben turbolinks:load verdim. Bu adi js kodunda push olarak kullanacagiz.
Siz farkli isimler verebilirsiniz. Yani turbolinks:load vermis olmam kafanizi karistirmasin.
Mesela "turbosayfayukleme" gibi bir isim de verebilirsiniz.
(*) Eger daha once ekledigimiz Google Analytics etiketi varsa, ve rails uygulamamizda
turbolinks kullaniyorsak bu etiketteki tetikleyiciyi 1 numarada ekledigimiz tetikleyiciyi ekleyelim.
Sayfa Görüntüleme tetikleyicisi varsa silelim. Neden? Cunku artik turbolinksin eventi olan turbolinks:load
ile kendi ozel tetikleyicimizi atesleyecegiz. Hatirlayalim bu turbolinks:load eventimiz sayfa yuklenince
atesleniyordu. (bkz. https://github.com/turbolinks/turbolinks#full-list-of-events)
Sayfa GOruntuleme tetikleyiisi yoksa Madde 2.a.2'den devam edelim.
<head>
<% if Rails.env.production? %>
<!-- Google Tag Manager -->
<script>
document.addEventListener('turbolinks:load', function(event) {
var url = event.data.url;
dataLayer.push({
'event': 'turbolinks:load', // Aciklamada belirttigim tetikleyicideki etkinlik adini girdik buraya.
'virtualUrl': url
});
});
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
})(window, document, 'script', 'dataLayer', KAPSAYICIIDSINIKENDIIDNIZILEDEGISTIRIN);
</script>
<!-- End Google Tag Manager -->
<% end %>
</head>
<body>
<% if Rails.env.production? %>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=KAPSAYICIIDSINIKENDIIDNIZILEDEGISTIRIN"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<% end %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment