2009-04-29 2 views
9

Мое приложение читает (html) файл с моего сайта, и я хотел бы отслеживать доступ к этому файлу с помощью Google Analytics. Поскольку GA Javascript не выполняется при чтении файла, он не отслеживается. Есть ли способ запуска GA непосредственно из кода или, альтернативно, для выполнения Javascript из .NET-приложения без добавления нескольких зависимостей?Как вызвать Google Analytics из кода?

ответ

7

Google Analytics работает, создавая веб-запрос через javascript на сервер Google. Если вы хотите сделать это программно, вам просто нужно сделать этот веб-запрос самостоятельно. Я бы использовал Fiddler или FireBug, чтобы отобразить, как выглядит запрос при загрузке страницы в вашем браузере. Затем вы можете использовать тот же URL-адрес в своем приложении .Net.

+0

спасибо Давиду. Если посмотреть на URL-адрес и код javascript Urchin, это выглядит не так просто. В URL-адресе есть много «магических» номеров, которые я не могу объяснить, и это изменение между запросами. Тем не менее я попытаюсь добавить это в свое приложение и посмотреть, что произойдет. – Han

+2

GA предоставляет публичный API для этого, вам действительно не нужно отслеживать запросы. –

+1

Он должен иметь эти магические числа, иначе любой может изменить/повлиять на статистику посетителей (и другие вещи) на чужом веб-сайте. :) – IsmailS

2

Google Analytics предоставляет два способа отслеживания пользовательских действий, событий или того, с чем вы имеете дело. В вашем случае, тривиальное решение для создания виртуального просмотра для HTML файла приложение считывает Позвони соответствующий JavaScript function:.

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

Таким образом, каждый раз, когда foo.html обрабатывается, просмотр страницы будет сгенерированный для него так же, как и обычный запрос к вашему приложению.

Если вы хотите, чтобы отличить эти foo.html сек от нормального просмотра страниц, GA имеет хорошую функцию под названием Event Tracking, то вы должны взглянуть на.

1

Я закончил использование компонента WebBrowser для загрузки файла .html и, таким образом, вызвал отслеживание GA. Компонент WebBrowser выполняет встроенный JavaScript.

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

Теперь все, что нужно сделать, это добавить некоторые errorhandling, избавиться от некрасивых DoEvents и перемещать WebBrowser в отдельный поток.

+0

Любопытно узнать, как выглядит ваш окончательный код, выполнив все " теперь все, что мне нужно, это ... ». =) –

5

Я недавно выпустил библиотеку .net, которая позволяет вам изначально вести просмотр страницы с помощью Google Analytics с помощью кода. Он выпущен как открытый источник в GNU, поэтому все, что требуется, является надлежащей атрибуцией.

Вы можете получить библиотеку здесь: http://www.diaryofaninja.com/projects/details/ga-dot-net

пример использования этого API:

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

Существует также встроенный HTTP Handler, который позволяет вести стрельбу отслеживания событий, просто включая пикселя отслеживания на странице:

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

в качестве альтернативы вы можете использовать JQuery для отслеживания ссылок внутри страницы с помощью Google Analytics (ZIP, JPG и т.д.) - б авторизовались об этом некоторое время назад здесь:

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

+0

Если я хочу установить код Google Analytics «на лету» (вместо статического в web.config), я могу просто задать запрос.AnalyticsAccountCode динамически, прежде чем вызывать GoogleTracking.FireTrackingEvent (запрос)? – 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(); 
    } 

} 

см это - http://tilr.blogspot.com/2012/10/google-analytics-use-google-analytics.html

0

Google имеет библиотеки (в альфа) для нескольких языков для доступа к различным API, Google, в том числе Analytics - есть хорошее описание здесь - https://developers.google.com/analytics/devguides/collection/ и.NET библиотека https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

Также имейте в виду их политику конфиденциальности, вы должны придерживаться при использовании этого: https://developers.google.com/analytics/devguides/collection/protocol/policy

Смежные вопросы