2009-08-06 34 views
54

Tôi đang viết một ứng dụng web được cho là được nhúng vào trang web của người khác (loại tiện ích con). Tôi đang sử dụng Google Analytics để theo dõi tất cả những người truy cập vào tất cả các phiên bản tập lệnh của tôi trên các trang web nhúng. Vấn đề là tôi không biết cách sử dụng nó để nó không can thiệp vào tài khoản Google Analytics của chính trang web đó. Tôi đang lưu trữ biến theo dõi trong một không gian tên, vì vậy tôi nghĩ rằng nên làm điều đó, nhưng tôi đã không nhận ra rằng GA lưu trữ các thiết lập của nó trong cookie (__utma, __utmz, vv), và các cookie này được cả hai trình theo dõi sử dụng, có hai trong số chúng trên cùng một trang ... Vì vậy, ví dụ: nếu tôi sử dụng _setVar để lưu trữ một số loại biến do người dùng xác định trong Google Analytics và trang nhúng thì thực hiện tương tự, chúng tôi ghi đè các giá trị của nhau ...google analytics - nhiều trình theo dõi trên một trang (xung đột cookie)

Tất nhiên sẽ dễ dàng nhất nếu Google cung cấp một cách để thay đổi tên của cookie thành một cookie tùy chỉnh, nhưng tôi không thể tìm thấy cách nào để thực hiện nó. Tôi đã nghĩ đến việc sử dụng tên miền hoặc đường dẫn cookie để buộc một cookie riêng biệt, nhưng điều này không hiệu quả, bởi vì nếu tôi đặt tên miền hoặc đường dẫn đến một tên nào đó ngoài tên miền/đường dẫn thực, thì cookie không thể đọc được cho trang sau khi tải lại. ..

Có ai biết cách để có hai trình theo dõi trên một trang và khiến họ sử dụng các cookie riêng biệt để chúng không ghi đè cài đặt của nhau không?

Hoặc, nếu điều đó hoàn toàn không thể - có dịch vụ phân tích nào khác có chức năng tương tự như GA trong đó điều này có thể không? (nó sẽ phải có các tính năng nâng cao như theo dõi sự kiện và chiến dịch ...)

+2

Tại sao bạn có quyền truy cập vào dữ liệu khách truy cập từ các trang web không thuộc về bạn? Thành phần của bạn được nhúng như thế nào? – pjp

+6

Vì tôi muốn biết tiện ích đang được sử dụng như thế nào. Nó thực sự là một trang web nhúng hơn là một widget, "widget" cho thấy một cái gì đó nhỏ và không phức tạp ... Nó được nhúng bằng cách chèn vào trang web, sau đó GUI của widget được tạo động trong Javascript, nó tải dữ liệu khác nhau bằng AJAX (JSONP) và sẽ theo dõi hành động của người dùng bên trong tiện ích bằng cách sử dụng Google Analytics. –

Trả lời

56

Dễ dàng thực hiện với mã theo dõi không đồng bộ mới.:)

https://developers.google.com/analytics/devguides/collection/gajs/#MultipleCommands

+1

Cảm ơn thông tin! –

+9

Liên kết được cập nhật: http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html # MultipleCommands – cope360

+4

Không dễ dàng như vậy, trong những tình huống đơn giản, nó hoạt động nhưng bạn nên becareful: xem các liên kết trong bài viết của Torok - Google không đề xuất nhiều tài khoản phân tích trên cùng một trang: https://developers.google.com/analytics/ Các tài nguyên/khái niệm/gaConceptsCookies? hl = nl-NL = Nếu bạn có nhiều tài khoản theo dõi cùng một thuộc tính web (ví dụ: trang hoặc tập hợp các trang), cả hai tài khoản sẽ đọc và đặt cùng một bộ cookie. Thiết lập này thường không được khuyến nghị. –

-3

This person có cùng sự cố với trợ giúp Google Analytics bốn triệu. Tôi muốn đề nghị xem xét các chủ đề. Nhưng thường xuyên GA không hỗ trợ nhiều trình theo dõi.

Tôi thích Clicky bản thân mình, nhưng nó tốn tiền.

+0

Vâng, tôi thấy điều đó, nhưng có vẻ như giải pháp được đề xuất là tải xuống tập lệnh GA và hack nó hoặc hack các biến nội bộ của nó từ bên ngoài - cả hai âm thanh đều nguy hiểm và không ổn định ... –

10

Không phải sử dụng các tên cookie khác nhau vì Google Analytics vui vẻ hoạt động với nhiều trình theo dõi trên cùng một trang. Xem câu trả lời cho câu hỏi Google Analytics - Multiple Trackers for Several Accounts?.

Cập nhật

Nó chỉ ra rằng sử dụng multiple trackers is a working method but has some pitfalls. Một trong số đó là bạn không thể áp dụng phân đoạn người dùng khác nhau cho mỗi người trong số họ. John Henson giải thích một cách giải quyết rằng coerces GA to use different cookies, có thể là bạn nên kiểm tra nó.

+0

Tôi không chắc chắn . Nếu cả hai trình theo dõi gọi _setVar để đặt biến theo dõi tùy chỉnh, có vẻ như chỉ có biến từ trình theo dõi thứ hai có thể được tìm thấy trong cookie và từ trình theo dõi đầu tiên bị mất. Trừ khi tôi đang làm một cái gì đó sai ... –

+0

@Psionides: và có vẻ như đó là sự thật - cho đến nay tôi luôn sử dụng các cài đặt tương tự cho các trình theo dõi khác nhau. Tôi đã cập nhật câu trả lời của mình. –

3

Theo số documentation được liệt kê bởi Török, có vẻ như câu trả lời đúng là sử dụng _setCookiePath. Điều này làm cho mỗi trình theo dõi sử dụng các cookie hoàn toàn khác nhau.

Ví dụ mã từ trang web:

<script type=”text/javascript”> 
    var pageTracker = _gat._getTracker(”UA-11111-1″); 

    pageTracker._setDomainName(’domain.com’); 

    pageTracker._setCookiePath(’/subdirectory/’); 
    pageTracker._trackPageview(); 

    var otherTracker = _gat._getTracker(”UA-22222-1″); 
    otherTracker._setDomainName(’domain.com’); 
    otherTracker._trackPageview(); 
</script> 

Khi bạn liên kết từ một tên miền khác, mỗi liên kết mà viết vào miền khác phải trông như thế này:

<a href="pageTracker._linkByPost('otherdomain.com/petStoreCart/legalTerms.php');" 

này sẽ bổ sung thêm Google Các giá trị chuỗi truy vấn cụ thể của Analytics sẽ được tập lệnh trên sử dụng để đặt cookie (source).

+0

Có, nhưng nó không hoạt động trên các tên miền - Tôi không thể đặt cookie cho tên miền khác được hiển thị trong thanh vị trí. Vì vậy, nếu tiện ích của tôi được nhúng vào ví dụ: http://website.com và tập lệnh được tải từ http://widget.com, sau đó tôi chỉ có thể đặt cookie cho http://website.com (và chính trang web nhúng cũng vậy) - và chúng tôi vẫn có một cuộc xung đột. –

+0

Đã thêm thông tin cho liên kết tên miền chéo. –

-2
var otherTracker = _gat._getTracker(”UA-22222-1″); 
otherTracker._setDomainName(’domain.com’); 
otherTracker._trackPageview(); 
1

Tôi đã sử dụng cấu trúc này trên các trang web trang web và khách hàng của chúng tôi và nó hoạt động như một nét duyên dáng ...

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js'  type='text/javascript'%3E%3C/script%3E")); 
</script> <script type="text/javascript"> 

try { 

//Original tracking 
var pageTracker_ORIG = _gat._getTracker("UA-XXXXXXX-1"); 
pageTracker_ORIG._setDomainName('.sleepinggiantmedia.co.uk'); 
pageTracker_ORIG._trackPageview(); 

//New Analytics tag 
var pageTracker_SGM = _gat._getTracker("UA-XXXXXXX-1"); 
pageTracker_SGM._setDomainName('.sleepinggiantmedia.co.uk'); 
pageTracker_SGM._trackPageview(); 


} catch(err) {} 

3

Có vẻ như Google khuyến cáo chống lại thực hành này :

Cài đặt nhiều phiên bản mã theo dõi Google Analytics trên một trang web duy nhất không phải là triển khai được hỗ trợ. Chúng tôi khuyên bạn nên xóa tất cả trừ một phiên bản và đảm bảo rằng bạn có mã từ đúng cấu hình được cài đặt trên mọi trang mà bạn muốn theo dõi.

https://support.google.com/analytics/bin/answer.py?hl=en-GB&answer=1032400

8

Trong trường hợp ai vẫn còn có vấn đề này và muốn một dán dễ dàng, vấn đề của tôi đã được sử dụng google của riêng tôi theo dõi cho mã của tôi mà đã được thêm vào các trang của người khác mà cũng có thể sử dụng theo dõi google . Tôi đã thử nghiệm này và xác nhận nó hoạt động như mong đợi:

var _gaq = _gaq || []; 

_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']); 
_gaq.push(['some_unique_name._trackPageview']); 

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

Tôi đang sử dụng cũng sử dụng sự kiện

_gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']); 

Nếu bất cứ ai nhìn thấy một vấn đề với nó, xin vui lòng cho tôi biết.

+2

Điều này làm việc hoàn hảo cho tôi - đơn giản và hiệu quả. – arlomedia

+0

Cảm ơn arlomedia. Phải mất một lúc để tìm ra từ trang này và nhiều trang khác khá phức tạp với các giải pháp. –

18

Bạn có thể cài đặt nhiều phiên bản mã theo dõi Google Analytics trên các trang web của mình để gửi dữ liệu đến nhiều thuộc tính trong tài khoản của mình. https://support.google.com/analytics/answer/1032400?hl=en

Hoặc bạn có thể sáng tạo và thực hiện theo các hướng dẫn sau của Google. https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers

<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-XXXX-Y', 'auto'); 
    ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'}); 
    ga('send', 'pageview'); 
    ga('newTracker.send', 'pageview'); 

</script> 
Các vấn đề liên quan