Brett Romero
Brett Romero

Reputation: 353

Google Analytics API service object - no management attribute

I am trying to set up an application that uses the Google Analytics API. I have all the authorization steps working correctly and can pull all the data as expected. However, at the moment, it is working because I have hardcoded my own view ID into the queries to the API. E.g:

response = analytics.reports().batchGet(
    body={
        "reportRequests":
            [
                {
                    "viewId": "ga:12345678",
                    ...

From what I understand, what I need to do is before I start querying the data, is use the service object to first get a view Id (or list of View Ids), then use that in the data queries. I have been attempting to do just that and have been failing miserably. Basically, I have the following (just to get the first step of a list of accounts):

credentials = client.OAuth2Credentials.from_json(session['credentials'])
http = credentials.authorize(httplib2.Http())
analytics = build('analytics', 'v4', http=http) #create the service object
data = analytics.management().accounts().list().execute()

The error I am getting is 'Resource' object has no attribute 'management'. What am I missing here??

Upvotes: 1

Views: 1004

Answers (1)

Brett Romero
Brett Romero

Reputation: 353

Ok, so for those who come across this question, the issue seemed to be that, as of the time of writing, version 4 of the API does not have the management features. What I/we did instead was build a second service to get the account details using version 3:

service = build('analytics', 'v3', http=http)
accounts = service.management().accounts().list().execute()

That seemed to do the trick, although there was some additional fiddling required in order to get the view ID(s). However, once you have the object, it is just a matter of manipulating the object as needed.

Upvotes: 5

Related Questions