API Hello Analytics: guida rapida di Python per le applicazioni installate

Questo tutorial illustra i passaggi necessari per accedere a un account Google Analytics, eseguire query sulle API Analytics, gestire le risposte dell'API e generare i risultati. In questo tutorial vengono utilizzati l'API di reporting principale 3.0, l'API di gestione v3.0 e l'OAuth2.0.

Passaggio 1: attiva l'API Analytics

Per iniziare a utilizzare l'API Google Analytics, devi prima utilizzare lo strumento di configurazione, che ti guida nella creazione di un progetto nella console API di Google, nell'abilitazione dell'API e nella creazione delle credenziali.

Creare un ID client

Dalla pagina Credenziali:

  1. Fai clic su Crea credenziali e seleziona ID client OAuth.
  2. Seleziona Altro per TIPO DI APPLICAZIONE.
  3. Assegna un nome alla credenziale.
  4. Fai clic su Crea.

Seleziona la credenziale appena creata e fai clic su Scarica JSON. Salva il file scaricato come client_secrets.json. Ti servirà più avanti nel tutorial.

Passaggio 2: installa la libreria client di Google

Puoi utilizzare un gestore di pacchetti o scaricare e installare la libreria client Python manualmente:

pip

Usa pip, lo strumento consigliato per l'installazione dei pacchetti Python:

sudo pip install --upgrade google-api-python-client

Strumenti di configurazione

Utilizza lo strumento easy_install incluso nel pacchetto setuptools:

sudo easy_install --upgrade google-api-python-client

Installazione manuale

Scarica la libreria client per Python più recente, apri il codice ed esegui:

sudo python setup.py install

Potresti dover richiamare il comando con privilegi di super user (sudo) per installare il sistema Python.

Passaggio 3: configura l'esempio

Devi creare un singolo file denominato HelloAnalytics.py, che conterrà il codice campione fornito.

  1. Copia o scarica il seguente codice sorgente in HelloAnalytics.py.
  2. Sposta l'elemento client_secrets.json scaricato in precedenza all'interno della stessa directory del codice di esempio.
"""A simple example of how to access the Google Analytics API."""

import argparse

from apiclient.discovery import build
import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools


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

  Args:
    api_name: string The name of the api to connect to.
    api_version: string The api version to connect to.
    scope: A list of strings representing the auth scopes to authorize for the
      connection.
    client_secrets_path: string A path to a valid client secrets file.

  Returns:
    A service that is connected to the specified API.
  """
  # Parse command-line arguments.
  parser = argparse.ArgumentParser(
      formatter_class=argparse.RawDescriptionHelpFormatter,
      parents=[tools.argparser])
  flags = parser.parse_args([])

  # Set up a Flow object to be used if we need to authenticate.
  flow = client.flow_from_clientsecrets(
      client_secrets_path, scope=scope,
      message=tools.message_if_missing(client_secrets_path))

  # Prepare credentials, and authorize HTTP object with them.
  # If the credentials don't exist or are invalid run through the native client
  # flow. The Storage object will ensure that if successful the good
  # credentials will get written back to a file.
  storage = file.Storage(api_name + '.dat')
  credentials = storage.get()
  if credentials is None or credentials.invalid:
    credentials = tools.run_flow(flow, storage, flags)
  http = credentials.authorize(http=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 the authorized 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 in 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']

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


if __name__ == '__main__':
  main()

Passaggio 4: esegui l'esempio

Dopo aver abilitato l'API Analytics, installato la libreria client delle API di Google per Python e configurato il codice sorgente di esempio, l'esempio è pronto per essere eseguito.

Esegui l'esempio utilizzando:

python HelloAnalytics.py
  1. L'applicazione caricherà la pagina di autorizzazione in un browser.
  2. Se non hai ancora eseguito l'accesso al tuo Account Google, ti verrà richiesto di farlo. Se hai eseguito l'accesso a più Account Google, ti verrà chiesto di selezionare un account da utilizzare per l'autorizzazione.

Al termine di questi passaggi, l'esempio restituisce il nome della prima vista (profilo) Google Analytics dell'utente autorizzato e il numero di sessioni negli ultimi sette giorni.

Con l'oggetto di servizio Analytics autorizzato ora puoi eseguire qualsiasi esempio di codice trovato nei documenti di riferimento dell'API Management. Ad esempio, potresti provare a modificare il codice per utilizzare il metodo accountSummaries.list.

Risoluzione dei problemi

AttributeError: l'oggetto "Module_six_moves_urllib_parse" non ha un attributo "urlparse".

Questo errore può verificarsi in Mac OSX, in cui l'installazione predefinita del modulo "sei" (una dipendenza di questa libreria) viene caricata prima di quello installato da pip. Per risolvere il problema, aggiungi il percorso di installazione di pip alla variabile di ambiente di sistema PYTHONPATH:

  1. Determina il percorso di installazione di pip con il seguente comando:

    pip show six | grep "Location:" | cut -d " " -f2
    

  2. Aggiungi la seguente riga al file ~/.bashrc, sostituendo <pip_install_path> con il valore determinato sopra:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Ricarica il file ~/.bashrc in qualsiasi finestra del terminale aperta utilizzando il seguente comando:

    source ~/.bashrc