Vra

My program lui 'n (html) lêer van my webwerf, en ek wil dop toegang tot die lêer met behulp van Google Analytics. As die GA Javascript nie ontslae uitgevoer word wanneer die lees van die lêer, is dit nie nagespoor. Is daar 'n manier om te aktiveer GA direk vanaf code of alternatiewelik, om die Javascript voer van 'n NET app sonder toevoeging van 'n klomp van die afhanklikhede?

Was dit nuttig?

Oplossing

Google Analytics werk deur 'n webrequest deur JavaScript terug na bediener van Google. As jy wil hierdie programmaties doen, jy moet net maak hierdie web versoek jouself. Ek sou Fiddler of Firebug gebruik om vas te vang wat die versoek lyk soos wanneer jy die bladsy laai in die leser. Dan kan jy daardie selfde URL gebruik in jou Net app.

Ander wenke

Ek het onlangs 'n NET biblioteek wat jou toelaat om native teken 'n bladsy vertoning met Google Analytics deur kode. Dit is vrygestel as open source onder GNU so al wat nodig is, is behoorlike toeskrywing.

Jy kan die biblioteek hier kry: http://www.diaryofaninja.com / projekte / details / ga-dot-net

voorbeeld gebruik van die API:

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

Daar is ook 'n ingeboude in HTTP Handler wat jou toelaat om te vuur dop gebeure deur eenvoudig insluitend 'n dop pixel op die bladsy:

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

As alternatief kan jy jQuery gebruik om skakels binne 'n bladsy met behulp van Google Analytics (zip, jpg, ens) op te spoor - blog oor dit 'n ruk gelede 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();
    }

}

verwys hierdie - http: //tilr.blogspot com / 2012/10 / google-analise gebruik-Google-analytics.html

Google Analytics bied twee manier om persoonlike aksies, gebeure dop, of wat ook al jy gaan met. In jou geval, die triviale oplossing is om 'n virtuele bladsy vertoon vir die HTML genereer lêer jou aansoek lui in. Bel die toepaslike JavaScript funksie :

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

Op hierdie manier elke keer as Foo.html verwerk, 'n bladsy vertoon sal gegenereer word vir dit as dieselfde as dit 'n normale navraag by jou aansoek sal wees.

As jy wil om te onderskei hierdie Foo.html s van die normale views, GA het 'n mooi eienskap genoem Event dop dan moet jy 'n blik op te neem.

Ek het uiteindelik met behulp van die WebBrowser komponent om die Html lêer laai, en sodoende aktiveer die GA spoorsnyer. Die WebBrowser komponent voer die ingeboude JavaScript.

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

Nou al wat ek hoef te doen is om 'n paar errorhandling voeg, ontslae te raak van die lelike DoEvents en beweeg die WebBrowser om 'n aparte draad.

Google het biblioteke (in alfa) vir 'n paar verskillende tale vir toegang tot verskeie Google API's, insluitend Analytics - daar is 'n mooi beskrywing hier - https://developers.google.com/analytics/devguides/collection/ en die NET biblioteek is https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

Hou ook in gedagte hul privaatheid beleid wat jy hoef te voldoen aan by die gebruik van hierdie: https://developers.google.com/analytics/devguides/collection/protocol/policy

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top