Com accedir a l’API de Google Analytics mitjançant Python


L’API de Google Analytics proporciona accés a les dades dels informes de Google Analytics (GA), com ara pàgines vistes, sessions, font de trànsit i percentatge de rebots.

El documentació oficial de Google explica que es pot utilitzar per:

  • Creeu taulers personalitzats per mostrar les dades de GA.
  • Automatitzeu tasques complexes d’informes.
  • Integració amb altres aplicacions.

Podeu accedir a la resposta de l’API mitjançant diversos mètodes diferents, com ara Java, PHP i JavaScript, però aquest article, en particular, se centrarà a accedir i exportar dades mitjançant Python.

Aquest article només tractarà alguns dels mètodes que es poden utilitzar per accedir a diferents subconjunts de dades mitjançant diferents mètriques i dimensions.

Espero escriure una guia de seguiment que explori diferents maneres d’analitzar, visualitzari combinar les dades.

Configuració de l’API

Creació d’un compte de servei de Google

El primer pas és crear un projecte o seleccionar-ne un Compte de servei de Google.

Un cop creat, el següent pas és seleccionar el + Crea un compte de servei botó.

Compte de servei de GoogleCaptura de pantalla de Google Cloud, desembre de 2022

A continuació, se us promocionarà per afegir alguns detalls com ara un nom, un identificador i una descripció.

Detalls del compte de serveiCaptura de pantalla de Google Cloud, desembre de 2022

Un cop creat el compte de servei, navegueu a CLAUS secció i afegiu una nova clau.

Clau del compte de serveiCaptura de pantalla de Google Cloud, desembre de 2022

Això us demanarà que creeu i descarregueu una clau privada. En aquest cas, seleccioneu JSON i, a continuació, creeu i espereu que es baixi el fitxer.

Clau de credencials JSONCaptura de pantalla de Google Cloud, desembre de 2022

Afegeix al compte de Google Analytics

També voldreu fer una còpia del correu electrònic que s’ha generat per al compte de servei, que es pot trobar a la pàgina principal del compte.

Correu electrònic del compte de GoogleCaptura de pantalla de Google Cloud, desembre de 2022

El següent pas és afegir aquest correu electrònic com a usuari a Google Analytics amb permisos d’analista.

Correu electrònic a Google AnalyticsCaptura de pantalla de Google Analytics, desembre de 2022

Habilitació de l’API

El pas final i possiblement més important és assegurar-vos que heu activat l’accés a l’API. Per fer-ho, assegureu-vos que esteu al projecte correcte i seguiu aquest enllaç per habilitar l’accés.

A continuació, seguiu els passos per activar-lo quan es promocioni.

Habilitació de l'APICaptura de pantalla de Google Cloud, desembre de 2022

Això és necessari per accedir a l’API. Si us perdeu aquest pas, se us demanarà que el completeu quan executeu l’script per primera vegada.

Accés a l’API de Google Analytics amb Python

Ara tot està configurat al nostre compte de servei, podem començar a escriure l’script per exportar les dades.

Vaig triar Quaderns Jupyter per crear-ho, però també podeu utilitzar altres entorns de desenvolupadors integrats (IDE), inclosos PyCharm o VSCode.

Instal·lació de Biblioteques

El primer pas és instal·lar les biblioteques necessàries per executar la resta del codi.

Alguns són únics per a l’API d’anàlisi i d’altres són útils per a futures seccions del codi.

!pip install --upgrade google-api-python-client
!pip3 install --upgrade oauth2client
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
!pip install connect
!pip install functions
import connect

Nota: quan utilitzeu pip en un quadern Jupyter, afegiu ! – si s’executa a la línia d’ordres o un altre IDE, el ! no és necessari.

Creació d’una compilació de serveis

El següent pas és configurar el nostre abast, que és l’enllaç d’autenticació de l’API d’anàlisi només de lectura.

A continuació, la descàrrega JSON dels secrets del client que es va generar en crear la clau privada. S’utilitza de manera similar a una clau API.

Per accedir fàcilment a aquest fitxer dins del vostre codi, assegureu-vos d’haver desat el fitxer JSON a la mateixa carpeta que el fitxer de codi. Aleshores, es pot cridar fàcilment amb la funció KEY_FILE_LOCATION.

Finalment, afegiu l’identificador de visualització del compte d’anàlisi amb el qual voleu accedir a les dades.

Identificador de visualització de Google AnalyticsCaptura de pantalla de l’autor, desembre de 2022

En conjunt, això es veurà com el següent. Farem referència a aquestes funcions al llarg del nostre codi.

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = 'client_secrets.json'
VIEW_ID = 'XXXXX'

Un cop hàgim afegit el nostre fitxer de clau privada, podem afegir-ho a la funció de credencials trucant al fitxer i configurant-lo mitjançant el pas ServiceAccountCredentials.

A continuació, configureu l’informe de compilació, trucant a l’API d’informes d’anàlisi V4 i les nostres credencials ja definides des de dalt.

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
service = build('analyticsreporting', 'v4', credentials=credentials)

Redacció de l’òrgan de sol·licitud

Un cop ho tenim tot configurat i definit, comença la veritable diversió.

Des de la compilació del servei API, hi ha la possibilitat de seleccionar els elements de la resposta a la qual volem accedir. Això s’anomena objecte ReportRequest i requereix com a mínim el següent:

  • Un identificador de visualització vàlid per al camp viewId.
  • Almenys una entrada vàlida al camp Intervals de dates.
  • Almenys una entrada vàlida al camp de mètriques.

Veure ID

Com s’ha esmentat, hi ha algunes coses que calen durant aquesta etapa de creació, començant pel nostre viewId. Com ja hem definit anteriorment, només hem d’anomenar aquest nom de funció (VIEW_ID) en lloc d’afegir de nou l’ID de vista sencera.

Si volguéssiu recollir dades d’una vista d’anàlisi diferent en el futur, només haureu de canviar l’identificador al bloc de codi inicial en lloc de tots dos.

Interval de dates

A continuació, podem afegir l’interval de dates per a les dates per a les quals volem recollir les dades. Consisteix en una data d’inici i una data de finalització.

Hi ha un parell de maneres d’escriure això a la sol·licitud de compilació.

Podeu seleccionar dates definides, per exemple, entre dues dates, afegint la data en un format any-mes-data, ‘startDate’: ‘2022-10-27’, ‘endDate’: ‘2022-11-27’.

O bé, si voleu veure les dades dels darrers 30 dies, podeu definir la data d’inici com a “30daysAgo” i la data de finalització com a “avui”.

Mètriques i dimensions

El pas final de la trucada de resposta bàsica és establir les mètriques i les dimensions. Les mètriques són les mesures quantitatives de Google Analytics, com ara el recompte de sessions, la durada de la sessió i el percentatge de rebots.

Les dimensions són les característiques dels usuaris, les seves sessions i les seves accions. Per exemple, el camí de la pàgina, la font del trànsit i les paraules clau utilitzades.

Hi ha moltes mètriques i dimensions diferents a les quals es pot accedir. No els repassaré tots en aquest article, però tots es poden trobar juntament amb informació i atributs addicionals aquí.

Tot el que pugueu accedir a Google Analytics, podeu accedir a l’API. Això inclou les conversions d’objectius, els inicis i els valors, el dispositiu del navegador utilitzat per accedir al lloc web, la pàgina de destinació, el seguiment del camí de la segona pàgina i la cerca interna, la velocitat del lloc i les mètriques de públic.

Tant les mètriques com les dimensions s’afegeixen en un format de diccionari, utilitzant parells clau:valor. Per a les mètriques, la clau serà “expressió” seguida dels dos punts (:) i després el valor de la nostra mètrica, que tindrà un format específic.

Per exemple, si volguéssim obtenir un recompte de totes les sessions, afegiríem “expressió”: “ga:sessions”. O ‘expression’: ‘ga:newUsers’ si volíem veure un recompte de tots els usuaris nous.

Amb dimensions, la clau serà “nom” seguida dels dos punts de nou i el valor de la dimensió. Per exemple, si volguéssim extreure els diferents camins de la pàgina, seria ‘name’: ‘ga:pagePath’.

O “nom”: “ga:medium” per veure les diferents fonts de trànsit referències al lloc.

Combinació de dimensions i mètriques

El valor real està en combinar mètriques i dimensions per extreure les estadístiques clau que ens interessen més.

Per exemple, per veure un recompte de totes les sessions que s’han creat a partir de diferents fonts de trànsit, podem establir que la nostra mètrica sigui ga:sessions i la nostra dimensió sigui ga:medium.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:medium'}]
        }]
      }
  ).execute()

Creació d’un DataFrame

La resposta que obtenim de l’API és en forma de diccionari, amb totes les dades en parells clau:valor. Per facilitar la visualització i l’anàlisi de les dades, les podem convertir en un marc de dades Pandas.

Per convertir la nostra resposta en un marc de dades, primer hem de crear algunes llistes buides, per contenir les mètriques i dimensions.

Aleshores, cridant a la sortida de la resposta, afegirem les dades de les dimensions a la llista de dimensions buida i un recompte de les mètriques a la llista de mètriques.

Això extreu les dades i les afegirà a les nostres llistes anteriorment buides.

dim = []
metric = []

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):
dim.append(dimension)

for i, values in enumerate(dateRangeValues):
for metricHeader, value in zip(metricHeaders, values.get('values')):
metric.append(int(value))

Afegint les dades de resposta

Un cop les dades es troben a aquestes llistes, les podem convertir fàcilment en un marc de dades definint els noms de les columnes, entre claudàtors, i assignant els valors de la llista a cada columna.

df = pd.DataFrame()
df["Sessions"]= metric
df["Medium"]= dim
df= df[["Medium","Sessions"]]
df.head()

Exemple de marc de dades 

Més exemples de sol·licituds de resposta

Múltiples mètriques

També hi ha la possibilitat de combinar múltiples mètriques, amb cada parell afegit entre claudàtors i separats per una coma.

'metrics': [
              {"expression": "ga:pageviews"},
              {"expression": "ga:sessions"}
          ]

Filtrat

També podeu sol·licitar que la resposta de l’API només retorni mètriques que retornin determinats criteris afegint filtres de mètriques. Utilitza el següent format:

if {metricName} {operator} {comparisonValue}
   return the metric

Per exemple, si només voleu extreure pàgines vistes amb més de deu visualitzacions.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          'dimensions': [{'name': 'ga:pagePath'}],

"metricFilterClauses": [{
"filters": [{
"metricName": "ga:pageviews",
"operator": "GREATER_THAN",
"comparisonValue": "10"
}]
}]
}]
}
).execute()

Els filtres també funcionen per a dimensions de manera similar, però les expressions de filtre seran lleugerament diferents a causa de la naturalesa característica de les dimensions.

Per exemple, si només voleu extreure pàgines vistes d’usuaris que han visitat el lloc amb el navegador Chrome, podeu configurar un operador EXTRACT i utilitzar “Chrome” com a expressió.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          "dimensions": [{"name": "ga:browser"}],
          "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:browser",
              "operator": "EXACT",
              "expressions": ["Chrome"]
            }
          ]
        }
      ]
    }
  ]
}
).execute()

Expressions

Com que les mètriques són mesures quantitatives, també hi ha la possibilitat d’escriure expressions, que funcionen de manera similar a les mètriques calculades.

Això implica definir un àlies per representar l’expressió i completar una funció matemàtica en dues mètriques.

Per exemple, podeu calcular les finalitzacions per usuari dividint el nombre de finalitzacions pel nombre d’usuaris.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics":
      [
        {
          "expression": "ga:goal1completions/ga:users",
          "alias": "completions per user"
        }
      ]
    }
  ]
}
).execute()

Histogrames

L’API també us permet agrupar dimensions amb un valor enter (numèric) en intervals mitjançant dipòsits d’histogrames.

Per exemple, agrupant la dimensió del recompte de sessions en quatre grups d’1-9, 10-99, 100-199 i 200-399, podeu utilitzar el tipus d’ordre HISTOGRAM_BUCKET i definir els intervals als histogramBuckets.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics": [{"expression": "ga:sessions"}],
          "dimensions": [
        {
              "name": "ga:sessionCount",
              "histogramBuckets": ["1","10","100","200","400"]
        }
      ],
         "orderBys": [
        {
              "fieldName": "ga:sessionCount",
              "orderType": "HISTOGRAM_BUCKET"
        }
      ]
    }
  ]
}
).execute()
Exemple d'histograma Captura de pantalla de l’autor, desembre de 2022

En conclusió

Espero que això us hagi proporcionat una guia bàsica per accedir a l’API de Google Analytics, escriure algunes sol·licituds diferents i recopilar informació significativa en un format fàcil de veure.

He afegit el codi de compilació i sol·licitud, i els fragments compartits aquest fitxer GitHub.

M’encantarà saber si proveu algun d’aquests i els vostres plans per explorar més les dades.

Més recursos:


Imatge destacada: BestForBest/Shutterstock





Source link

Com accedir a l’API de Google Analytics mitjançant Python