我正在运行这段代码:
var auth = "Bearer " + token;
var myHeaders = {
"Authorization": auth
}
var rawdata = JSON.stringify({
"dimensions": [
{
"name": "appVersion"
},
{
"name": "eventName"
}
],
"metrics": [
{
"name": "eventCount"
}
],
"dateRanges": [
{
"startDate": "30daysAgo",
"endDate": "yesterday"
}
],
"orderBys": [
{
"dimension": {
"orderType": "ALPHANUMERIC",
"dimensionName": "appVersion"
}
},
{
"dimension": {
"orderType": "ALPHANUMERIC",
"dimensionName": "eventName"
}
}
],
"metricAggregations": [
"TOTAL"
]
});
var requestOptions = {
'contentType': 'application/json',
'headers': myHeaders,
'method' : 'post',
'payload' : rawdata,
'followRedirects': true,
'muteHttpExceptions' : true
};
var response = UrlFetchApp.fetch(url, requestOptions);
Logger.log(`response is ${response}`)
var result = JSON.parse(response.getContentText());
var dataSet = result;
Once I had created a trigger, we saw 100% failure rate.
response is {
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED"
}
}
得到这个错误:
"error": {
"code": 403,
"message": "Google Analytics Data API has not been used in project 548594456844 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/analyticsdata.googleapis.com/overview?project=548594456844 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developers console API activation",
"url": "https://console.developers.google.com/apis/api/analyticsdata.googleapis.com/overview?project=548594456844"
}
]
},
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "SERVICE_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/548594456844",
"service": "analyticsdata.googleapis.com"
}
}
]
}
}
但是我没有这个GCP项目的权限。这是否意味着GCP必须调用GA4 API?
如果我没有访问这个GCp项目(apps-script的默认项目)-我怎么能修复它呢?
谷歌项目是一种通用类型,存在于诸如谷歌云、Firebase和其他谷歌"产品领域"之外。他们喜欢通过他们的(较小|有限)世界观来展示谷歌。
注意在过去,IIRC,这些都被称为API项目或类似的项目。有时可以从(例如Firebase)项目中浏览(例如GCP项目),但有项目元数据倾向于将项目过滤到创建项目的控制台。
Corrollary:当你创建一个谷歌云平台项目时,你实际上是在创建一个通用的谷歌API项目,它可能有一些额外的元数据,将项目呈现为GCP。
一个Google Project是一组Google api,一组凭证(User|Service) Accounts和一个计费账户的交集。
在这种情况下,你需要在项目中启用Google Analytics Data API,然后才能使用该项目拥有的服务帐户来调用API。
这不仅为使用Google的api提供了安全性,而且还提供了计费范围。在这种情况下,谷歌分析api似乎不会产生计费费用,但许多其他谷歌api会。
如果您无法访问该项目,并且没有人愿意为您启用该项目,您将无法使用该服务帐户访问谷歌分析。您可能想要创建另一个项目和一个新的服务帐户,然后使用它。我认为(!?),你不需要启用计费使用谷歌分析数据API,因此你的不应该需要提供信用卡等。
注意不要忘记将服务帐户的电子邮件地址(
${ACCOUNT}@${PROJECT}.iam.gserviceaccount.com
)添加到您的Google Analytics(分析)属性(想使用多少就使用多少)认证中。