2009-07-31 38 views
8

Tôi đang cố gắng theo dõi số lần nhấp qua Google Analytics mà không dẫn đến yêu cầu mới. Cụ thể, nhấp vào các tab được tạo thông qua jQuery UI tabs widget. Tôi đang sử dụng phiên bản cũ hơn của mã ('nhím theo dõi') và cố gắng để đăng nhập nhấp chuột như vậy:Cách theo dõi các thẻ liên kết với Google Analytics

$('.ui-tabs-nav li a').click(function() { 
    val = "/tab/" + $(this).attr('href'); 

    // when uncommented, the following line reports, for example: 
    // /tab/#main 
    // as expected. 
    // console.log(val); 

    res = urchinTracker(val); 
}); 

Cùng một phương pháp hoạt động, trong trường hợp khác, mà chỉ có ý nghĩa khác biệt, như xa như tôi có thể nói, là thiếu biểu tượng băm (#) trong chuỗi. Có phải nhân vật đó không được phép trong một chuỗi được theo dõi bởi urchinTracker() hoặc có thể có một số nguyên nhân khác (không phải ai đã nhấp vào liên kết!)?

Trả lời

8

Theo mặc định, Google Analytics vô hiệu hóa tracking anchor tags. Để kích hoạt nó cho mã theo dõi cũ, sử dụng các hình thức sau đây:

_uanchor = 1; 
urchinTracker(val); 

Thiết lập một giá trị cho biến _uanchor là tương đương với việc gọi phương thức _setAllowAnchor khi sử dụng cơ sở mã GA mới nhất. (Bạn tìm thấy so sánh chi tiết trong số Google Analytics Tracking Code Migration Guide - liên kết này đã lỗi thời).

Phương pháp _setAllowAnchor được mô tả trên Google Reference Site.

+3

Trừ khi tôi bỏ lỡ điều gì đó, điều này hoàn toàn sai. Kỹ thuật này chỉ hợp lệ cho các trang đích (thường là theo dõi chiến dịch) không phải cho các liên kết được neo trong trang. – pdeschen

+1

Ngày nay (tháng 5 năm 2013) điều này có lẽ là cách để xử lý nó: http://stackoverflow.com/a/6756202/565110 –

+1

Câu trả lời này thực sự là không chính xác và không được chấp nhận. '_setAllowAnchor' làm cho GA diễn giải biểu tượng' # 'làm dấu phân tách cho các tham số URL của chiến dịch, thay vì ký tự'? '. Từ tài liệu: "Nếu bạn đặt tùy chọn này thành true, URL theo dõi chiến dịch của bạn có thể sử dụng dấu thăng (#) thay vì dấu chấm hỏi (?) Để cho biết bắt đầu chuỗi truy vấn". Một lần nữa, điều này không liên quan gì đến việc theo dõi các nhấp chuột trên các liên kết có 'src' tham chiếu đến một neo trong trang. – steveluscher

3

Tóm lại, Google Analytics không thể theo dõi các liên kết trên trang có chứa ký tự '#'. Nhấp chuột vào index.html # foo được coi đơn giản là nhấp chuột vào index.html, với mọi thứ sau khi '#' bị bỏ qua.

Bạn có thể xem xét thoát nhân vật '#':

$('.ui-tabs-nav li a').click(function() { 
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&'); 

    // when uncommented, the following line reports, for example: 
    // /tab/#main 
    // as expected. 
    // console.log(val); 

    res = urchinTracker(val); 
}); 

Trong ví dụ của bạn, điều này sẽ ghi lại một lần xem trang cho /tab/?main, mà nên làm việc tốt với Google Analytics.

+0

Cảm ơn đề xuất. Trong thực tế, tôi đang thử nghiệm một cách tiếp cận tương tự, trong đó tôi chỉ cần gọi .substring (1) để thả hàng đầu '#'. Nếu điều này hoạt động (tất nhiên, phải mất một lúc để xác nhận điều này!) Tôi sẽ chấp nhận câu trả lời của bạn. –

+0

Yup, chắc chắn có vẻ như vậy. Đã upvoted câu trả lời của bạn. –

+0

BTW, làm thế nào để bạn biết điều này? Tôi không thể tìm thấy thông tin đó trên trang web của Google ở ​​bất kỳ đâu. Rõ ràng, nó có ý nghĩa một chút rằng nó sẽ hoạt động theo cách đó, nhưng tôi đã nghĩ rằng kịch bản có thể phân biệt giữa một lần truy cập ngầm định chứa một mã định danh mảnh và một cuộc gọi rõ ràng đến hàm theo dõi. –

0

Nghe có vẻ như bạn muốn Google Analytics Event Tracking ví dụ sử dụng onclick = "" rác nhưng tôi đặt cược bạn có thể có thể ràng buộc chúng với các sự kiện nhấp chuột jQuery.

0
  1. Tôi đã thử sử dụng phương pháp _uanchor = 1;. Điều đó không hoạt động. Lý do không hoạt động là nó được thiết kế để gửi thông số Google Analytics dưới dạng giá trị băm, không gửi giá trị băm của bạn.

    Từ hướng dẫn trích dẫn in Török Gábor's answer, thiết _uanchor để ai có tác dụng sau:

    Khi được kích hoạt, sử dụng # thay vì mặc định ? để tách các gốc yêu cầu từ chuỗi truy vấn

    điều này nằm trong phần 'Theo dõi chiến dịch'.

  2. Rob Knight's answer hoạt động tốt, nhưng tôi đã thực hiện một sửa đổi nhỏ. Trong mã giả:

    if (href contains ?) { 
    href = href.replace('#', '&'); 
    } else { 
    href = href.replace('#', '?'); 
    } 
    

Không chắc chắn nếu nó thực sự quan trọng đối với GA để có một URL như foo.html&bar=baz nhưng nó chỉ có vẻ sạch hơn đối với tôi.

1

Nếu bạn muốn theo dõi nhấp chuột neo trong trang, sau đây sẽ làm việc trên toàn cầu:

window.onhashchange = function() { 
    _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]); 
} 

Ghi chú rằng nếu bạn có một số onclick xử lý cụ thể như

$('#someid a').click(function(event){ 
    event.preventDefault(); 
    var target = $(this).attr('href'); 
    // some more clever stuff 
}); 

Bạn sẽ cần phải tự thêm tiền vào băm để kích hoạt số onhashchange

$('#someid a').click(function(event){ 
    event.preventDefault(); 
    var target = $(this).attr('href'); 
    // triggers onhashchange 
    location.hash = target; 
    // some more clever stuff 
}); 
Các vấn đề liên quan