2011-09-08 43 views
12

Google Analytics nhúng một GIF một pixel với một URL như sau:Tại sao Google Analytics sử dụng hình ảnh một pixel để chuyển dữ liệu?

http://www.google-analytics.com/__utm.gif?utmwv=5.1.5&utms=5&utmn=1532897343&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.3%20r181&utmdt=%E8%B1%86%E7%93%A3&utmhid=571356425&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.1785629903.1314674330.1315290610.1315452707.10%3B%2B__utmz%3D30149280.1315452707.10.7.utmcsr%3Dbiaodianfu.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2Fgoogle-analytics-architecture.html%3B%2B__utmv%3D30149280.162%3B&utmu=qBM~ 

Tại sao không sử dụng một cuộc gọi AJAX? Lợi ích của việc sử dụng GIF một pixel là gì?

+0

@Joseph: Tôi hoàn nguyên chỉnh sửa của bạn vì Markdown diễn giải một số ký tự trong URL dưới dạng nghiêng hoặc định dạng khác nếu sử dụng trích dẫn khối. – icktoofay

+0

@icktoofay - Cảm ơn bạn đã thông tin. –

+0

Đôi khi, nó có thể sử dụng POST nếu yêu cầu gif quá lớn. Trong những trường hợp này, nó sẽ đặt tất cả các biến bên trong cơ thể POST. Nó làm như vậy bởi vì một số trình duyệt giới hạn kích thước của url yêu cầu. – Eduardo

Trả lời

14

Vì bạn thực sự không thể thực hiện qua AJAX miền (ngoại trừ CORS, nhưng đó là một câu chuyện khác và hiện tượng gần đây với hỗ trợ phổ quát.) AJAX cho cùng một yêu cầu gốc. Ngoài ra, Google Analytics dĩa từ Urchin, mà thực sự trước khi áp dụng công nghệ AJAX.

Yêu cầu hình ảnh là thực tiễn khá chuẩn đối với các dịch vụ phân tích "yêu cầu" thứ gì đó như một phương tiện để gửi thứ gì đó đến máy chủ của bên thứ ba. Lý do AJAX/CORS không thực sự có ý nghĩa là bạn không thực sự yêu cầu một tài nguyên quan trọng để sử dụng trên trang, vì vậy bạn muốn yêu cầu tự nó càng nhanh càng tốt.

Hai cách khác dịch vụ phân tích đôi khi xử lý việc gửi dữ liệu từ khách hàng là:

  1. Bao gồm một iframe vô hình, với chuỗi truy vấn trên src iframe đi qua các dữ liệu phân tích

  2. Yêu cầu một hình ảnh và thay vì trả lại hình ảnh, trả về một phản hồi trống với một số HTTP 204 header.

+0

Tại sao Google không thể cung cấp API sử dụng Ajax và CORS, không phải phương pháp hình ảnh kém này? Có bất kỳ dịch vụ Trình duyệt Analytics nào khác sử dụng CORS không? Tôi có một sự quan tâm đặc biệt vì vấn đề trong [chủ đề này] (http://stackoverflow.com/questions/14413271/if-google-analytics-goes-down-how-do-i-keep-my-site-working/14413293 # comment20058553_14413293). – zuallauz

+0

@zuallauz Sử dụng AJAX hoặc CORS sẽ không giải quyết được sự cố của bạn. (Nó sẽ chỉ giới thiệu không tương thích trình duyệt cho các trình duyệt cũ hơn.) Đối với vấn đề của bạn, chỉ cần bọc toàn bộ mã GA trong một sự chậm trễ loại DOMReady/WindowOnLoad/SetTimeout sẽ trì hoãn khi cố gắng tải ga.js (thường là vấn đề , không phải là gif 1 pixel) – Yahel

+0

Đã trả lời câu hỏi của bạn ở đó. – Yahel

-2

Để tối đa hóa khả năng tương thích. Một trình duyệt điện thoại di động có thể không hỗ trợ AJAX, ví dụ, và do đó có thể cung cấp kết quả không đầy đủ. Nhưng hey, Google làm rất nhiều thứ sôi nổi mà không ai có thể giải thích.

+0

Thiết kế dựa trên bảng, bất kỳ ai? – Blender

+1

OK. Có lẽ gửi email đến [email protected] sẽ mang lại phản hồi tốt hơn. Chỉ cần cố gắng không để quá già chờ đợi một phản ứng. –

+0

Bạn không thể (thực sự) làm tên miền chéo AJAX (ngoại trừ CORS, có hỗ trợ spotty). Đây không phải là "những thứ thú vị"; đây là thực tiễn rất chuẩn trong phân tích trang web. – Yahel

Các vấn đề liên quan