Как вызвать Google Analytics из кода? - PullRequest
9 голосов
/ 30 апреля 2009

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

Ответы [ 6 ]

7 голосов
/ 30 апреля 2009

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

5 голосов
/ 05 июля 2010

Недавно я выпустил библиотеку .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, который позволяет запускать отслеживание событий, просто добавив на страницу пиксель отслеживания:

<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

3 голосов
/ 15 октября 2012
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

2 голосов
/ 30 апреля 2009

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

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

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

Если вы хотите отличить эти Foo.html s от обычных просмотров страниц, у GA есть замечательная функция, называемая Отслеживание событий , тогда вам стоит взглянуть. *

1 голос
/ 01 мая 2009

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

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

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

0 голосов
/ 21 марта 2014

У Google есть библиотеки (в алфавитном порядке) для нескольких разных языков для доступа к различным API Google, включая 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...