API Analytics Introduzione: guida rapida di Python per gli account di servizio

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

  1. Apri la pagina Account di servizio. Se richiesto, seleziona un progetto.
  2. Fai clic su Crea account di servizio, quindi inserisci un nome e una descrizione per l'account di servizio. Puoi utilizzare l'ID account di servizio predefinito o sceglierne un altro univoco. Al termine, fai clic su Crea.
  3. La sezione Autorizzazioni dell'account di servizio (facoltativo) che segue non è obbligatoria. Fai clic su Continua.
  4. Nella schermata Concedi agli utenti l'accesso a questo account di servizio, scorri verso il basso fino alla sezione Crea chiave. Fai clic su Crea chiave.
  5. Nel riquadro laterale che viene visualizzato, seleziona il formato della chiave (quello consigliato è JSON).
  6. Fai clic su Crea. Viene generata e scaricata sul tuo computer una nuova coppia di chiavi pubblica/privata, che sarà l'unica copia esistente. Per informazioni su come archiviare le chiavi in modo sicuro, consulta la sezione Gestire le chiavi degli account di servizio.
  7. Fai clic su Chiudi nella finestra di dialogo Chiave privata salvata nel computer, poi fai clic su Fine per tornare alla tabella degli account di servizio.

Aggiungi un account di servizio all'account Google Analytics

L'account di servizio appena creato avrà un indirizzo email, <projectId>-<uniqueId>@developer.gserviceaccount.com. Utilizza questo indirizzo email per aggiungere un utente all'account Google Analytics a cui vuoi accedere tramite l'API. Per questo tutorial sono necessarie solo le autorizzazioni di lettura e analisi.

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.
  3. Sostituisci i valori di key_file_location con i valori appropriati della Developer Console.
"""A simple example of how to access the Google Analytics API."""

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


def get_service(api_name, api_version, scopes, key_file_location):
    """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.
        scopes: A list auth scopes to authorize for the application.
        key_file_location: The path to a valid service account JSON key file.

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

    credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)

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

    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):', results.get('profileInfo').get('profileName')
        print 'Total Sessions:', 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'
    key_file_location = '<REPLACE_WITH_JSON_FILE>'

    # Authenticate and construct service.
    service = get_service(
            api_name='analytics',
            api_version='v3',
            scopes=[scope],
            key_file_location=key_file_location)

    profile_id = get_first_profile_id(service)
    print_results(get_results(service, profile_id))


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

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