Pregunta

Mi aplicación lee un archivo (html) de mi sitio web y me gustaría rastrear los accesos a ese archivo usando Google Analytics. Como el Javascript de GA no se ejecuta al leer el archivo, no se rastrea. ¿Hay alguna manera de activar GA directamente desde el código o, alternativamente, ejecutar el Javascript desde una aplicación .NET sin agregar un montón de dependencias?

¿Fue útil?

Solución

Google Analytics funciona al realizar una búsqueda web a través del javascript para volver al servidor de Google. Si desea hacer esto mediante programación, solo tiene que hacer esta solicitud web usted mismo. Usaría Fiddler o FireBug para capturar el aspecto de la solicitud cuando carga la página en su navegador. Entonces puede usar esa misma URL en su aplicación .Net.

Otros consejos

Recientemente he lanzado una biblioteca .net que le permite registrar de forma nativa una vista de página con Google Analytics a través del código. Se publica como código abierto en GNU, por lo que todo lo que se requiere es una atribución adecuada.

Puede obtener la biblioteca aquí: http://www.diaryofaninja.com / projects / details / ga-dot-net

uso de ejemplo de la API:

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

También hay un controlador HTTP incorporado que le permite activar eventos de seguimiento simplemente incluyendo un píxel de seguimiento en la página:

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

Alternativamente, puedes usar jquery para rastrear enlaces dentro de una página usando Google Analytics (zip, jpg, etc.) - hace un blog sobre esto hace un tiempo aquí:

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

}

consulte esto - http: //tilr.blogspot .com / 2012/10 / google-analytics-use-google-analytics.html

Google Analytics proporciona dos formas de rastrear acciones personalizadas, eventos o lo que sea que trate. En su caso, la solución trivial es generar una vista de página virtual para el archivo HTML que lee su aplicación. Llame al Función de JavaScript :

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

De esta manera, cada vez que se procese Foo.html , se generará una vista de página para que sea igual a lo que sería una consulta normal para su aplicación.

Si desea distinguir estos Foo.html s de las páginas vistas normales, GA tiene una buena característica llamada Seguimiento de eventos , entonces debería echar un vistazo.

Terminé usando el componente WebBrowser para cargar el archivo .html y, por lo tanto, activar el rastreador de GA. El componente WebBrowser ejecuta el JavaScript incorporado.

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

Ahora todo lo que tengo que hacer es agregar algo de manejo de errores, deshacerme de los feos DoEvents y mover el WebBrowser a un hilo separado.

Google tiene bibliotecas (en alfa) para varios idiomas diferentes para acceder a varias API de Google, incluyendo Analytics. Aquí hay una buena descripción: https://developers.google.com/analytics/devguides/collection/ y la biblioteca .NET es https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

También tenga en cuenta la política de privacidad que debe cumplir al usar esto: https://developers.google.com/analytics/devguides/collection/protocol/policy

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top