Giter Club home page Giter Club logo

googleanalyticstracker's Introduction

googleanalyticstracker MyGet Build Status

GoogleAnalyticsTracker

GoogleAnalyticsTracker - A C# library for tracking Google Analytics.

Like this project?

via PayPal.

What can it be used for?

GoogleAnalyticsTracker was created to have a means of tracking specific URLs directly from C#. For example, when creating an API using the ASP.NET MVC framework, GoogleAnalyticsTracker enables you to track usage of the API by calling directly into Google Analytics.

Note that for GoogleAnalyticsTracker to work, you should configure Google Analytics as a website. This library will not work when the Google Analytics account is configured as an app.

Get it on NuGet!

Depending on the type of application you are using, use any of the following NuGet packages:

Any application type where framework integration is not needed (Console, WPF, WinForms, ...):

GoogleAnalyticsTracker.Simple

ASP.NET Core:

GoogleAnalyticsTracker.AspNetCore

Example usage - GoogleAnalyticsTracker.Simple

Using GoogleAnalyticsTracker is very straightforward. In your code, add the following structure wherever you want to track page views (note: when using GoogleAnalyticsTracker.Simple, the class to use is SimpleTracker):

using (var tracker = new SimpleTracker("UA-XXXXXX-XX", simpleTrackerEnvironment))
{
    await tracker.TrackPageViewAsync("My API - Create", "api/create");
    await tracker.TrackPageViewAsync("MY API - List", "api/list");
}

Or without a using block:

var tracker = new SimpleTracker("UA-XXXXXX-XX", simpleTrackerEnvironment);
await tracker.TrackPageViewAsync("My API - Create", "api/create");

Example usage - GoogleAnalyticsTracker.AspNetCore

Install the GoogleAnalyticsTracker.AspNetCore package, and register GoogleAnalyticsTracker in your startup class:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // ...

        services.AddGoogleAnalyticsTracker(options =>
        {
            options.TrackerId = "UA-XXXXXX-XX";
            options.ShouldTrackRequestInMiddleware = TrackRequests.Yes;
        });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseGoogleAnalyticsTracker();
        
        // ...
    }
}

This will automatically track all requests made to your application.

Ideally, you will want to control tracking requests. To do so:

  • Set the options.ShouldTrackRequestInMiddleware = TrackRequests.No; option to disable automatic tracking.
  • Add the [TrackPageView] or [TrackEvent] attributes to your actions.

[TrackPageView] will track a page view in Google Analytics, whereas [TrackEvent] tracks an event.

In case custom tracking is needed, inject an AspNetCoreTracker into your controller and use the tracking methods directly.

Note that the options also provide a couple of events that can be overridden to customize GoogleAnalyticsTracker behaviour:

  • CustomizeTrackerEnvironment lets you customize the tracker environment or inject a custom one.
  • CustomizeAnalyticsSession lets you customize the analytics session or inject a custom one.

Characteristics

GoogleAnalyticsTracker does not track your users. It simply serves as an interface to Google Analytics where you should provide all tracking data that is required. Of course. GoogleAnalyticsTracker sends some data that can be inferred from usage, such as the hostname on which it is running, but not the hostname of your client. Sessions are also untracked: every event that is tracked counts as a new unique visitor to Google Analytics.

  • If you do need to track user sessions, implement a custom IAnalyticsSession and pass it to the constructor of the tracker.
  • If you do need to set common data for all tracking hits, subclass the Tracker or TrackerBase and override the AmendParameters method.

License

MS-PL License

Who uses GoogleAnalyticsTracker?

googleanalyticstracker's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.