如何使用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("批量时段出价调整任务完成"); }
关键说明
- 筛选条件自定义:
- 可通过广告系列名称、标签ID、状态(如
Status = ENABLED)等条件筛选目标,修改withCondition参数即可。
- 可通过广告系列名称、标签ID、状态(如
- 时段规则设置:
AdScheduleDay是内置枚举,对应周一到周日的固定值;bidModifier范围为0.1~10.0,0.1代表出价降低90%,10.0代表出价提升900%;
- 运行注意事项:
- 在Google Ads后台「工具与设置」→「脚本」中创建新脚本,粘贴代码后授权运行;
- 正式运行前建议用
withLimit()限制处理数量,测试无误后再批量执行; - 可通过脚本日志查看每个广告系列的调整结果。
内容的提问来源于stack exchange,提问作者mert dökümcü
相关产品推荐
相关产品推荐

