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

Google Ads脚本超时如何优化?含拒登广告排查多层循环场景

优化Google Ads脚本解决超时问题

你的脚本超时主要源于三层嵌套循环带来的大量API调用,以及频繁向Sheets写入数据的低效操作。以下是针对性的优化方案:

核心优化方向

  • 直接筛选含违规广告的广告组:跳过逐广告组遍历广告的步骤,通过AdsApp的条件查询直接定位存在DISAPPROVED广告的广告组,大幅减少API请求次数。
  • 批量写入数据:先将所有待记录内容存入数组,最后一次性写入Sheets,避免多次调用appendRow(该操作每次都会触发网络请求,耗时极高)。
  • 减少重复API调用:提前缓存账户名称,避免在循环中重复调用获取接口。

优化后的代码

function main() {
  var sheetId = 'XXX';
  var sheetName = 'XXX';
  var spreadsheet = SpreadsheetApp.openById(sheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);
  
  // 初始化表格
  if (!sheet) {
    sheet = spreadsheet.insertSheet(sheetName);
  } else {
    sheet.clearContents();
  }
  
  // 准备表头和结果数组
  var headers = ['Account Name', 'Campaign', 'Ad Group'];
  var results = [headers]; // 把表头纳入结果数组,最后统一写入

  // 遍历所有客户账户
  var accountIterator = AdsManagerApp.accounts().get();
  while (accountIterator.hasNext()) {
    var account = accountIterator.next();
    AdsManagerApp.select(account);
    var accountName = account.getName(); // 提前缓存账户名,减少重复API调用

    // 直接筛选:包含至少一个DISAPPROVED广告的启用状态广告组
    var adGroupIterator = AdsApp.adGroups()
        .withCondition('CampaignStatus = ENABLED')
        .withCondition('AdGroupStatus = ENABLED')
        .withCondition('AdsPolicyApprovalStatus = DISAPPROVED') // 关键:过滤目标广告组
        .get();

    // 收集符合条件的广告组数据
    while (adGroupIterator.hasNext()) {
      var adGroup = adGroupIterator.next();
      results.push([
        accountName,
        adGroup.getCampaign().getName(),
        adGroup.getName()
      ]);
    }
  }

  // 批量写入所有数据
  if (results.length > 1) { // 仅当存在非表头数据时执行写入
    sheet.getRange(1, 1, results.length, results[0].length).setValues(results);
  }
}

优化细节说明

  1. 条件筛选广告组:通过AdsPolicyApprovalStatus = DISAPPROVED条件,让Google Ads API直接返回目标广告组,省去了遍历每个广告组下所有广告的冗余操作,API调用量骤减。
  2. 批量写入:将所有记录存入数组后用setValues一次性写入,把网络请求次数从N次压缩到1次,效率提升显著。
  3. 缓存账户名:在账户循环中提前获取并存储账户名称,避免在广告组循环中重复调用account.getName(),减少不必要的API开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:23:23