2012-07-07 80 views
12

我正在研究使用內容腳本修改某些網頁的Google Chrome擴展程序。爲了理解這些更改何時何地應用,我們正在研究谷歌分析,因爲我們已經將其用於其他網絡媒體資源。使用Google Analytics(分析)跟蹤內容腳本

我們通過清單文件包含ga.js庫,並在我們將更改應用到頁面時觸發帶有同步頁面調用的_trackPageview。這裏

var pageTracker = _gat._getTracker("UA-our-UA");  
pageTracker._setDomainName("none"); 
pageTracker._setAllowLinker(true);  
pageTracker._trackPageview(window.location.href); 

麻煩的是,在不同的領域各綜合瀏覽量計數作爲一個新的參觀遊客。它有辦法規避這種情況嗎?例如,它在瀏覽器中使用chrome擴展sqlite數據庫或鍵值存儲來存儲唯一的用戶ID和獨立訪問ID域。這可能嗎?

謝謝

回答

18

您不應該在其他人的網站內執行該代碼。 Google Analytics(分析)配置有點敏感,如果某個網站具有自定義實施,則可能會爲該訪問者打破該配置。

您應該在自己的後臺頁面中包含Google Analytics。然後,每次需要跟蹤事件時,都會將content_script通信回傳到您的背景頁面。

通過在後臺腳本中包含GA腳本很好,因爲您不會干擾網站上的其他代碼,並且始終從同一個域執行,因此將使用不會導致重複訪問/訪問者的相同Cookie。

以下是關於如何在您的背景頁上安裝GA的更多信息。

http://code.google.com/chrome/extensions/tut_analytics.html

而這裏的文檔傳遞從內容腳本的信息到你的背景頁:

http://code.google.com/chrome/extensions/messaging.html

+1

與背景頁面好主意。讓我嘗試一下。我看到了GA擴展指令,但它似乎只適用於彈出窗口。再次感謝您的提示。如果這個工作,我在這裏發佈。 – 2012-07-07 11:29:24

+1

背景頁做到了! – 2012-07-07 12:36:30

+0

可以在通過Chrome擴展注入的iframe中進行分析嗎? – 2017-10-26 19:03:45

3

正如愛德華多在他的回答,你需要一個背景頁說,這樣可以做到像這樣:

在您的manifest.json file:

, 
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'" 
, 

in content_scripts.js無論何時你想跟蹤事件,發送消息到後臺頁面來觸發該事件。

chrome.runtime.sendMessage({action: "yourEvent"}); 

background.js

(function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = 'https://ssl.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); 

    // here we receive the coming message from the content script page 
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { 
     if(request.action == "yourEvent"){ 
      _gaq.push(['_trackEvent', "eventCategory", 'eventType']); 
     } 
    }); 
相關問題