I've been trying to retrieve Google analytics reports using their provided .NET api and have really been scratching my head over how I actually retrieve anything using the newest version, v3, which is available here: http://code.google.com/apis/analytics/docs/gdata/v3/gdataLibraries.html
For example, I'd like to retrieve a report query like this one: https://www.google.com/analytics/feeds/data?dimensions=ga:browser&end-date=2012-01-25&ids=ga:ACCOUNTID&metrics=ga:visits&start-date=2011-12-25
I'm able to return reports just fine using version 2 which uses GData, but was hoping to get version 3 going in case version 2 was deprecated, but having a lot of trouble seeing as meaningful documentation seems to be outdated or non-existant and I haven't been able to find any examples.
This is now possible and easy to do with the latest release of the .NET API (v1.3.0.15233). There is no example though that has been released but you can use the Task sample as a pattern to query GA data.
Here's what you need to add/change to make that sample project work for GA.
AnalyticsService
private static AnalyticsService _analyticsService;
Scopes.Analytics
There is a variable scope
declared inside the method GetAuthorization
. Change it from
string scope = TasksService.Scopes.TasksReadonly.GetStringValue();
to
string scope = AnalyticsService.Scopes.Analytics.GetStringValue();
if (_analyticsService == null)
{
_analyticsService = new AnalyticsService(new BaseClientService.Initializer()
{
Authenticator = _authenticator = CreateAuthenticator();
});
}
This is how you can query a GA profile
// make a request
var request = _analyticsService.Data.Ga.Get(
"ga:12345678",
"2013-01-01",
"2013-05-08",
"ga:visits,ga:bounces,ga:timeOnSite,ga:avgTimeOnSite");
// run the request and get the data
var data = request.Fetch();
You will notice that there are four required arguments for the GetRequest
similar to what is defined in the API Doc. You can visit the query explorer to know the valid metrics to use with the .NET API.