2009-04-29 59 views
9

Ứng dụng của tôi đọc tệp (html) từ trang web của tôi và tôi muốn theo dõi quyền truy cập vào tệp đó bằng Google Analytics. Vì Javascript GA không được thực hiện khi đọc tệp, nó không được theo dõi. Có cách nào để kích hoạt GA trực tiếp từ mã hoặc cách khác, để thực thi Javascript từ một ứng dụng .NET mà không cần thêm một loạt các phụ thuộc?Làm cách nào để kích hoạt Google Analytics từ mã?

Trả lời

7

Google Analytics hoạt động bằng cách thực hiện yêu cầu web thông qua javascript trở lại máy chủ của Google. Nếu bạn muốn thực hiện điều này theo chương trình, bạn chỉ cần tự mình thực hiện yêu cầu web này. Tôi sẽ sử dụng Fiddler hoặc FireBug để nắm bắt yêu cầu trông như thế nào khi bạn tải trang trong trình duyệt của mình. Sau đó, bạn có thể sử dụng cùng một URL đó trong ứng dụng .Net của mình.

+0

Cảm ơn David. Nhìn vào URL và mã javascript Urchin, nó không có vẻ đơn giản. Có rất nhiều số 'ma thuật' trong URL mà tôi không thể giải thích, và sự thay đổi đó giữa các yêu cầu. Tuy nhiên, tôi sẽ cố gắng thêm điều này vào ứng dụng của tôi và xem điều gì sẽ xảy ra. – Han

+2

GA cung cấp API công khai cho điều đó, bạn thực sự không phải theo dõi các yêu cầu. –

+1

Nó phải có những con số ma thuật, nếu không ai cũng có thể thay đổi/ảnh hưởng đến số liệu thống kê của khách truy cập (và những thứ khác) của trang web của người khác. :) – IsmailS

2

Google Analytics cung cấp hai cách để theo dõi hành động, sự kiện tùy chỉnh hoặc bất kỳ điều gì bạn xử lý. Trong trường hợp của bạn, giải pháp tầm thường là để tạo ra một lần xem trang ảo cho HTML nộp đơn của bạn đọc trong Gọi thích hợp JavaScript function:.

pageTracker._trackPageview("/Foo.html"); 

Bằng cách này mỗi khi foo.html được xử lý, một lần xem trang sẽ được tạo cho nó giống như nó sẽ là một truy vấn bình thường đối với ứng dụng của bạn.

Nếu bạn muốn phân biệt các số này Foo.html từ số lần truy cập trang bình thường, GA có tính năng đẹp được gọi là Event Tracking thì bạn nên xem xét.

1

Tôi đã kết thúc bằng cách sử dụng thành phần WebBrowser để tải tệp .html và do đó kích hoạt trình theo dõi GA. Thành phần WebBrowser thực thi JavaScript được nhúng.

using (WebBrowser wb = new WebBrowser()) 
{ 
    wb.Url = new Uri(@"mytrackingpage.html"); 
    while (wb.ReadyState != WebBrowserReadyState.Complete) 
    { 
     Application.DoEvents(); 
    } 
} 

Bây giờ tất cả những gì tôi phải làm là thêm một số lỗi, loại bỏ các DoEvent xấu xí và di chuyển WebBrowser đến một chuỗi riêng biệt.

+0

Tò mò để biết mã cuối cùng của bạn trông như thế nào, sau khi thực hiện tất cả các " bây giờ tất cả những gì tôi phải làm là ... "thứ. =) –

5

Gần đây, tôi đã phát hành thư viện .net cho phép bạn tự nhiên đăng nhập một lần xem trang bằng Google Analytics thông qua mã. Nó được phát hành dưới dạng mã nguồn mở theo GNU nên tất cả những gì được yêu cầu là phân bổ đúng.

Bạn có thể nhận được các thư viện ở đây: http://www.diaryofaninja.com/projects/details/ga-dot-net

ví dụ sử dụng các API:

GooglePageView pageView = new GooglePageView("My page title", 
           "www.mydomain.com", 
           "/my-page-url.html"); 
TrackingRequest request = new RequestFactory().BuildRequest(pageView); 
GoogleTracking.FireTrackingEvent(request); 

Ngoài ra còn có một xây dựng trong HTTP Handler cho phép bạn bắn theo dõi các sự kiện bằng cách đơn giản bao gồm pixel theo dõi trên trang:

<img src="/tracker.asmx?domain=mydomain.com&pagetitle=My%20Page%20Title&url=/my-page.aspx" /> 

Hoặc bạn có thể sử dụng jquery để theo dõi liên kết trong một trang bằng Google Analytics (zip, jpg, v.v.) - b đăng nhập về nó một thời gian trước đây:

http://www.diaryofaninja.com/blog/2009/09/17/random-file-zip-and-pdf-tracking-using-jquery-amp-google-analytics

+0

Nếu tôi muốn thiết lập Mã Google Analytics khi đang di chuyển (thay vì tĩnh trong web.config), tôi có thể chỉ cần đặt request.AnalyticsAccountCode động trước khi gọi GoogleTracking.FireTrackingEvent (yêu cầu) không? – Korayem

3
private void analyticsmethod4(string trackingId, string pagename) 
{ 
    Random rnd = new Random(); 

    long timestampFirstRun, timestampLastRun, timestampCurrentRun, numberOfRuns; 

    // Get the first run time 
    timestampFirstRun = DateTime.Now.Ticks; 
    timestampLastRun = DateTime.Now.Ticks-5; 
    timestampCurrentRun = 45; 
    numberOfRuns = 2; 

    // Some values we need 
    string domainHash = "123456789"; // This can be calcualted for your domain online 
    int uniqueVisitorId = rnd.Next(100000000, 999999999); // Random 
    string source = "Shop"; 
    string medium = "medium123"; 
    string sessionNumber = "1"; 
    string campaignNumber = "1"; 
    string culture = Thread.CurrentThread.CurrentCulture.Name; 
    string screenRes = Screen.PrimaryScreen.Bounds.Width + "x" + Screen.PrimaryScreen.Bounds.Height; 


    string statsRequest = "http://www.google-analytics.com/__utm.gif" + 
     "?utmwv=4.6.5" + 
     "&utmn=" + rnd.Next(100000000, 999999999) + 
    // "&utmhn=hostname.mydomain.com" + 
     "&utmcs=-" + 
     "&utmsr=" + screenRes + 
     "&utmsc=-" + 
     "&utmul=" + culture + 
     "&utmje=-" + 
     "&utmfl=-" + 
     "&utmdt=" + pagename + 
     "&utmhid=1943799692" + 
     "&utmr=0" + 
     "&utmp=" + pagename + 
     "&utmac=" +trackingId+ // Account number 
     "&utmcc=" + 
      "__utma%3D" + domainHash + "." + uniqueVisitorId + "." + timestampFirstRun + "." + timestampLastRun + "." + timestampCurrentRun + "." + numberOfRuns + 
      "%3B%2B__utmz%3D" + domainHash + "." + timestampCurrentRun + "." + sessionNumber + "." + campaignNumber + ".utmcsr%3D" + source + "%7Cutmccn%3D(" + medium + ")%7Cutmcmd%3D" + medium + "%7Cutmcct%3D%2Fd31AaOM%3B"; 


    using (var client = new WebClient()) 
    { 
     client.DownloadData(statsRequest); 
     //Stream data = client.OpenRead(statsRequest); 
     //StreamReader reader = new StreamReader(data); 
     //string s = reader.ReadToEnd(); 
    } 

} 

tham khảo này - http://tilr.blogspot.com/2012/10/google-analytics-use-google-analytics.html

0

Google có thư viện (trong alpha) cho các ngôn ngữ khác nhau để truy cập API google khác nhau, bao gồm Analytics - có một mô tả hay ở đây - https://developers.google.com/analytics/devguides/collection/ và.NET thư viện là https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

Cũng nên nhớ chính sách bảo mật của họ, bạn phải tuân thủ khi sử dụng này: https://developers.google.com/analytics/devguides/collection/protocol/policy

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