// Set the custom targeting.
targeting.setCustomTargeting(topCustomCriteriaSet);
// Create a line item.
LineItem lineItem = new LineItem();
lineItem.setName("Line item #" + new Random().nextInt(Integer.MAX_VALUE));
lineItem.setOrderId(orderId);
lineItem.setTargeting(targeting);
// Allow the line item to be booked even if there is not enough inventory.
lineItem.setAllowOverbook(true);
// Set the line item type to STANDARD and priority to High. In this case,
// 8 would be Normal, and 10 would be Low.
lineItem.setLineItemType(LineItemType.STANDARD);
lineItem.setPriority(6);
// Set the creative rotation type to even.
lineItem.setCreativeRotationType(CreativeRotationType.EVEN);
// Create creative placeholder size.
Size size = new Size();
size.setWidth(300);
size.setHeight(250);
size.setIsAspectRatio(false);
// Create the creative placeholder.
CreativePlaceholder creativePlaceholder = new CreativePlaceholder();
creativePlaceholder.setSize(size);
// Set the size of creatives that can be associated with this line item.
lineItem.setCreativePlaceholders(new CreativePlaceholder[] {creativePlaceholder});
// Set the length of the line item to run.
lineItem.setStartDateTimeType(StartDateTimeType.IMMEDIATELY);
lineItem.setEndDateTime(
DateTimes.toDateTime(Instant.now().plus(Duration.standardDays(30L)), "America/New_York"));
// Set the cost per unit to $2.
lineItem.setCostType(CostType.CPM);
lineItem.setCostPerUnit(new Money("USD", 2000000L));
// Set the number of units bought to 500,000 so that the budget is
// $1,000.
lineItem.setUnitsBought(500000L);
lineItem.setUnitType(UnitType.IMPRESSIONS);
// Create the line item on the server.
LineItem[] lineItems = lineItemService.createLineItems(new LineItem[] {lineItem});
for (LineItem createdLineItem : lineItems) {