Ad Schedules

Stay organized with collections Save and categorize content based on your preferences.

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());
}