2014-11-17 2 views
4

Я пытаюсь реализовать google tagmanager с помощью приложения rails, и у меня возникают проблемы с его тегами из-за turbolinks.Как запустить событие для использования google tagmanager с Turbolinks

Я видел этот ответ: Firing tags in GTM (Google Tag Manager) containers under turbolinks и это: Googletagmanager with Turbolinks Что сказать мне, что мне нужно, чтобы вызвать событие на странице: нагрузки, но я не могу показаться, чтобы вызвать событие. Я попытался положить

$(window).on('page:load', function() { 
    dataLayer.push({'event': 'event_name'}); 
}); 

в application.js файле, а также положить его в представлениях, и я также пытался через CoffeeScript с вариациями этого в CoffeeScript anayltics файле:

ready = -> 
    dataLayer.push({'event': 'event_name'}); 
$(document).ready(ready) 
$(document).on('page:load', ready) 

Но я все еще не могу заставить tagmanager google запускать его теги, когда я перехожу на другую страницу из-за turbolinks.

Любая помощь будет высоко оценена.

+0

Этот код помещает только событие в dataLayer. Какие правила и теги вы использовали в GTM для обработки этого события? – kevintechie

+0

У меня есть тег для CrazyEgg и включены в качестве правила стрельбы «Событие GTM», которое в качестве своего правила {{event}} содержит «event_name» - это то, что вы имеете в виду? – user3261603

+0

Да, вот что я имею в виду. Когда вы перейдете на другую страницу, откройте консоль JavaScript вашего браузера и введите «dataLayer», чтобы отобразить содержимое объекта dataLayer. Вы увидите несколько под-объектов. Если вы откроете четвертый объект, каков тип события? Вы видите какие-либо дополнительные под-объекты? Каковы их типы событий? – kevintechie

ответ

0

Вы можете использовать просмотр виртуальной страницы для отслеживания загрузки страниц турбо-ссылок. Добавьте следующий скрипт непосредственно перед тегом заголовка. Изменен стандартный GTM-скрипт, чтобы он работал с турбо-ссылками.

<!-- Google Tag Manager trigger for Turbolinks --> 
 
<script type="text/javascript"> 
 
$(document).on('page:change', function(){ 
 
    var url = window.location.href; 
 
    var data = { 
 
    'event':'pageView', 
 
    'virtualUrl': url 
 
    }; 
 
    if(window['referer'] !== undefined){ 
 
     data['pageReferrer'] = window['referer']; 
 
    }else{ 
 
     data['pageReferrer'] = document.referrer; 
 
    } 
 
    dataLayer.push(data); 
 
    window['referer'] = window.location.href; 
 
}); 
 
</script> 
 
<!-- End Google Tag Manager trigger for Turbolinks -->

Смежные вопросы