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

如何使用Google Ads Script批量编辑广告系列投放时段出价调整?

用Google Ads Script批量编辑广告系列投放时段出价调整

核心思路

通过Google Ads Script筛选目标广告系列,定义统一的时段出价调整规则,然后批量遍历广告系列完成规则的创建或更新。以下是可直接复用的脚本及关键说明:

完整脚本示例

function batchAdjustAdScheduleBids() {
  // 1. 自定义目标广告系列筛选条件(二选一或结合使用)
  const campaignNameKeyword = "促销"; // 筛选名称包含该关键词的广告系列
  // const targetLabelIds = ["123456789", "987654321"]; // 筛选带有指定标签ID的广告系列

  // 2. 定义时段出价调整规则(按需修改)
  const adScheduleRules = [
    {
      days: [AdScheduleDay.MONDAY, AdScheduleDay.TUESDAY, AdScheduleDay.WEDNESDAY, AdScheduleDay.THURSDAY, AdScheduleDay.FRIDAY],
      startHour: 9,
      startMinute: 0,
      endHour: 18,
      endMinute: 0,
      bidModifier: 1.2 // 出价+20%
    },
    {
      days: [AdScheduleDay.MONDAY, AdScheduleDay.THURSDAY, AdScheduleDay.FRIDAY],
      startHour: 0,
      startMinute: 0,
      endHour: 9,
      endMinute: 0,
      bidModifier: 0.7 // 出价-30%
    },
    {
      days: [AdScheduleDay.SATURDAY, AdScheduleDay.SUNDAY],
      startHour: 0,
      startMinute: 0,
      endHour: 24,
      endMinute: 0,
      bidModifier: 0.5 // 周末全天出价-50%
    }
  ];

  // 3. 获取目标广告系列
  let campaignQuery = AdsApp.campaigns()
    .withCondition(`Name CONTAINS "${campaignNameKeyword}"`);
    // 若用标签筛选,替换上方条件:.withCondition(`LabelIds CONTAINS_ALL [${targetLabelIds.join(',')}]`)

  // 可选:限制测试数量,正式运行时删除
  // campaignQuery = campaignQuery.withLimit(3);

  const campaigns = campaignQuery.get();

  // 4. 批量处理时段出价调整
  while (campaigns.hasNext()) {
    const campaign = campaigns.next();
    
    // 可选:清除现有所有时段规则(完全替换时启用)
    // const existingSchedules = campaign.adSchedules().get();
    // while (existingSchedules.hasNext()) {
    //   existingSchedules.next().remove();
    // }

    // 应用新规则:存在则更新,不存在则创建
    adScheduleRules.forEach(rule => {
      rule.days.forEach(day => {
        const existingSchedule = campaign.adSchedules()
          .withCondition(`DayOfWeek = ${day}`)
          .withCondition(`StartHour = ${rule.startHour}`)
          .withCondition(`StartMinute = ${rule.startMinute}`)
          .withCondition(`EndHour = ${rule.endHour}`)
          .withCondition(`EndMinute = ${rule.endMinute}`)
          .get();

        if (existingSchedule.hasNext()) {
          existingSchedule.next().setBidModifier(rule.bidModifier);
          console.log(`更新广告系列【${campaign.getName()}】时段(${day} ${rule.startHour}:00-${rule.endHour}:00)出价系数为${rule.bidModifier}`);
        } else {
          campaign.newAdScheduleBuilder()
            .withDayOfWeek(day)
            .withStartHour(rule.startHour)
            .withStartMinute(rule.startMinute)
            .withEndHour(rule.endHour)
            .withEndMinute(rule.endMinute)
            .withBidModifier(rule.bidModifier)
            .build();
          console.log(`为广告系列【${campaign.getName()}】创建时段(${day} ${rule.startHour}:00-${rule.endHour}:00)出价系数为${rule.bidModifier}`);
        }
      });
    });
  }
  console.log("批量时段出价调整任务完成");
}

关键说明

  1. 筛选条件自定义:
    • 可通过广告系列名称、标签ID、状态(如Status = ENABLED)等条件筛选目标,修改withCondition参数即可。
  2. 时段规则设置:
    • AdScheduleDay是内置枚举,对应周一到周日的固定值;
    • bidModifier范围为0.1~10.0,0.1代表出价降低90%,10.0代表出价提升900%;
  3. 运行注意事项:
    • 在Google Ads后台「工具与设置」→「脚本」中创建新脚本,粘贴代码后授权运行;
    • 正式运行前建议用withLimit()限制处理数量,测试无误后再批量执行;
    • 可通过脚本日志查看每个广告系列的调整结果。

内容的提问来源于stack exchange,提问作者mert dökümcü

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:27:44