因此,我目前正在进行一个小组项目,我们正在使用Google来提取数据,并且需要将API与Google结合起来,用于我们正在创建的数据库。我们遇到了一个无法使API正常工作的问题。我们需要一个View ID,但是在我们的生活中,我们无法知道如何创建一个只有Web属性的帐户,因为它根本没有给我们一个创建Web属性的选项。每当我们尝试创建一个新的帐户,它就会让我们进入的beta版本,它不会给你一个View 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")https://stackoverflow.com/questions/66377137
复制相似问题