2016-03-31 20 views
0

Ich bin ziemlich neu in Python und habe das folgende Skript aus der Google Analytics-API-Hilfe erhalten. Ich habe es funktioniert und Daten extrahieren, aber es gibt an, das erste Google-Konto zu erhalten, ich habe mehrere GA-Konten und möchte nur eine angeben. Jede Hilfe wäre großartig?Python mit Google Analytics Abfragen eines bestimmten Google-Kontos aus Google-Skripts

Dank

Craig

"""A simple example of how to access the Google Analytics API.""" 

import argparse 

from apiclient.discovery import build 
from oauth2client.service_account import ServiceAccountCredentials 

import httplib2 
from oauth2client import client 
from oauth2client import file 
from oauth2client import tools 



def get_service(api_name, api_version, scope, key_file_location, 
       service_account_email): 
    """Get a service that communicates to a Google API. 

    Args: 
    api_name: The name of the api to connect to. 
    api_version: The api version to connect to. 
    scope: A list auth scopes to authorize for the application. 
    key_file_location: The path to a valid service account p12 key file. 
    service_account_email: The service account email address. 

    Returns: 
    A service that is connected to the specified API. 
    """ 

    credentials = ServiceAccountCredentials.from_p12_keyfile(
    service_account_email, key_file_location, scopes=scope) 

    http = credentials.authorize(httplib2.Http()) 

    # Build the service object. 
    service = build(api_name, api_version, http=http) 

    return service 


def get_first_profile_id(service): 
    # Use the Analytics service object to get the first profile id. 

    # Get a list of all Google Analytics accounts for this user 
    accounts = service.management().accounts().list().execute() 

    if accounts.get('items'): 
    # Get the first Google Analytics account. 
    account = accounts.get('items')[0].get('id') 

    # Get a list of all the properties for the first account. 
    properties = service.management().webproperties().list(
     accountId=account).execute() 

    if properties.get('items'): 
     # Get the first property id. 
     property = properties.get('items')[0].get('id') 

     # Get a list of all views (profiles) for the first property. 
     profiles = service.management().profiles().list(
      accountId=account, 
      webPropertyId=property).execute() 

     if profiles.get('items'): 
     # return the first view (profile) id. 
     return profiles.get('items')[0].get('id') 

    return None 


def get_results(service, profile_id): 
    # Use the Analytics Service Object to query the Core Reporting API 
    # for the number of sessions within the past seven days. 
    return service.data().ga().get(
     ids='ga:' + profile_id, 
     start_date='7daysAgo', 
     end_date='today', 
     metrics='ga:sessions').execute() 


def print_results(results): 
    # Print data nicely for the user. 
    if results: 
    print 'View (Profile): %s' % results.get('profileInfo').get('profileName') 
    print 'Total Sessions: %s' % results.get('rows')[0][0] 

    else: 
    print 'No results found' 


def main(): 
    # Define the auth scopes to request. 
    scope = ['https://www.googleapis.com/auth/analytics.readonly'] 

    # Use the developer console and replace the values with your 
    # service account email and relative location of your key file. 
    service_account_email = '<Replace with your service account email address.>' 
    key_file_location = '<Replace with /path/to/generated/client_secrets.p12>' 

    # Authenticate and construct service. 
    service = get_service('analytics', 'v3', scope, key_file_location, 
    service_account_email) 
    profile = get_first_profile_id(service) 
    print_results(get_results(service, profile)) 


if __name__ == '__main__': 
    main() 

Antwort

0

Kommentar (oder entfernen) die folgende Zeile:

profile = get_first_profile_id(service) 

In der nächsten Zeile geben Sie die ID des Profils manuell abfragen möchten als der zweite Parameter

print_results(get_results(service, '123456789')) 

Um die Profil-ID zu erhalten, können Sie entweder die query explorer, ein nettes Google-Tool, das Ad-hoc-Abfragen an Sie authentifizierte Konten ermöglicht Sie müssen mit dem Google-Konto angemeldet sein, das Zugriff auf Analytics hat). Sie können die Profil-ID aus dem „ids“ Feld erhalten:

enter image description here

Oder bekamen Ihr Analytics-Konto und in den Berichten an der URL aussehen. Es wird wie folgt aussehen:

https://analytics.google.com/analytics/web/?authuser=0#report/defaultid/a1111110w65439246p123456789/ 

Die Profil-ID befindet sich am Ende der URL (nach dem Zeichen "p").

+0

Hallo, Danke für die Antwort. Funktioniert perfekt! –

0

Auschecken this post Es hat Code, der den Google Analytics Python-Beispielcode anpasst, und Sie können mehrere Profil-IDs hinzufügen.

profile_ids = profile_ids = {'My Profile 1': '1234567', 
          'My Profile 2': '1234568', 
          'My Profile 3': '1234569', 
          'My Profile 4': '1234561'} 

# Uncomment this line & replace with 'profile name': 'id' to query a single profile 
# Delete or comment out this line to loop over multiple profiles. 

## profile_ids = {'ryanpraski': '1234567'} 

-Ryan