Frage

Meine app liest eine (HTML) Datei von meiner Website, und ich möchte greift auf die Verwendung von Google Analytics auf diese Datei verfolgen. Wie das GA Javascript nicht ausgefuehrt wird, wenn die Datei zu lesen, ist es nicht verfolgt. Gibt es eine Möglichkeit GA auslösen direkt aus dem Code oder alternativ das Javascript von einer .NET-Anwendung auszuführen, ohne eine Reihe von Abhängigkeiten hinzufügen?

War es hilfreich?

Lösung

Google Analytics arbeitet mit einem webrequest durch Javascript zurück an die Google-Server zu machen. Wenn Sie dies programmatisch tun wollen, müssen Sie nur noch das Web selbst anfordern machen. Ich würde verwenden Fiddler oder FireBug zu erfassen, was die Anforderung aussieht, wenn Sie die Seite in Ihrem Browser laden. Dann können Sie diese URL in Ihrem .NET-App verwenden.

Andere Tipps

Ich habe vor kurzem eine .net Bibliothek veröffentlicht, die Sie nativ zur Anmeldung eine Seitenansicht mit Google Analytics durch Code ermöglicht. Es wird als Open Source unter der GNU freigegeben, so dass alle erforderlich ist, ist die richtige Zuordnung.

Sie können die Bibliothek bekommen hier: http://www.diaryofaninja.com / Projekte / Details / ga-dot-net

Beispiel für die Verwendung der API:

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

Es gibt auch einen HTTP-Handler gebaut, die Sie Ereignisse auszulösen ermöglicht Tracking einfach durch ein Tracking-Pixel auf der Seite einschließlich:

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

Alternativ können Sie verwenden jquery Links zu verfolgen, innerhalb einer Seite mit Google Analytics (zip, jpg, etc.) - gebloggt es vor einer Weile hier:

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

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();
    }

}

Diese beziehen sich - http: //tilr.blogspot .com / 2012/10 / google-analytics-use-google-analytics.html

Google Analytics bietet zwei Wege benutzerdefinierte Aktionen, Ereignisse zu verfolgen, oder was auch immer Sie beschäftigen. In Ihrem Fall ist die triviale Lösung eines virtuellen Seitenzugriff für die HTML-Datei Ihrer Anwendung liest. Rufen Sie die entsprechende JavaScript-Funktion :

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

Auf diese Weise jedes Mal foo.html verarbeitet wird, wird ein Seitenzugriff für sich genauso erzeugt werden, wie es eine normale Abfrage an Ihre Anwendung sei.

Wenn Sie diese unterscheiden mögen foo.html s von den normalen Seitenzugriffen, GA ein nettes Feature namens Ereignis-Tracking dann sollten Sie einen Blick auf.

Ich landete mit der Web-Browser-Komponente der HTML-Datei zu laden, und dadurch die GA-Tracker auslösen. Die WebBrowser-Komponente führt die eingebettete JavaScript.

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

Alles was ich jetzt tun müssen, ist eine Fehlerbehandlung hinzuzufügen, loszuwerden, die hässlichen DoEvents zu bekommen und das WebBrowser auf einem separaten Thread zu bewegen.

Google hat Bibliotheken (in alpha) für mehrere verschiedene Sprachen für verschiedene Google-APIs zugreifen, einschließlich Analytics - es ist eine schöne Beschreibung hier - https://developers.google.com/analytics/devguides/collection/ und die .NET-Bibliothek ist https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

Beachten Sie auch die Datenschutzbestimmungen beachten müssen Sie beachten bei der Verwendung dieser: https://developers.google.com/analytics/devguides/collection/protocol/policy

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top