4

我試圖讓有Isotope谷歌分析建立瀏覽量哈希更改

下一堆的內容,以顯示每個哈希變化作爲谷歌分析瀏覽量主頁。最初,我打算將其作爲活動來做,但它確實應該是綜合瀏覽量。

所以我設置的修改GA:

(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-XXXXXXXX-X', {'allowAnchor': true}); 
ga('send', 'pageview', { 'page': location.pathname + location.search + location.hash}); 

在谷歌Analytics(分析),我現在看到的哈希標籤,如果有人去到一個特定的URL —例如:http://www.example.com/#pet-health 如果他們重新載入頁面,我看到哈希在GA中,但如果他們點擊同位素「導航」鏈接來獲取它,則不會。如果他們點擊,我只是看到「/」

在同位素射擊,我有什麼似乎並不奏效:

//Sets up filtering on click of Isotope navigational elements 
    $('#isotopeFilters a, .subnav a, #isotopeContainer .isotopeNav a, .page-template-page-home-php #logo').click(function(){ 
     var selector = $(this).attr('data-filter'); 
     var prettyselector = selector.substr(1); 
     ga('send', 'pageview', location.pathname+location.search+location.hash); 

     location.hash = prettyselector; 

     $('#isotopeFilters a, .subnav a').removeClass('active'); 
     $('a[class="' + prettyselector + '"]').addClass('active'); 

     $container.isotope({ 
      filter: selector, 
      itemSelector: '.item', 
      masonry: { 
       columnWidth: 270 
      }, 
      animationOptions: { 
      duration: 750, 
      easing: 'linear', 
      queue: false, 
     } 
     }); 
     return false; 
    }); 

我認爲,這條線在點擊功能會做訣竅:

ga('send', 'pageview', location.pathname+location.search+location.hash); 

我的語法不正確或缺少什麼東西?

//Fires Isotope functionality when hash/URL changes 
    $(window).hashchange(function(){ 
     if(location.hash!=''){ 
      var hashfilter = '.' + location.hash.substr(1); 
     }else{ 
      var hashfilter = '.home'; 
     } 

     $container.isotope({ 
      filter: hashfilter, 
      itemSelector: '.item', 
      masonry: { 
       columnWidth: 270 
      }, 
      animationOptions: { 
       duration: 750, 
       easing: 'linear', 
       queue: false, 
      } 
     }); 
     isotopeSubNav(); 
    }); 

    if(location.hash!=''){ 
     var hashfilter = '.' + location.hash.substr(1); 
     ga('send', 'pageview', location.pathname+location.search+location.hash); 
     $(hashfilter).addClass('active'); 
    } 

這是使用相同的語法,所以我假設,如果我解決一個,複製語法的hashchange功能將得到記錄爲好。

回答

8

要更改被髮送到GA頁路徑,你只是稍作修改代碼:

ga('send', 'pageview', {'page': location.pathname+location.search+location.hash}); 

更多信息可以在這裏找到:https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced?hl=en#fieldObject

+1

由於這個工程,但考慮更新的代碼,因爲它缺少右花括號'}'這給了語法錯誤。它看起來應該是這樣的: 'ga('send','pageview',{'page':location.pathname + location.search + location.hash});' – pkk

+1

謝謝,修正了錯誤! – nyuen

5

在發送發送pagepageview Google不建議撥打電話:

雖然從技術上講,瀏覽量匹配的發送命令接受 可選頁面字段作爲第三個參數,傳遞頁面字段 不建議在跟蹤單頁面應用程序時使用。這 是因爲通過發送命令傳遞的字段未在 跟蹤器上設置 - 它們僅應用於當前命中。如果您的應用程序發送任何非瀏覽量匹配 (例如事件或社交互動),則不更新跟蹤器 將導致問題,因爲這些匹配將與跟蹤器創建時的任何頁面值相關聯 。

用途:

ga('set', 'page', location.pathname+location.search+location.hash); 
ga('send', 'pageview'); 

Google Analytics guide on tracking Single Page Applications.