Tìm kiếm

Thứ Hai, 15 tháng 2, 2021

thumbnail

Gửi dữ liệu đến Google Analytics

 Dòng cuối cùng của đoạn mã đo lường JavaScript thêm một sendlệnh vào ga()hàng đợi lệnh để gửi một lượt xem trang đến Google Analytics:

ga ( 'create' , 'UA-XXXXX-Y' , 'auto' ); ga ( 'send' , 'pageview' );  

Đối tượng đang thực hiện gửi là trình theo dõi đã được lên lịch để tạo trong dòng mã trước đó và dữ liệu được gửi là dữ liệu được lưu trữ trên trình theo dõi đó.

Hướng dẫn này mô tả các cách khác nhau để gửi dữ liệu đến Google Analytics và giải thích cách kiểm soát dữ liệu nào được gửi.

Khi một trình theo dõi gửi dữ liệu đến Google Analytics, nó được gọi là gửi một lần truy cập và mỗi lần truy cập phải có một loại lần truy cập. Thẻ Google Analytics gửi một loại lần truy cập pageviewloại hit khác bao gồm screenvieweventtransactionitemsocialexception, và timingHướng dẫn này phác thảo các khái niệm và phương pháp chung cho tất cả các loại lần truy cập. Bạn có thể tìm thấy hướng dẫn riêng cho từng loại lần truy cập trong phần Đo lường các tương tác phổ biến của người dùng trong điều hướng bên trái.

Lần truy cập là một yêu cầu HTTP, bao gồm các cặp trường và giá trị được mã hóa dưới dạng chuỗi truy vấn và được gửi tới Giao thức đo lường .

Nếu bạn mở công cụ dành cho nhà phát triển của trình duyệt khi bạn tải một trang sử dụng analytics.js, bạn có thể thấy các lần truy cập được gửi trong tab mạng. Tìm kiếm các yêu cầu được gửi đến google-analytics.com/collect.

Khi gửi lần truy cập đến Giao thức đo lường, trình theo dõi gửi tất cả các trường hiện đang được lưu trữ và là các tham số Giao thức đo lường hợp lệ Ví dụ, các lĩnh vực như titlevà locationđược gửi nhưng cookieDomainvà hitCallbackkhông.

Trong một số trường hợp, bạn muốn gửi các trường đến Google Analytics cho lần truy cập hiện tại nhưng không cho bất kỳ lần truy cập tiếp theo nào. Ví dụ về điều này là một lần truy cập sự kiện trong đó các trường eventActionvà eventLabelchỉ có liên quan đến lần truy cập hiện tại.

Để chỉ gửi các trường có lần truy cập hiện tại, bạn có thể chuyển chúng dưới dạng đối số cho sendphương thức. Để gửi dữ liệu trường với tất cả các lần truy cập tiếp theo, bạn nên cập nhật trình theo dõi bằng setphương pháp này.

sendPhương thức của trình theo dõi có thể được gọi trực tiếp trên chính đối tượng của trình theo dõi hoặc bằng cách thêm sendlệnh vào ga()hàng đợi lệnh. Vì hầu hết thời gian bạn không có tham chiếu đến đối tượng trình theo dõi, nên sử dụng ga()hàng đợi lệnh là cách được khuyến nghị để gửi dữ liệu trình theo dõi tới Google Analytics.

Chữ ký để thêm sendlệnh vào ga()hàng đợi lệnh như sau:

ga('[trackerName.]send', [hitType], [...fields], [fieldsObject]);

Như đã đề cập ở trên, các giá trị quy định thông qua trong hitType...fieldsvà fieldsObjectcác tham số được gửi cho chỉ các hit hiện nay. Chúng không được lưu trữ trên đối tượng trình theo dõi, cũng như không được gửi với các lần truy cập tiếp theo.

Nếu bất kỳ trường nào được truyền với sendlệnh đã được đặt trên đối tượng trình theo dõi, các giá trị được truyền trong lệnh sẽ được sử dụng thay vì các giá trị được lưu trữ trên trình theo dõi.

Các sendlệnh gọi đến lệnh phải chỉ định một hitType và, tùy thuộc vào loại được chỉ định, các tham số khác cũng có thể được yêu cầu. Xem các hướng dẫn riêng để đo lường các tương tác phổ biến của người dùng trong điều hướng bên trái để biết thêm chi tiết.

Cách đơn giản nhất để sử dụng sendlệnh, hoạt động cho tất cả các loại lần truy cập, là chuyển tất cả các trường bằng cách sử dụng fieldsObjecttham số. Ví dụ:

ga('send', {
  hitType
: 'event',
  eventCategory
: 'Video',
  eventAction
: 'play',
  eventLabel
: 'cats.mp4'
});

Để thuận tiện, một số loại lần truy cập nhất định cho phép các trường thường dùng được chuyển trực tiếp làm đối số cho sendlệnh. Ví dụ: sendlệnh trên cho loại lần truy cập "sự kiện" có thể được viết lại thành:

ga('send', 'event', 'Video', 'play', 'cats.mp4');

Để có danh sách đầy đủ những trường nào có thể được chuyển làm đối số cho các loại lần truy cập khác nhau, hãy xem phần "tham số" của tham chiếu phương thức gửi .

Nếu bạn đang sử dụng trình theo dõi được đặt tên thay vì trình theo dõi mặc định, bạn có thể chuyển tên của nó vào chuỗi lệnh.

Lệnh sau sendsẽ được gọi trên trình theo dõi có tên "myTracker":

ga('myTracker.send', 'event', 'Video', 'play', 'cats.mp4');

Nếu bạn có tham chiếu đến đối tượng trình theo dõi, bạn có thể gọi sendtrực tiếp phương thức của trình theo dõi đó :

ga(function(tracker) {
  tracker
.send('event', 'Video', 'play', 'cats.mp4');
});

Trong một số trường hợp, bạn cần biết khi nào một lần truy cập được thực hiện xong sẽ được gửi đến Google Analytics, vì vậy bạn có thể thực hiện hành động ngay sau đó. Điều này thường xảy ra khi bạn cần ghi lại một tương tác cụ thể sẽ đưa người dùng ra khỏi trang hiện tại. Nhiều trình duyệt ngừng thực thi JavaScript ngay khi trang bắt đầu tải, có nghĩa là các lệnh analytics.js của bạn để gửi lần truy cập có thể không bao giờ chạy.

Ví dụ về điều này là khi bạn muốn gửi một sự kiện đến Google Analytics để ghi lại rằng người dùng đã nhấp vào nút gửi của biểu mẫu. Trong hầu hết các trường hợp, nhấp vào nút gửi sẽ ngay lập tức bắt đầu tải trang tiếp theo và bất kỳ ga('send', ...)lệnh nào sẽ không chạy.

Giải pháp cho điều này là chặn sự kiện để dừng tải trang. Sau đó, bạn có thể gửi lần truy cập của mình đến Google Analytics như bình thường và sau khi gửi xong lần truy cập, bạn có thể gửi lại biểu mẫu theo chương trình.

Để được thông báo khi gửi xong một lần truy cập, bạn đặt hitCallbacktrường. hitCallbacklà một hàm được gọi ngay sau khi lần truy cập được gửi thành công.

Ví dụ sau cho thấy cách hủy hành động gửi mặc định của biểu mẫu, gửi lần truy cập đến Google Analytics, sau đó gửi lại biểu mẫu bằng cách sử dụng hitCallbackchức năng:

// Gets a reference to the form element, assuming
// it contains the id attribute "signup-form".
var form = document.getElementById('signup-form');

// Adds a listener for the "submit" event.
form
.addEventListener('submit', function(event) {

 
// Prevents the browser from submitting the form
 
// and thus unloading the current page.
 
event.preventDefault();

 
// Sends the event to Google Analytics and
 
// resubmits the form once the hit is done.
  ga
('send', 'event', 'Signup Form', 'submit', {
    hitCallback
: function() {
      form
.submit();
   
}
 
});
});

Ví dụ trên hoạt động tốt, nhưng nó có một vấn đề nghiêm trọng. Nếu (vì bất kỳ lý do gì) thư viện analytics.js không tải được, hitCallbackhàm sẽ không bao giờ chạy. Và nếu hitCallbackchức năng không bao giờ chạy, người dùng sẽ không bao giờ có thể gửi biểu mẫu.

Bất cứ khi nào bạn đặt chức năng trang web quan trọng bên trong hitCallbackhàm, bạn nên luôn sử dụng hàm thời gian chờ để xử lý các trường hợp thư viện analytics.js không tải được.

Ví dụ tiếp theo cập nhật mã trên để sử dụng thời gian chờ. Nếu một giây trôi qua sau khi người dùng nhấp vào nút gửi và nút hitCallbackvẫn chưa chạy, biểu mẫu vẫn được gửi lại.

// Nhận một tham chiếu đến phần tử biểu mẫu, giả sử // nó chứa thuộc tính id "signup-form". var form = document . getElementById ( 'dạng đăng ký' ); // Thêm trình nghe cho sự kiện "gửi". hình thức . addEventListener ( 'submit' , function ( event ) { // Ngăn trình duyệt gửi biểu mẫu // và do đó dỡ trang hiện tại. event . PreventDefault (); // Tạo thời gian chờ để gọi `submitForm` sau một giây.   setTimeout ( submitForm






 

 

 


 

, 1000 ); // Theo dõi xem biểu mẫu đã được gửi hay chưa. // Điều này ngăn biểu mẫu được gửi hai lần trong các trường hợp // trong đó `hitCallback` kích hoạt bình thường. var formSubiled = false ; function submitForm () { if (! formSubmissions ) {       formSubmissions = true ;       hình thức . đệ trình (); } }

 

 

 

 


 

   



   

 
// Gửi sự kiện tới Google Analytics và // gửi lại biểu mẫu sau khi hoàn tất lần truy cập.   ga ( 'send' ,

 

 

'event' , 'Signup Form' , 'submit' , { hitCallback : submitForm }); });
   

 


Nếu bạn đang sử dụng mẫu trên ở nhiều nơi trên toàn bộ trang web của mình, việc tạo một hàm tiện ích để xử lý thời gian chờ có thể dễ dàng hơn.

Hàm tiện ích sau đây chấp nhận một hàm làm đầu vào và trả về một hàm mới. Nếu hàm trả về được gọi trước khoảng thời gian chờ (thời gian chờ mặc định là một giây), nó sẽ xóa thời gian chờ và gọi hàm đầu vào. Nếu hàm trả về không được gọi trước khoảng thời gian chờ, thì hàm đầu vào được gọi bất kể.

function createFunctionWithTimeout(callback, opt_timeout) {
 
var called = false;
 
function fn() {
   
if (!called) {
      called
= true;
      callback
();
   
}
 
}
  setTimeout
(fn, opt_timeout || 1000);
 
return fn;
}

Giờ đây, bạn có thể dễ dàng kết hợp tất cả các hitCallbackchức năng với thời gian chờ để đảm bảo trang web của bạn hoạt động như mong đợi ngay cả trong trường hợp không gửi được lần truy cập hoặc thư viện analytics.js không bao giờ tải.

// Nhận một tham chiếu đến phần tử biểu mẫu, giả sử // nó chứa thuộc tính id "signup-form". var form = document . getElementById ( 'dạng đăng ký' ); // Thêm trình nghe cho sự kiện "gửi". hình thức . addEventListener ( 'submit' , function ( event ) { // Ngăn trình duyệt gửi biểu mẫu // và do đó dỡ bỏ trang hiện tại. event . PreventDefault (); // Gửi sự kiện tới Google Analytics và // gửi lại biểu mẫu một lần cú đánh đã xong.   ga






 

 

 


 

 

( 'send' , 'event' , 'Signup Form' , 'submit' , { hitCallback : createFunctionWithTimeout ( function () {       form . submit (); }) }); });
   


   

 


Theo mặc định, analytics.js chọn phương thức HTTP và cơ chế truyền tải để gửi lần truy cập một cách tối ưu. Ba tùy chọn là 'image'(sử dụng một Imageđối tượng), 'xhr'(sử dụng một XMLHttpRequestđối tượng) hoặc 'beacon'sử dụng navigator.sendBeaconphương thức mới .

Hai phương pháp trước đây chia sẻ sự cố được mô tả trong phần trước (nơi các lần truy cập thường không được gửi nếu trang đang được tải xuống). Các navigator.sendBeaconphương pháp, ngược lại, là một tính năng HTML mới được tạo ra để giải quyết vấn đề này.

Nếu trình duyệt của người dùng của bạn hỗ trợ navigator.sendBeacon, bạn có thể chỉ định 'beacon'làm transportcơ chế và không phải lo lắng về việc đặt lệnh gọi lại lần truy cập.

Đoạn mã sau đặt cơ chế truyền tải 'beacon'trong các trình duyệt hỗ trợ nó.

ga('create', 'UA-XXXXX-Y', 'auto');

// Updates the tracker to use `navigator.sendBeacon` if available.
ga
('set', 'transport', 'beacon');

Việc đo lường một số loại tương tác của người dùng đôi khi có thể yêu cầu triển khai phức tạp. Tuy nhiên, trong nhiều trường hợp, các triển khai này đã được phát triển và có sẵn dưới dạng plugin analytics.js. Hướng dẫn tiếp theo giải thích cách sử dụng plugin analytics.js với ga()hàng đợi lệnh.

Related Posts :

Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

Được tạo bởi Blogger.

Thiết Bị Nhà Hàng

  • LIÊN HỆ CÔNG TY CỔ PHẦN ANY VIỆT NAM
  • Trụ sở: Số 25 ngõ 1 đường Cầu Bươu, xã Tân Triều, huyện Thanh Trì, thành phố Hà Nội, Việt Nam
  • Tổng đài chăm sóc khách hàng: 0904.938.569
  • Phòng kinh doanh: 0969.938.684 | 0903.228.661 | 0868.843.815 | 0868.843.825
  • Hỗ trợ kỹ thuật & Bảo hành: 0777.843.815