You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可通过AppScript或Sheets统计Google Workspace各应用的用户使用数量

问题解答

完全可以通过AppScript结合Google Sheets实现该需求,具体方案如下:

前置要求

  • 你需要拥有Google Workspace超级管理员权限,或被分配了Admin SDK Reports API的访问权限,否则无法拉取组织内全量用户的使用数据
  • 首次使用前需要在AppScript编辑器中开启对应API服务

具体实现步骤

  1. 新建一个空白Google Sheets,点击顶部菜单栏「扩展程序」-「Apps 脚本」打开脚本编辑器
  2. 在编辑器左侧侧边栏点击「服务」按钮,搜索并添加Admin SDK Reports API服务
  3. 清空编辑器默认代码,粘贴如下代码:
function getWorkspaceAppUsageCount() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 清空旧数据并写入表头
  sheet.clear();
  sheet.appendRow(["用户邮箱", "Gmail最后使用时间", "Sheets最后使用时间", "Docs最后使用时间", "Slides最后使用时间"]);

  // 自定义统计的时间范围,示例为统计过去30天的活跃用户
  const statsDays = 30;
  const startDate = new Date();
  startDate.setDate(startDate.getDate() - statsDays);
  const startTime = startDate.toISOString();

  try {
    let pageToken = null;
    // 分页拉取全量用户使用数据
    do {
      const reportRes = AdminReports.UserUsageReport.get('all', startTime, {
        pageToken: pageToken,
        parameters: 'gmail:last_interaction_time,sheets:last_interaction_time,docs:last_interaction_time,slides:last_interaction_time'
      });
      if (reportRes.items) {
        reportRes.items.forEach(userReport => {
          // 格式化参数为键值对方便读取
          const paramMap = userReport.parameters.reduce((res, item) => {
            res[item.name] = item.value;
            return res;
          }, {});
          // 写入单条用户数据
          sheet.appendRow([
            userReport.entity.userEmail,
            paramMap['gmail:last_interaction_time'] || '未使用',
            paramMap['sheets:last_interaction_time'] || '未使用',
            paramMap['docs:last_interaction_time'] || '未使用',
            paramMap['slides:last_interaction_time'] || '未使用'
          ]);
        });
      }
      pageToken = reportRes.nextPageToken;
    } while (pageToken);

    // 自动写入统计公式计算各应用活跃用户数
    const lastDataRow = sheet.getLastRow();
    sheet.getRange(lastDataRow + 2, 1).setValue(`过去${statsDays}天各应用活跃用户统计`);
    sheet.getRange(lastDataRow + 3, 1, 2, 5).setValues([
      ['统计项', 'Gmail', 'Sheets', 'Docs', 'Slides'],
      ['活跃用户数',
        `=COUNTIF(B2:B${lastDataRow},"<>未使用")`,
        `=COUNTIF(C2:C${lastDataRow},"<>未使用")`,
        `=COUNTIF(D2:D${lastDataRow},"<>未使用")`,
        `=COUNTIF(E2:E${lastDataRow},"<>未使用")`
      ]
    ]);
    // 自适应列宽
    sheet.autoResizeColumns(1, 5);
    SpreadsheetApp.getUi().alert('数据拉取与统计完成');
  } catch (err) {
    SpreadsheetApp.getUi().alert(`操作失败:${err.message},请确认你拥有对应管理员权限且已开启Reports API服务`);
  }
}
  1. 保存项目,点击运行按钮,首次运行时按照提示完成授权即可,运行完成后返回Sheets就能看到明细数据和自动统计的活跃用户数。

注意事项

  • 如果没有组织管理员权限,只能拉取你个人的使用数据,无法统计全组织用户
  • 可以通过修改代码中的statsDays参数调整统计的时间范围,比如改成7就是统计近7天活跃用户
  • 你也可以根据需求自定义统计逻辑,比如筛选特定部门用户、排除已离职账号等

内容的提问来源于stack exchange,提问作者King Michael King

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:36:01