Question

Mon application lit un fichier (html) sur mon site Web et j'aimerais suivre les accès à ce fichier à l'aide de Google Analytics. Comme le GA Javascript n'est pas exécuté lors de la lecture du fichier, il n'est pas suivi. Existe-t-il un moyen de déclencher GA directement à partir du code ou, alternativement, d’exécuter le Javascript à partir d’une application .NET sans ajouter de nombreuses dépendances?

Était-ce utile?

La solution

Google Analytics fonctionne en créant une requête Web via le code JavaScript sur le serveur de Google. Si vous voulez le faire par programme, il vous suffit de faire cette demande Web vous-même. Je voudrais utiliser Fiddler ou FireBug pour capturer à quoi ressemble la demande lorsque vous chargez la page dans votre navigateur. Ensuite, vous pouvez utiliser cette même URL dans votre application .Net.

Autres conseils

J'ai récemment publié une bibliothèque .net qui vous permet de consigner de manière native une vue de page avec Google Analytics via du code. Il est publié en tant qu’open source sous GNU, donc tout ce qui est nécessaire est une attribution appropriée.

Vous pouvez obtenir la bibliothèque ici: http://www.diaryofaninja.com / projets / détails / ga-dot-net

exemple d'utilisation de l'API:

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

Il existe également un gestionnaire HTTP intégré qui vous permet de déclencher des événements de suivi en incluant simplement un pixel de suivi sur la page:

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

Vous pouvez également utiliser jQuery pour suivre les liens d’une page à l’aide de Google Analytics (zip, jpg, etc.).

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

}

reportez-vous à cette http: //tilr.blogspot .com / 2012/10 / google-analytics-use-google-analytics.html

Google Analytics propose deux méthodes pour suivre les actions personnalisées, les événements ou tout ce que vous traitez. Dans votre cas, la solution la plus simple est de générer une vue de page virtuelle pour le fichier HTML que lit votre application. Appelez le Fonction JavaScript :

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

Ainsi, chaque fois que Foo.html est traité, une page vue sera générée pour elle comme s'il s'agissait d'une requête normale pour votre application.

Si vous souhaitez distinguer ces Foo.html des pages vues normales, GA dispose d'une fonctionnalité intéressante appelée Suivi des événements , vous devriez jeter un coup d'œil à.

J'ai fini par utiliser le composant WebBrowser pour charger le fichier .html et ainsi déclencher le suivi de GA. Le composant WebBrowser exécute le code JavaScript incorporé.

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

Il ne me reste plus qu'à ajouter un peu de gestion des erreurs, à supprimer les vilains DoEvents et à déplacer WebBrowser vers un autre thread.

Google possède des bibliothèques (en alpha) de plusieurs langues pour accéder à différentes API de Google, y compris Analytics - voici une description intéressante - https://developers.google.com/analytics/devguides/collection/ et la bibliothèque .NET est https://developers.google.com/api-client-library/dotnet/apis/analytics/v3

N'oubliez pas non plus que les règles de confidentialité que vous devez respecter lorsque vous l'utilisez: https://developers.google.com/analytics/devguides/collection/protocol/policy

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top