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

如何解决Google Apps Script删除GA上传文件的格式匹配错误?

解决Google Analytics上传文件删除失败的问题

嘿,我刚好碰到过类似的坑,来给你捋捋怎么搞定!

你遇到的GoogleJsonResponseException: Invalid value 'UA-xxxxxxxx-x'. Values must match the following regular expression: '\d+'错误,核心原因就是把GA的属性ID当成账户ID传给API了——GA管理API里,不同操作对ID的要求是完全不一样的:

先搞清楚两个关键ID的区别

  • 账户ID:纯数字格式(比如12345678),是你GA账户的顶级ID,在后台「管理」页面的第一个下拉菜单里就能看到。
  • 属性ID:就是你用的UA-xxxxxxxx-x(旧版UA)或者G-xxxxxxx(GA4),属于账户下的子属性ID。

修正你的删除代码

你之前的删除调用肯定是把UA-xxx填到了需要账户ID的参数位置,改成纯数字的账户ID就好。举个正确的代码示例:

// 先定义正确的ID
const GA_ACCOUNT_ID = "12345678"; // 替换成你的纯数字账户ID
const GA_PROPERTY_ID = "UA-xxxxxxxx-x"; // 你的属性ID(保持不变)
const DATA_SOURCE_ID = "你的数据源ID"; // 上传文件对应的数据源ID
const UPLOAD_RECORD_ID = "要删除的上传记录ID"; // 目标上传记录的ID

// 正确调用删除接口
function deleteOldUpload() {
  try {
    Analytics.Management.Uploads.deleteUploadData(
      GA_ACCOUNT_ID,
      GA_PROPERTY_ID,
      DATA_SOURCE_ID,
      UPLOAD_RECORD_ID
    );
    console.log("旧上传文件删除成功!");
  } catch (e) {
    console.error("删除失败:", e.message);
  }
}

找不到账户ID?用脚本自动获取

如果你记不清账户ID,直接跑这个小脚本就能在日志里看到:

function listGAAccounts() {
  const accounts = Analytics.Management.Accounts.list();
  if (accounts.items && accounts.items.length > 0) {
    accounts.items.forEach(account => {
      console.log(`账户名称:${account.name},账户ID:${account.id}`);
    });
  } else {
    console.log("未找到GA账户,请检查授权是否正确");
  }
}

运行后打开「查看」->「日志」就能拿到你的纯数字账户ID啦。

额外提醒

如果是GA4的话,删除上传数据的API接口和UA不一样,得用AnalyticsAdmin或者AnalyticsData相关的方法,但看你的错误提示是UA的格式,所以上面的方案应该完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:07:37