GoogleAPI Adwords Ad Scheduling

广告安排

广告安排作用于广告系列,使用CampaignCriterionService 。

你不但可以决定一周中的周几和开始时间、结束时间,还有bid modifier(每次都能增加或减少出价)

Note:一天小于六个时段

Code examples

// Obtain a campaignId you want to configure
Long campaignId =  Long.valueOf("INSERT_CAMPAIGN_ID_HERE");

// Closed on Sunday, so we don't configure an AdSchedule for Sunday.
DayOfWeek[] days = new DayOfWeek[] {DayOfWeek.MONDAY,
   
DayOfWeek.TUESDAY,
   
DayOfWeek.WEDNESDAY,
   
DayOfWeek.THURSDAY,
   
DayOfWeek.FRIDAY,
   
DayOfWeek.SATURDAY};

List<CampaignCriterionOperation> operations = new ArrayList<CampaignCriterionOperation>();
for (int i = 0; i < 6; i++) {
 
AdSchedule schedule = new AdSchedule();
  schedule
.setDayOfWeek(days[i]);
 
// Start at 8:45 am...
  schedule
.setStartHour(8);
  schedule
.setStartMinute(MinuteOfHour.FORTY_FIVE);
 
// ... and end at 7:45 pm
  schedule
.setEndHour(19);
  schedule
.setEndMinute(MinuteOfHour.FORTY_FIVE);
 
CampaignCriterionOperation operation = new CampaignCriterionOperation();
 
CampaignCriterion campaignCriterion = new CampaignCriterion();

  campaignCriterion
.setCampaignId(campaignId);
  campaignCriterion
.setCriterion(schedule);
 
// Run at normal bid rates
  campaignCriterion
.setBidModifier(1.0);
  operation
.setOperand(campaignCriterion);
  operation
.setOperator(Operator.ADD);
  operations
.add(operation);
}

CampaignCriterionReturnValue result =
    campaignCriterionService
.mutate(operations
       
.toArray(new CampaignCriterionOperation[operations.size()]));

In order to give customers fair warning about a special lunchtime deal, advertising would start early in the morning and increase significantly during the promotion hours:

 
 
// Obtain a campaignId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");

List<CampaignCriterionOperation> operations = new ArrayList<CampaignCriterionOperation>();
AdSchedule early = new AdSchedule();
AdSchedule peak = new AdSchedule();
CampaignCriterionOperation operationEarly = new CampaignCriterionOperation();
CampaignCriterion campaignCriterionEarly = new CampaignCriterion();
CampaignCriterionOperation operationPeak = new CampaignCriterionOperation();
CampaignCriterion campaignCriterionPeak = new CampaignCriterion();

// Sample schedule for Monday
early
.setDayOfWeek(DayOfWeek.MONDAY);
peak
.setDayOfWeek(DayOfWeek.MONDAY);
// Start at 8:00 am...
early
.setStartHour(8);
early
.setStartMinute(MinuteOfHour.ZERO);
// ... and run until promotion starts
early
.setEndHour(12);
early
.setEndMinute(MinuteOfHour.ZERO);
// Run at normal bid rates
campaignCriterionEarly
.setBidModifier(1.0);

// Start higher bidding at noon...
peak
.setStartHour(12);
peak
.setStartMinute(MinuteOfHour.ZERO);
// ... and run until promotion ends...
peak
.setEndHour(14);
peak
.setEndMinute(MinuteOfHour.ZERO);
// ... at double the bid!
campaignCriterionPeak
.setBidModifier(2.0);

campaignCriterionEarly
.setCampaignId(campaignId);
campaignCriterionEarly
.setCriterion(early);
campaignCriterionPeak
.setCampaignId(campaignId);
campaignCriterionPeak
.setCriterion(peak);

operationEarly
.setOperand(campaignCriterionEarly);
operationEarly
.setOperator(Operator.ADD);
operationPeak
.setOperand(campaignCriterionPeak);
operationPeak
.setOperator(Operator.ADD);
operations
.add(operationEarly);
operations
.add(operationPeak);

CampaignCriterionReturnValue result =
    campaignCriterionService
.mutate(operations
       
.toArray(new CampaignCriterionOperation[operations.size()]));

This example shows how you stop ads showing at a certain day. You need to send an AdSchedule with the same Id as the existing AdSchedule.

 
 
// Suppose you already have a schedule of 8:45 am to 7:45 pm for Monday to Saturday

// Obtain the campaignId and criterionId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");
Long criterionIdForSaturday = Long.valueOf("INSERT_CRITERION_ID_HERE");

List<CampaignCriterionOperation> removeOperations = new ArrayList<CampaignCriterionOperation>();

// Remove a schedule for Saturday
AdSchedule removeScheduleForSaturday = new AdSchedule();
removeScheduleForSaturday
.setId(criterionIdForSaturday);

CampaignCriterionOperation removeOperation = new CampaignCriterionOperation();
CampaignCriterion removeCampaignCriterion = new CampaignCriterion();

removeCampaignCriterion
.setCampaignId(campaignId);
removeCampaignCriterion
.setCriterion(removeScheduleForSaturday);

removeOperation
.setOperand(removeCampaignCriterion);
removeOperation
.setOperator(Operator.REMOVE);
removeOperations
.add(removeOperation);

CampaignCriterionReturnValue removeResult = campaignCriterionService.mutate(
    removeOperations
.toArray(new CampaignCriterionOperation[removeOperations.size()]));

This example shows how you change the time ads are showing. You need to remove the existing AdSchedule first, then send a new one.

 
 
// Suppose you already have a schedule of 8:45 am to 7:45 pm for Monday to Saturday

// Obtain the campaignId and criterionId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");
Long criterionIdForFriday = Long.valueOf("INSERT_CRITERION_ID_HERE");

List<CampaignCriterionOperation> operations = new ArrayList<CampaignCriterionOperation>();

// Remove a schedule for Friday first
AdSchedule removeScheduleForFriday = new AdSchedule();
removeScheduleForFriday
.setId(criterionIdForFriday);

CampaignCriterionOperation removeOperationForFriday = new CampaignCriterionOperation();
CampaignCriterion removeCampaignCriterionForFriday = new CampaignCriterion();

removeCampaignCriterionForFriday
.setCampaignId(campaignId);
removeCampaignCriterionForFriday
.setCriterion(removeScheduleForFriday);

removeOperationForFriday
.setOperand(removeCampaignCriterionForFriday);
removeOperationForFriday
.setOperator(Operator.REMOVE);
operations
.add(removeOperationForFriday);

// Create a new schedule for Friday
AdSchedule addScheduleForFriday = new AdSchedule();
addScheduleForFriday
.setDayOfWeek(DayOfWeek.FRIDAY);
// Start at 3:00 pm...
addScheduleForFriday
.setStartHour(15);
addScheduleForFriday
.setStartMinute(MinuteOfHour.ZERO);
// ... and end at 7:45 pm
addScheduleForFriday
.setEndHour(19);
addScheduleForFriday
.setEndMinute(MinuteOfHour.FORTY_FIVE);
CampaignCriterionOperation addOperationForFriday = new CampaignCriterionOperation();
CampaignCriterion campaignAddCriterionForFriday = new CampaignCriterion();

campaignAddCriterionForFriday
.setCampaignId(campaignId);
campaignAddCriterionForFriday
.setCriterion(addScheduleForFriday);
// Run at normal bid rates
campaignAddCriterionForFriday
.setBidModifier(1.0);
addOperationForFriday
.setOperand(campaignAddCriterionForFriday);
addOperationForFriday
.setOperator(Operator.ADD);
operations
.add(addOperationForFriday);

CampaignCriterionReturnValue result = campaignCriterionService.mutate(
    removeOperations
.toArray(new CampaignCriterionOperation[operations.size()]));




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值