Tôi đang theo dõi Tải nút bấm trên một trang web có tính năng một dự án của tôi với mã này:theo dõi một nút tải về nhấp chuột với Analytics sử dụng các sự kiện
function trackDownload(link) {
try {
_gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
setTimeout('document.location = "' + link.href + '"', 100);
} catch (err) {}
return false;
}
Và nút là một cái gì đó như:
<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
Vì vậy, khi người dùng nhấp vào, sự kiện sẽ được chuyển đến Analytics và sau đó người dùng được chuyển hướng đến tệp.
Điều này cũng có thể áp dụng trên theo dõi liên kết bên ngoài, không có sự khác biệt.
Và bây giờ là câu hỏi của tôi. Tôi có thể chắc chắn rằng sự kiện Analytics được "xử lý" trước khi người dùng chuyển hướng không? Nếu không, chuyển hướng đó gây ra sự kiện bị mất? Hiện tại các sự kiện đang được theo dõi, nhưng tôi không thể chắc chắn rằng tất cả trong số đó là.
tôi đọc tôi cũng có thể thử một cái gì đó một chút khác nhau, đẩy chức năng chuyển hướng vào hàng đợi Analytics:
_gaq.push(function() { document.location = link.href; });
Nhưng nó không phải là rõ ràng nếu làm việc này hoặc nếu nó chỉ tương đương với trước đó. Trên thực tế, here người ta nói rằng "calls to _gaq.push [...] thực hiện các lệnh khi chúng được đẩy".
Có lẽ tôi có thể đẩy chuyển hướng trong '_gaq' như tôi đã đăng, và sau đó lặp lại nó trong khối' catch' và trong một 'setTimeout' bị trễ hơn (một hoặc hai giây). Vì vậy, nếu xảy ra sự cố với '_gaq', tôi có thể chắc chắn rằng người dùng sẽ sớm được chuyển hướng. –
Tôi đồng ý rằng setTimeout bị trì hoãn là cách xử lý trường hợp không phân tích.Tuy nhiên, tôi nghĩ rằng một hoặc hai giây có lẽ là một chút nhanh chóng. Ngoài ra, tôi chỉ nhận thấy rằng khối catch là không cần thiết - Tôi sẽ cập nhật câu trả lời của tôi. –
Trong thực tế, tôi không nhớ tại sao tôi đặt khối 'try..catch' đó :) Về thời gian chờ: Tôi có thể đặt một thời gian dài hơn (5 giây) và một spinner trên nút khi được nhấp. Vì vậy, người dùng nhanh hơn sẽ không có cảm giác rằng không có gì đang xảy ra ... –