谷歌分析API问题

2024-04-20 11:42:24 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我目前正在一个小组项目中工作,我们正在使用谷歌分析来提取数据,并且需要将一个API与谷歌分析结合起来,以用于我们正在创建的数据库。我们遇到了一个无法使API正常工作的问题。我们需要一个视图ID,但就我们的生活而言,我们无法想出如何仅使用Web属性创建帐户,因为它根本不给我们创建Web属性的选项。每当我们尝试创建一个新帐户时,它都会让我们进入App和Web属性分析的beta版本,该版本不会为您提供视图ID

我们也尝试创建一个新的谷歌账户,但没有成功

下面是我们的代码附件,如果有人能帮助我们绕过这种情况,或者告诉我们需要做什么来创建一个Web属性,我们将不胜感激

我们使用PYTHON编写代码,并使用JUPYTER

#Load Libraries
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
import httplib2
import pandas as pd

#Create service credentials
#Rename your JSON key to client_secrets.json and save it to your working folder
credentials = ServiceAccountCredentials.from_json_keyfile_name('client_secrets.json', 
['https://www.googleapis.com/auth/analytics.readonly'])

#Create a service object
http = credentials.authorize(httplib2.Http())
service = build('analytics', 'v4', http=http, discoveryServiceUrl= 
('https://analyticsreporting.googleapis.com/$discovery/rest'))
response = service.reports().batchGet(
body={
    'reportRequests': [
        {
            'viewId': '261713611', #Add View ID from GA
            'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
            'metrics': [{'expression': 'ga:sessions'}], 
            'dimensions': [{"name": "ga:pagePath"}], #Get Pages
            "filtersExpression":"ga:pagePath=~products;ga:pagePath!@/translate", #Filter by condition "containing products"
            'orderBys': [{"fieldName": "ga:sessions", "sortOrder": "DESCENDING"}], 
            'pageSize': 100
         }]
 }
).execute()

#create two empty lists that will hold our dimentions and sessions data
dim = []
val = []

#Extract Data
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')):
            val.append(int(value))

#Sort Data
val.reverse()
dim.reverse()

df = pd.DataFrame() 
df["Sessions"]=val
df["pagePath"]=dim
df=df[["pagePath","Sessions"]]
df

#Export to CSV
df.to_csv("page_by_session.csv")

Tags: toinfromimportwebdfforget
1条回答
网友
1楼 · 发布于 2024-04-20 11:42:24

Google Analytics Data API v1可以为GA4属性创建报告。见developer's site。Google Analytics Reporting API v4可以为Universal Analytics(GA3)视图(reference)创建报告。您编写的代码使用的是Google Analytics Reporting v4

所以你有两个选择:

  1. 向数据API v1发送请求。用GA4属性标记您的网站
  2. 向报告API v4发送请求。用GA3(通用分析)标记您的网站。此guide显示如何创建通用分析属性。今天的默认新属性是GA3属性

相关问题 更多 >