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 请求的数据。

我更改了以下内容:

  1. 删除了 var sheet = _setupListGA4AccountsSheet();(与测试 API 响应无关)
  2. 刚刚更改了访问 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
      */
    }
  }
}