Domanda

La mia app legge un file (html) dal mio sito Web e vorrei monitorare gli accessi a quel file utilizzando Google Analytics. Dato che GA Javascript non viene eseguito durante la lettura del file, non viene tracciato. C'è un modo per attivare GA direttamente dal codice o, in alternativa, per eseguire Javascript da un'app .NET senza aggiungere un mucchio di dipendenze?

È stato utile?

Soluzione

Google Analytics funziona eseguendo una richiesta web tramite javascript al server di Google. Se vuoi farlo a livello di codice, devi solo fare questa richiesta web da solo. Vorrei utilizzare Fiddler o FireBug per catturare l'aspetto della richiesta quando si carica la pagina nel browser. Quindi puoi utilizzare lo stesso URL nella tua app .Net.

Altri suggerimenti

Di recente ho rilasciato una libreria .net che consente di registrare nativamente una visualizzazione di pagina con Google Analytics tramite codice. È rilasciato come open source sotto GNU, quindi tutto ciò che serve è una corretta attribuzione.

Puoi ottenere la libreria qui: http://www.diaryofaninja.com / progetti / dettagli / ga-dot-net

esempio di utilizzo dell'API:

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

Esiste anche un gestore HTTP integrato che consente di attivare eventi di tracciamento semplicemente includendo un pixel di tracciamento sulla pagina:

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

In alternativa puoi utilizzare jquery per tracciare i collegamenti all'interno di una pagina utilizzando Google Analytics (zip, jpg, ecc.) - ne hai fatto un blog qualche tempo fa qui:

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

}

consulta questo - http: //tilr.blogspot .com / 2012/10 / google-analytics-uso-google-analytics.html

Google Analytics offre due modi per tracciare azioni personalizzate, eventi o qualunque cosa tu abbia a che fare. Nel tuo caso, la banale soluzione è quella di generare una visualizzazione di pagina virtuale per il file HTML in cui legge l'applicazione. Chiama funzione JavaScript :

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

In questo modo ogni volta che viene elaborato Foo.html , viene generata una visualizzazione di pagina per esso come se fosse una normale query per l'applicazione.

Se desideri distinguere questi Foo.html dalle normali visualizzazioni di pagina, GA ha una bella funzione chiamata Monitoraggio eventi , allora dovresti dare un'occhiata.

Ho finito per utilizzare il componente WebBrowser per caricare il file .html e quindi attivare il tracker GA. Il componente WebBrowser esegue il JavaScript incorporato.

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

Ora tutto quello che devo fare è aggiungere un po 'di gestione degli errori, sbarazzarmi dei brutti DoEvent e spostare il WebBrowser in un thread separato.

Google ha librerie (in alfa) per diverse lingue per accedere a varie API di Google, tra cui Analytics - qui c'è una bella descrizione - https://developers.google.com/analytics/devguides/collection/ e la libreria .NET è https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

Tieni presente anche la loro informativa sulla privacy che devi rispettare quando usi questo: https://developers.google.com/analytics/devguides/collection/protocol/policy

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top