我有带有 googleapis npm 的 google 分析 javascript 代码。
我用 jwt 授权
下面的代码是我的授权和参数
siteUrl: string,
startDate: string,
endDate?: string,
): Promise<any> {
await this._jwt.authorize();
const viewId = await this._getPropertyId(siteUrl);
const params: Params$Resource$Data$Ga$Get = {
auth: this._jwt,
ids: 'ga:' + viewId,
// 'start-date': '30daysAgo',
// 'end-date': 'today',
'start-date': startDate,
'end-date': endDate || startDate,
metrics: 'ga:users,ga:sessions',
};
const result = await this._analytics.data.ga.get(params);
return result.data.totalsForAllResults;
viewId 是 (www.example.com 或 www.example.com/other/pathe ...) 的值
和 getPropertyId 方法在代码下面
private async _getPropertyId(siteUrl: string): Promise<any> {
await this._jwt.authorize();
let propertyId = 0;
const params: Params$Resource$Management$Accountsummaries$List = {
auth: this._jwt,
};
const result: any = await this._analytics.management.accountSummaries.list(
params,
);
result.data.items[0].webProperties.forEach((item: any) => {
console.log(item.websiteUrl)
if (item.websiteUrl === siteUrl) {
propertyId = item.profiles[0].id;
}
});
问题是我成功了我的网站主页跟踪信息(例如:https://www.example.com)
但我在非主页失败(例如:https://www.example.com/other/path)
以下错误代码
Error: User does not have sufficient permissions for this profile.
at Gaxios._request (/.../.../node_modules/gaxios/src/gaxios.ts:158:15)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at JWT.requestAsync (/.../.../node_modules/google-auth-library/build/src/auth/oauth2client.js:343:18)
我尝试了新的 google 分析属性并激活了“创建 Universal Analytics 属性”选项但相同..
我该如何解决这个问题??
答案 0 :(得分:0)
可能的解决方案 1 此消息表示您使用的帐户无法访问 Google Analytics 视图。也许 Google Analytics 帐户所有者删除了您的访问权限。 此外,过期的连接器许可证将导致包含此许可证的随机错误。
解决此问题的最简单方法是打开您的帐户,然后查看该视图是否被列为图像中的可能选项之一
可能的解决方案 2
您需要创建一个通用的分析属性。
答案 1 :(得分:0)
用户对此配置文件没有足够的权限。
表示您的代码正在尝试访问您已通过身份验证的用户无权访问的配置文件 ID 或视图 ID。
ids: 'ga:' + viewId,
转到谷歌开发者控制台并检查您的视图 ID 是否正确。然后检查您在登录时是否使用有权访问该帐户的用户登录。
请记住,与用户共享帐户时,您应该在帐户级别共享,以授予他们访问帐户下所有视图或个人资料的权限。
User doesn't have any google analytics accounts easy solution