创建订单项

订单项会对展示机会出价,并投放购买的广告资源中的广告素材。 LineItem 资源会根据设置的预算、出价策略和定位来执行此操作。

YouTube 订单项和需求开发订单项具有称为广告组的子资源。广告组可在单个订单项预算下提供另一层级的定位。

选择配置

在创建订单项之前,请先查看并确定以下设置:

LineItem 资源还有许多可选字段。有些仅供某些类型的订单项使用。如需了解详情,请参阅参考文档

选择广告素材

您需要先为订单项分配至少一个有效的已获批广告素材,然后该订单项才能开始投放。订单项类型会限制您可以分配的广告素材类型。

使用广告素材 list 函数检索现有广告素材。如果您需要为订单项创建新广告素材,请参阅我们的分配广告素材指南。使用广告素材 ID 将广告素材分配给订单项。

如何创建订单项

以下示例展示了如何使用以下设置创建展示广告订单项:

  • 沿用的排期和预算。
  • 合作伙伴收入模式为总媒体费用的 0.1%。
  • 一种出价策略,旨在根据可见展示次数最大限度地提高支出。

Java

// Provide the ID of the parent advertiser.
long advertiserId = advertiser-id

// Provide the ID of the parent insertion order.
long insertionOrderId = insertion-order-id

// Provide the display name of the line item.
String displayName = display-name

// Provide the list of IDs of the creative resources that the line item will
// serve.
List<Long> creativeIds = creative-ids;

// Provide whether the line item will serve EU political ads.
String containsEuPoliticalAds = contains-eu-political-ads

// Create the line item structure.
LineItem lineItem =
    new LineItem()
        .setInsertionOrderId(insertionOrderId)
        .setDisplayName(displayName)
        .setLineItemType("LINE_ITEM_TYPE_DISPLAY_DEFAULT")
        .setEntityStatus("ENTITY_STATUS_DRAFT")
        .setCreativeIds(creativeIds)
        .setContainsEuPoliticalAds(containsEuPoliticalAds);

// Create and set the line item flight.
LineItemFlight lineItemFlight =
    new LineItemFlight().setFlightDateType("LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED");
lineItem.setFlight(lineItemFlight);

// Create and set the line item budget.
LineItemBudget lineItemBudget =
    new LineItemBudget().setBudgetAllocationType("LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED");
lineItem.setBudget(lineItemBudget);

// Create and set the pacing setting.
Pacing pacing =
    new Pacing()
        .setPacingPeriod("PACING_PERIOD_FLIGHT")
        .setPacingType("PACING_TYPE_ASAP")
        .setDailyMaxMicros(10_000L);
lineItem.setPacing(pacing);

// Create and set the frequency cap.
FrequencyCap frequencyCap =
    new FrequencyCap().setTimeUnit("TIME_UNIT_DAYS").setTimeUnitCount(1).setMaxImpressions(10);
lineItem.setFrequencyCap(frequencyCap);

// Create and set the partner revenue model.
PartnerRevenueModel partnerRevenueModel =
    new PartnerRevenueModel()
        .setMarkupType("PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP")
        .setMarkupAmount(100L);
lineItem.setPartnerRevenueModel(partnerRevenueModel);

// Create and set the bidding strategy.
BiddingStrategy biddingStrategy =
    new BiddingStrategy()
        .setMaximizeSpendAutoBid(
            new MaximizeSpendBidStrategy()
                .setPerformanceGoalType("BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED"));
lineItem.setBidStrategy(biddingStrategy);

// Configure the create request.
LineItems.Create request = service.advertisers().lineItems().create(advertiserId, lineItem);

// Create the line item.
LineItem response = request.execute();

// Display the new line item ID.
System.out.printf("Line Item %s was created.", response.getName());

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the parent insertion order.
insertion_order_id = insertion-order-id

# Provide the display name of the line item.
display_name = display-name

# Provide the list of IDs of the creative resources that the line item will
# serve.
creative_ids = creative-ids

# Provide whether the line item will serve EU political ads.
contains_eu_political_ads = contains-eu-political-ads

# Create a line item object with example values.
line_item_obj = {
    "insertionOrderId": insertion_order_id,
    "displayName": display_name,
    "lineItemType": "LINE_ITEM_TYPE_DISPLAY_DEFAULT",
    "entityStatus": "ENTITY_STATUS_DRAFT",
    "flight": {"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED"},
    "budget": {
        "budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED"
    },
    "pacing": {
        "pacingPeriod": "PACING_PERIOD_FLIGHT",
        "pacingType": "PACING_TYPE_ASAP",
        "dailyMaxMicros": 10000,
    },
    "frequencyCap": {
        "timeUnit": "TIME_UNIT_DAYS",
        "timeUnitCount": 1,
        "maxImpressions": 10,
    },
    "partnerRevenueModel": {
        "markupType": (
            "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
        ),
        "markupAmount": 100,
    },
    "creativeIds": creative_ids,
    "bidStrategy": {
        "maximizeSpendAutoBid": {
            "performanceGoalType": (
                "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED"
            )
        }
    },
    "contains_eu_political_ads": contains_eu_political_ads,
}

# Build and execute request.
response = (
    service.advertisers()
    .lineItems()
    .create(advertiserId=advertiser_id, body=line_item_obj)
    .execute()
)

# Display the new line item.
print(f"Line Item {response['name']} was created.")

PHP

// Provide the ID of the parent advertiser.
$advertiserId = advertiser-id;

// Provide the ID of the parent insertion order.
$insertionOrderId = insertion-order-id;

// Provide the display name of the line item.
$displayName = display-name;

// Provide the list of IDs of the creative resources that the line item
// will serve.
$creativeIds =  creative-ids;

// Provide whether the line item will serve EU political ads.
$containsEuPoliticalAds = contains-eu-political-ads;

// Create the line item structure.
$lineItem = new Google_Service_DisplayVideo_LineItem();
$lineItem->setInsertionOrderId($insertionOrderId);
$lineItem->setDisplayName($displayName);
$lineItem->setLineItemType('LINE_ITEM_TYPE_DISPLAY_DEFAULT');
$lineItem->setEntityStatus('ENTITY_STATUS_DRAFT');
$lineItem->setCreativeIds($creativeIds);
$lineItem->setContainsEuPoliticalAds($containsEuPoliticalAds);

// Create and set the line item flight.
$flight = new Google_Service_DisplayVideo_LineItemFlight();
$flight->setFlightDateType('LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED');
$lineItem->setFlight($flight);

// Create and set the line item budget.
$budget = new Google_Service_DisplayVideo_LineItemBudget();
$budget->setBudgetAllocationType(
    'LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED'
);
$lineItem->setBudget($budget);

// Create and set the pacing setting.
$pacing = new Google_Service_DisplayVideo_Pacing();
$pacing->setPacingPeriod('PACING_PERIOD_FLIGHT');
$pacing->setPacingType('PACING_TYPE_ASAP');
$pacing->setDailyMaxMicros(10000);
$lineItem->setPacing($pacing);

// Create and set the frequency cap.
$frequencyCap = new Google_Service_DisplayVideo_FrequencyCap();
$frequencyCap->setMaxImpressions(10);
$frequencyCap->setTimeUnit('TIME_UNIT_DAYS');
$frequencyCap->setTimeUnitCount(1);
$lineItem->setFrequencyCap($frequencyCap);

// Create and set the partner revenue model.
$partnerRevenueModel =
    new Google_Service_DisplayVideo_PartnerRevenueModel();
$partnerRevenueModel->setMarkupType(
    'PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP'
);
$partnerRevenueModel->setMarkupAmount(100);
$lineItem->setPartnerRevenueModel($partnerRevenueModel);

// Create and set the bidding strategy.
$maxSpendBidStrategy = new Google_Service_DisplayVideo_MaximizeSpendBidStrategy();
$maxSpendBidStrategy->setPerformanceGoalType('BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED');
$biddingStrategy = new Google_Service_DisplayVideo_BiddingStrategy();
$biddingStrategy->setMaximizeSpendAutoBid($maxSpendBidStrategy);
$lineItem->setBidStrategy($biddingStrategy);

// Call the API, creating the line item under the advertiser and
// insertion order given.
try {
    $result = $this->service->advertisers_lineItems->create(
        $advertiserId,
        $lineItem
    );
} catch (\Exception $e) {
    $this->renderError($e);
    return;
}

// Display the new line item ID.
printf('<p>Line Item %s was created.</p>', $result['name']);