2012-07-07 8 views
12

Tôi đang làm việc trên Tiện ích mở rộng của Google Chrome để sửa đổi một số trang nhất định bằng tập lệnh nội dung. Để hiểu khi nào và nơi những thay đổi đó được áp dụng, chúng tôi đã xem xét phân tích google vì chúng tôi sử dụng nó cho các thuộc tính web khác rồi.Theo dõi nội dung tập lệnh bằng Google Analytics

Chúng tôi bao gồm thư viện ga.js qua tệp kê khai và kích hoạt _trackPageview bằng cuộc gọi trang đồng bộ khi chúng tôi áp dụng thay đổi cho trang.

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

Sự cố ở đây là mỗi trangXem trong một miền khác được tính là lượt truy cập và khách truy cập mới. Có cách nào để phá vỡ nó? Ví dụ: nó sử dụng cơ sở dữ liệu mở rộng chrome sqlite hoặc kho khóa giá trị khóa trong trình duyệt để lưu trữ id người dùng duy nhất và truy cập vào miền id độc lập. Điều này có thể không?

Cảm ơn

Trả lời

18

Bạn không nên thực thi mã đó bên trong các trang web của người khác. Cấu hình Google Analytics hơi nhạy cảm và nếu trang web có triển khai tùy chỉnh, bạn có thể vi phạm cấu hình đó cho khách truy cập đó.

Bạn nên bao gồm Google Analytics trong trang nền của chính bạn. Và sau đó giao tiếp từ content_script trở lại trang nền của bạn mọi lúc bạn cần theo dõi một sự kiện.

Bằng cách bao gồm tập lệnh GA trên tập lệnh nền là tốt đẹp bởi vì bạn không can thiệp vào mã khác trên trang web và luôn thực thi từ cùng một miền và do đó sẽ sử dụng cùng một cookie không gây ra lượt truy cập/khách truy cập trùng lặp.

Dưới đây là thông tin thêm về cách cài đặt GA trên trang nền của bạn.

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

Và đây là các tài liệu cho truyền thông tin từ Scripts nội dung để trang nền của bạn:

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

+1

tốt ý tưởng với trang nền. Hãy để tôi thử điều đó. Tôi thấy hướng dẫn mở rộng GA nhưng dường như điều này chỉ áp dụng cho cửa sổ bật lên. Cảm ơn các mẹo một lần nữa. Tôi đăng ở đây nếu nó hoạt động. –

+1

Trang nền đã thực hiện! –

+0

Bạn có thể đặt phân tích trong khung nội tuyến đang được chèn thông qua tiện ích mở rộng chrome không? –

3

Như Eduardo nói trong câu trả lời của anh ấy bạn cần một trang nền, do đó có thể được thực hiện như thế:

trong số manifest.json tệp:

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

trong content_scripts.js bất cứ khi nào bạn muốn theo dõi sự kiện, gửi thư đến trang nền để kích hoạt sự kiện đó.

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']); 
     } 
    });