2

Я пытаюсь использовать Google Analytics (web) с моим программным обеспечением для полимеров (обновление объекта трекера в routing.html по this GA SPA doc). В качестве отправной точки я использовал комплект Polymer Starter Kit. Я не вижу никаких просмотров страниц, хотя, кроме / - какой способ отслеживания использования приложений?Polymer - использование приложения Google Analytics

routing.html

page('/topstories', function() { 
    app.route = 'topstories'; 
    window.ga('set', 'page', '/topstories'); 
}); 

page('/about', function() { 
    app.route = 'about'; 
    window.ga('set', 'page', '/about'); 
}); 

index.html

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-xxxxxxxxx-1', 'auto'); 
    ga('send', 'pageview'); 

</script> 

ответ

3

В дополнение к установке значения страницы на трекере, вы также должны отправить просмотр страницы попадание в Google Analytics , В ваши функции обратного вызова маршрута вам необходимо добавить строку:

ga('send', 'pageview'); 

Вы также можете написать функцию, которая делает все это для вас, так что вам не придется повторять set и send звонки каждый раз.

function updatePage(path) { 
    return function() { 
    app.route = path.slice(1); 
    ga('set', 'page', path); 
    ga('send', 'pageview'); 
    } 
} 

В ваши декларации маршрут страница будет выглядеть следующим образом:

page('/topstories', updatePage('/topstories')); 
page('/about', updatePage('/about')); 
+0

Интересно. Я работал в предположении, что просто установить значение на трекер будет достаточно, но ясно, что 'send' в основном скрипте выполняется только при загрузке страницы. Почти со школьной ошибкой с моей стороны :) – Insectatorious

+0

Да, я согласен, это может сбивать с толку вначале. Ознакомьтесь с этим разделом в разделе [Как работает analytics.js] (https://developers.google.com/analytics/devguides/collection/analyticsjs/#how-analytics-js-works), чтобы получить более крупный вид библиотека. –

1

Мое решение использует ППО-иш page.js обработчика:

// Routes 
page('*', scrollToTop, closeDrawer, function(ctx, next) { 
    ga('set', 'page', ctx.path); // simply add 
    ga('send', 'pageview');  // these rows 
    next(); 
}); 

Но это также срабатывает как / маршрут инициализируется, поэтому, чтобы не делать двойных посещений, удалите окончательный ga('send', 'pageview'); из вашего блока <script>.

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