2010-07-24 37 views
8

Tôi đang tìm cách thiết lập môi trường hộp cát phân tích google sẽ cho phép tôi kiểm tra mã js tùy chỉnh của tôi gần thời gian thực.Môi trường hộp cát thời gian thực của Google Analytics

Ứng dụng của tôi sẽ sử dụng biến tùy chỉnh cho phân đoạn nâng cao và tôi muốn thử nghiệm nhiều kịch bản một cách nhanh chóng, thay vì thiết lập tài khoản GA giả và đợi cả ngày để xác nhận thử nghiệm.

Cảm ơn

Trả lời

17

Câu hỏi hay.

Đối với GA, cập nhật máy chủ diễn ra sau bốn giờ và sau mỗi lần cập nhật thứ sáu, toàn bộ thiết lập được tính lại, có nghĩa là trễ 24 giờ từ thay đổi mã sang phản hồi đáng tin cậy. Sự chậm trễ này cũng áp dụng cho hầu hết các tùy chỉnh cho Trình duyệt GA (ví dụ: "bộ lọc tùy chỉnh").

Vì vậy, nếu bạn định sử dụng GA làm hệ thống chỉ số web của mình và bạn thực sự muốn dựa vào những dữ liệu đó thì cần phải kiểm tra giàn khoan.

Đối với tôi, việc nhóm các hệ thống thử nghiệm cho phân tích phía máy khách bằng hai số liệu là hữu ích: (i) hệ thống hoàn chỉnh, khép kín (vòng kín); hoặc (ii) dữ liệu tự động đơn giản kéo từ hệ thống sản xuất (bởi "hệ thống sản xuất" ở đây tôi có nghĩa là hệ thống của GA, không phải là Trang có các mã GA đang theo dõi).

Đối với sau này, chỉ cần thêm dòng này vào mỗi trang của trang web của bạn có chứa mã theo dõi GA, ngay dưới '__trackPageview()':

pageTracker._setLocalRemoteServerMode(); 

dòng đó sẽ gây ra một bản sao của mỗi dòng giao dịch được ghi vào nhật ký hoạt động của máy chủ - về bản chất, bạn lấy dữ liệu được GA thu thập trong thời gian thực Đó là tất cả những gì bạn cần làm để nắm bắt dữ liệu; để phân tích cú pháp, bạn có thể sử dụng, ví dụ: bất kỳ trình phân tích nhật ký web nguồn mở tuyệt vời nào như AWStats hoặc cuộn của riêng bạn. Đây là đơn giản và đáng tin cậy - nhưng tất cả những gì nó có thể làm là cho bạn biết (trong thời gian thực) "mã phân tích tôi vừa triển khai trên các trang được phục vụ bởi máy chủ sản xuất của tôi có thực sự hoạt động không?"

Thông thường, điều đó không đủ tốt - bạn muốn biết mã của mình có hoạt động hay không trước trên máy chủ sản xuất của bạn. Để làm điều đó, bạn cần mô phỏng môi trường sản xuất và tìm cách truy cập trong thời gian thực mà dữ liệu GA thu thập.

Loại giàn khoan thử nghiệm này có liên quan nhiều hơn một chút, nhưng vẫn không khó.

Tóm lại, nó đòi hỏi các bước sau:

  1. host/phân phát ga.js và theo dõi pixel tại địa phương;

  2. ghi lại yêu cầu __utm.gif (trong luồng dữ liệu GA GA, mỗi yêu cầu tương ứng với một lần đăng nhập giao dịch); và

  3. phân tích cú pháp tiêu đề thành một số biểu mẫu dễ đọc có thể đọc được.


Nếu bạn muốn biết thêm chi tiết hơn (ví dụ, một bước-by-step thực hiện), ở đây nó là:

I. Hosting/Phục vụ GA Script (& tự động cập nhật

Để thực hiện điều đó, bạn có thể tạo một tập lệnh shell nhỏ như thế này để tải phiên bản ga.js mới nhất vào thư mục cục bộ của bạn (thay thế phiên bản mở rộng nó tìm thấy ở đó)

#!/bin/sh 
rm /My_Sites/sitename.com/analytics/ga.js 
cd /My_Sites/sitename.com/analytics/ 
wget http://www.google-analytics.com/ga.js 
chmod 644 /My_Sites/sitename.com/analytics/ga.js 
cd ${OLDPWD} 
exit 0; 

(Nhờ AskApache.com, trong đó cung cấp động lực và cấu hình chi tiết ban đầu để làm điều này trong một bối cảnh sản xuất.)


II. Tạo __utm.gif tập tin

Đây chỉ là một hình ảnh 1x1 pixel gif trong suốt, mà bạn sẽ đặt trong thư mục trang web (không quan trọng đâu, nó chỉ cần phù hợp với vị trí đọc trong các trang của bạn)


III. Ghi lại các yêu cầu __utm.gif

Đối với giao thức thử nghiệm mà bạn là nguồn của hoạt động phía máy khách (ví dụ: bạn muốn xác minh độ trung thực của một số mã theo dõi sự kiện mà bạn đã thêm vào một trang trên Trang web của bạn, vì vậy bạn tự động hóa 5000 lần nhấp vào nút bạn vừa kết nối, phục vụ trang từ máy chủ dev của bạn được thiết lập cho mục đích này) có thể đơn giản nhất chỉ cần ghi lại Tiêu đề Yêu cầu, vì nó nằm trong các tiêu đề đó tập lệnh GA hướng khách hàng thu thập dữ liệu khác nhau từ DOM, từ thanh địa chỉ (url) và từ các tiêu đề http trước và thêm chúng vào yêu cầu cho tài nguyên trên máy chủ GA (__utm.gif, mà chỉ là Pixel 1x1 trong suốt).

Đối với loại giao thức này, tôi sử dụng trình bổ sung Firefox, LiveHTTPHeaders. Bạn cài đặt nó giống như bất kỳ addon Firefox nào khác, một vài cú click chuột là tất cả. Tiếp theo, mở nó và nhấp vào tab "Máy phát điện". Từ cửa sổ này, bạn có thể thấy các yêu cầu thực tế trong thời gian thực. Ở dưới cùng của cửa sổ là một nút 'lưu' để lưu trữ nhật ký. Tôi thấy dễ dàng hơn khi cấu hình LiveHTTPHeaders để chỉ ghi lại các yêu cầu __utm.gif; để làm điều đó, chỉ cần nhấp vào tab 'Chỉnh sửa' và tạo bộ lọc siimple để loại trừ mọi thứ ngoại trừ những hình ảnh gif cụ thể này (sử dụng hộp kiểm ở bên phải và hộp văn bản lớn ở bên phải).

Các loại giao thức thử nghiệm khác yêu cầu bạn làm việc từ Nhật ký hoạt động máy chủ của bạn; trong trường hợp đó chỉ cần thêm dòng này vào mỗi trang của trang web của bạn, ngay dưới __trackPageview():

pageTracker._setLocalRemoteServerMode(); 

IV. Phân tích cú pháp các yêu cầu đã đăng nhập để bạn thực sự có thể đọc chúng

Vì vậy, bây giờ nhật ký của bạn sẽ chứa các dòng chuyển giao riêng lẻ, mỗi dòng là một chuỗi được nối vào Yêu cầu HTTP cho pixel theo dõi GA. Chuỗi này chỉ là một chuỗi các cặp khóa-giá trị, mỗi khóa bắt đầu bằng các chữ cái "utm" (có thể là cho "trình theo dõi nhím"). Mỗi tham số này tương ứng với biến mà bạn thấy trong Trang tổng quan GA (dưới đây là complete list và mô tả về chúng). Đây là tất cả những gì bạn cần biết để xây dựng một trình phân tích cú pháp.Cụ thể hơn:

Thứ nhất, đây là một vệ sinh __utm.gif yêu cầu (các mục trong LiveHTTPHeaders bạn đăng nhập):

http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=1669045322&utmcs=UTF-8&utmsr=1280x800&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.0%20r45&utmcn=1&utmdt=Position%20Listings%20%7C%20Linden%20Lab&utmhn=lindenlab.hrmdirect.com&utmr=http://lindenlab.com/employment&utmp=/employment/openings.php?sort=da&&utmac=UA-XXXXXX-X&utmcc=__utma%3D87045125.1669045322.1274256051.1274256051.1274256051.1%3B%2B__utmb%3D87045125%3B%2B__utmc%3D87045125%3B%2B__utmz%3D87045125.1274256051.1.1.utmccn%3D(referral)%7Cutmcsr%3Dlindenlab.com%7Cutmcct%3D%2Femployment%7Cutmcmd%3Dreferral%3B%2B 

Đây là phân tích cú pháp của tôi (trong Python):

# regular expression module imported 
import re 

pattern = r'\&{1,2}' 
pat_obj = re.compile(pattern) 

# splitting the gif request on the '&' character 
# (which GA originally used to concatenate each piece to build the request) 
# (here, i've bound the __utm.gif to the variable by 'gfx') 
gfx1 = pat_obj.split(gfx) 

# create a look-up table to map a descriptive name to each gif request parameter 
# (note, this isn't the entire list, which i've linked to above) 
keys = "utmje utmsc utmsr utmac utmcc utmcn utmcr utmcs utmdt utme utmfl utmhn utmn utmp utmr utmul utmwv" 
values = "java_enabled screen_color_depth screen_resolution account_string cookies campaign_session_new repeat_campaign_visit language_encoding page_title event_tracking_data flash_version host_name GIF_req_unique_id page_request referral_url browser_language gatc_version" 
keys = keys.strip().split() 

#create the look-up table 
GIF_REQUEST_PARAMS = dict(zip(keys, values)) 

# parse each request parameter and map the parameter name to a descriptive name: 
pattern = r'(utm\w{1,2})=(.*?)$' 
pat_obj = re.compile(pattern) 

for itm in gfx1 : 
    m = pat_obj.search(itm) 
    if m : 
     fmt = '{0:25} {1:10}' 
     print(fmt.format(GIF_REQUEST_PARAMS[m.group(1)], m.group(2))) 

Kết quả trông giống như sau:

gatc_version              1          
    GIF_req_unique_id         1669045322 
    language_encoding         UTF-8      
    screen_resolution         1280x800   
    screen_color_depth        24-bit     
    browser_language          en-us      
    java_enabled              1          
    flash_version             10.0%20r45 
    campaign_session_new      1          
    page_title                Position%20Listings%20%7C%20Linden%20Lab 
    host_name                 lindenlab.hrmdirect.com 
    referral_url              http://lindenlab.com/employment 
    page_request              /employment/openings.php?sort=da 
    account_string            UA-XXXXXX-X 
    cookies 

Để tránh thực hiện việc này lâu hơn nữa, tôi đã bỏ qua giá trị của cookie. Họ rõ ràng yêu cầu một bước phân tích cú pháp riêng biệt, mặc dù nó hầu như giống hệt với bước tôi vừa trình bày. Một lần nữa, mỗi yêu cầu đại diện cho một giao dịch duy nhất, vì vậy bạn có thể lưu trữ chúng khi cần.

+0

Doug, cảm ơn bài đăng chi tiết như vậy! Tôi chắc chắn sẽ cung cấp cho một thử và thông báo cho bạn về sự tiến bộ của tôi vào tuần tới. Có lẽ bạn muốn tạo một dự án google và tôi có thể đóng góp để phát triển một bộ khác mà người khác có thể sử dụng? –

+0

Ý tưởng hay, Salman. Tôi sử dụng GibHub, vì vậy tôi sẽ đưa nó lên đó vào tuần tới và cho bạn biết khi tôi làm và nơi để tìm thấy nó. – doug

+0

@doug đã làm điều này bao giờ đi lên trên Github? Tôi rất muốn nhìn thấy nó nếu nó ... – s6mike

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