GA4 | Google 分析管理员 API |应用程序脚本
GA4 | Google Analytics Admin API | Apps Script
我正在尝试调用(新)alpha GA 管理员 API 来完成列出我有权访问的所有帐户的简单任务...我正处于调用 API 但我没有收到任何错误消息,也没有看到 google sheet 上的信息。你能帮忙吗?
function listGA4Accounts() {
var sheet = _setupListGA4AccountsSheet();
var accounts = AnalyticsAdmin.Accounts.list();
if (accounts.items && accounts.items.length) {
for (var i = 0; i < accounts.items.length; i++) {
var account = accounts.items[i];
var rowNum = i+2;
sheet.getRange("A" + rowNum).setNumberFormat('@')
.setValue(account.name).setBackground(AUTO_POP_CELL_COLOR);
sheet.getRange("B" + rowNum)
.setValue(account.displayName).setBackground(AUTO_POP_CELL_COLOR);
sheet.getRange("C" + rowNum)
.setValue(account.createTime).setBackground(AUTO_POP_CELL_COLOR);
}
}
}
以上内容改编自用于 Universal Analytics/GA3 的旧代码,过去工作得很好。我缺少什么?我还有一个标准的 GCP 项目,并且为该 GCP 项目启用了 API。
非常感谢以上任何 help/thoughts。
谢谢。
您已经非常接近解决方案了。
调试 API 响应的技巧:
- 在控制台中使用
Logger.log(JSON.stringify(<API RESPONSE>))
提示 API 响应
- 复制日志并将其粘贴到 JSON 格式化程序网站,如下所示:https://jsonformatter.curiousconcept.com/
- 检查实际结构
- 可选:从页面复制格式化的 JSON 并将其作为变量保存在脚本中,并使用它代替 API 响应来准备代码。一旦它与保存的数据正常工作,您可以切换回来自 API 请求的数据。
我更改了以下内容:
- 删除了
var sheet = _setupListGA4AccountsSheet();
(与测试 API 响应无关)
- 刚刚更改了访问 JSON 对象的方式,因为它是一个嵌套对象,要获得一个帐户项目,必须编写
<variable name>.accounts.item
这里是可以复制as-is到应用程序脚本编辑器并可以测试的代码:
function listGA4Accounts() {
var accounts = AnalyticsAdmin.Accounts.list();
if (accounts && !accounts.error) {
accounts = accounts.accounts; // <== this is why it didn't work is a nested JSON
Logger.log(accounts[0]);
for (var i = 0, account; account = accounts[i]; i++) {
Logger.log(account);
/**
* PLACE your code here
*/
}
}
}
我正在尝试调用(新)alpha GA 管理员 API 来完成列出我有权访问的所有帐户的简单任务...我正处于调用 API 但我没有收到任何错误消息,也没有看到 google sheet 上的信息。你能帮忙吗?
function listGA4Accounts() {
var sheet = _setupListGA4AccountsSheet();
var accounts = AnalyticsAdmin.Accounts.list();
if (accounts.items && accounts.items.length) {
for (var i = 0; i < accounts.items.length; i++) {
var account = accounts.items[i];
var rowNum = i+2;
sheet.getRange("A" + rowNum).setNumberFormat('@')
.setValue(account.name).setBackground(AUTO_POP_CELL_COLOR);
sheet.getRange("B" + rowNum)
.setValue(account.displayName).setBackground(AUTO_POP_CELL_COLOR);
sheet.getRange("C" + rowNum)
.setValue(account.createTime).setBackground(AUTO_POP_CELL_COLOR);
}
}
}
以上内容改编自用于 Universal Analytics/GA3 的旧代码,过去工作得很好。我缺少什么?我还有一个标准的 GCP 项目,并且为该 GCP 项目启用了 API。
非常感谢以上任何 help/thoughts。
谢谢。
您已经非常接近解决方案了。
调试 API 响应的技巧:
- 在控制台中使用
Logger.log(JSON.stringify(<API RESPONSE>))
提示 API 响应
- 复制日志并将其粘贴到 JSON 格式化程序网站,如下所示:https://jsonformatter.curiousconcept.com/
- 检查实际结构
- 可选:从页面复制格式化的 JSON 并将其作为变量保存在脚本中,并使用它代替 API 响应来准备代码。一旦它与保存的数据正常工作,您可以切换回来自 API 请求的数据。
我更改了以下内容:
- 删除了
var sheet = _setupListGA4AccountsSheet();
(与测试 API 响应无关) - 刚刚更改了访问 JSON 对象的方式,因为它是一个嵌套对象,要获得一个帐户项目,必须编写
<variable name>.accounts.item
这里是可以复制as-is到应用程序脚本编辑器并可以测试的代码:
function listGA4Accounts() {
var accounts = AnalyticsAdmin.Accounts.list();
if (accounts && !accounts.error) {
accounts = accounts.accounts; // <== this is why it didn't work is a nested JSON
Logger.log(accounts[0]);
for (var i = 0, account; account = accounts[i]; i++) {
Logger.log(account);
/**
* PLACE your code here
*/
}
}
}