Introduzione all'API di reporting di Analytics v4; guida rapida a Python per le applicazioni installate

Questo tutorial illustra i passaggi necessari per accedere all'API di reporting di Analytics v4.

1. Abilita l'API

Per iniziare a utilizzare l'API Analytics Reporting v4, devi prima utilizzare lo strumento di configurazione, che ti aiuterà a creare un progetto nella console API di Google, attivare l'API e creare le credenziali.

Nota: per creare un ID client web o un client applicazione installata, devi impostare il nome di un prodotto nella schermata per il consenso. Se non lo hai già fatto, ti verrà chiesto di configurare la schermata per il consenso.

Crea credenziali

  • Apri la pagina Credenziali.
  • Fai clic su Crea credenziali e seleziona ID client OAuth
  • Per Tipo di applicazione seleziona Altro.
  • Assegna all'ID client la guida rapida e fai clic su Crea.

Dalla pagina Credenziali fai clic sull'ID client appena creato, quindi fai clic su Scarica JSON e salvalo come client_secrets.json; ti servirà in un secondo momento nel tutorial.

2. Installa la libreria client

L'utilizzo di pip insieme a venv è il modo consigliato per installare pacchetti Python: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client

3. Configura l'esempio

Dovrai creare un singolo file denominato HelloAnalytics.py, che conterrà il codice di esempio specificato.

  1. Copia o scarica il seguente codice sorgente in HelloAnalytics.py.
  2. Sposta il file client_secrets.json scaricato in precedenza nella stessa directory del codice di esempio.
  3. Sostituisci il valore di VIEW_ID. Puoi utilizzare lo strumento di esplorazione degli account per trovare un ID vista
"""Hello Analytics Reporting API V4."""

import argparse

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

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file.
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_analyticsreporting():
  """Initializes the analyticsreporting service object.

  Returns:
    analytics an authorized analyticsreporting service object.
  """
  # 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=SCOPES,
      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('analyticsreporting.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.
  analytics = build('analyticsreporting', 'v4', http=http)

  return analytics

def get_report(analytics):
  # Use the Analytics Service Object to query the Analytics Reporting API V4.
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}]
        }]
      }
  ).execute()


def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response"""

  for report in response.get('reports', []):
    columnHeader = report.get('columnHeader', {})
    dimensionHeaders = columnHeader.get('dimensions', [])
    metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
    rows = report.get('data', {}).get('rows', [])

    for row in rows:
      dimensions = row.get('dimensions', [])
      dateRangeValues = row.get('metrics', [])

      for header, dimension in zip(dimensionHeaders, dimensions):
        print header + ': ' + dimension

      for i, values in enumerate(dateRangeValues):
        print 'Date range (' + str(i) + ')'
        for metricHeader, value in zip(metricHeaders, values.get('values')):
          print metricHeader.get('name') + ': ' + value


def main():

  analytics = initialize_analyticsreporting()
  response = get_report(analytics)
  print_response(response)

if __name__ == '__main__':
  main()

4. Esegui il campione

Esegui l'esempio utilizzando:

python HelloAnalytics.py
  • L'applicazione caricherà la pagina di autorizzazione in un browser.
  • Se non hai già eseguito l'accesso al tuo Account Google, ti verrà chiesto 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 mostra il numero di sessioni degli ultimi sette giorni per la vista specifica.

Risoluzione dei problemi

AttributeError: 'Module_six_moves_urllib_parse' l'oggetto non ha alcun attributo 'urlparse'

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

  • Determina il percorso di installazione di pip con il seguente comando:

    pip show sei | grep "Posizione:" | cut -d " " -f2

  • Aggiungi la seguente riga al file ~/.bashrc, sostituendo &lt;pip_install_path&gt; con il valore determinato sopra:

    esportazione PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • Ricarica il file ~/.bashrc in qualsiasi finestra del terminale aperta utilizzando il seguente comando:

    sorgente ~/.bashrc