AI-generated Key Takeaways
-
The provided code snippets demonstrate how to manage ad schedules for Google Ads campaigns using scripts.
-
addAdSchedule
function enables setting specific time slots and bid modifiers for campaigns, enhancing control over ad delivery. -
getAdSchedules
function retrieves and displays existing ad schedules associated with a given campaign, aiding in schedule monitoring and management. -
Ad schedules can be defined using either direct parameters or a JSON object, offering flexibility in implementation.
Add ad schedules for a campaign
function addAdSchedule(campaignName) { const campaignIterator = AdsApp.campaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (campaignIterator.hasNext()) { const campaign = campaignIterator.next(); // Add a schedule for Monday, 9AM to 5PM, bid modifier = 1.25. campaign.addAdSchedule('MONDAY', 9, 0, 17, 0, 1.25); // The bid modifier is optional, e.g. // campaign.addAdSchedule('MONDAY', 9, 0, 17, 0); // You can also add an adSchedule as a JSON object, or using // an existing AdSchedule object. // Add a schedule for Saturday, 7AM to 11AM, bid modifier = 1.1. campaign.addAdSchedule({ dayOfWeek: 'SATURDAY', startHour: 7, startMinute: 0, endHour: 11, endMinute: 0, bidModifier: 1.1 }); } }
Get ad schedules for a campaign
function getAdSchedules(campaignName) { const campaignIterator = AdsApp.campaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (!campaignIterator.hasNext()) { throw new Error(`No campaign with name ${campaignName} found.`); } const campaign = campaignIterator.next(); const adScheduleIterator = campaign.targeting().adSchedules().get(); console.log(`Campaign "${campaign.name}" has ${ adScheduleIterator.totalNumEntities()} ad schedules`); return adScheduleIterator; } function formatSchedule(schedule) { function zeroPad(number) { return Utilities.formatString('%02d', number); } return schedule.getDayOfWeek() + ', ' + schedule.getStartHour() + ':' + zeroPad(schedule.getStartMinute()) + ' to ' + schedule.getEndHour() + ':' + zeroPad(schedule.getEndMinute()); }