所有使用 Display & Video 360 API 建立的委刊項,一開始都是草稿狀態。處於這個草稿狀態的委刊項不會放送廣告,因此您可以隨意調整設定和指定目標,不會影響目前廣告放送。本頁說明應採取哪些步驟來確認您的委刊項已可放送廣告,以及將狀態更新為有效狀態。
啟用前應採取的行動
由於委刊項是廣告收益和廣告放送的支出方式,您必須確保委刊項在啟用後會正常放送廣告。啟用委刊項前, 請考量以下事項:
- 確認檔期設定正確無誤:檢查委刊項的
flight
欄位,確認委刊項的檔期視窗設定正確無誤。您可以自訂委刊項的檔期視窗,或由上層廣告訂單沿用。 - 確認沒有警告導致委刊項放送功能遭到封鎖:使用
advertisers.lineItems.get
擷取委刊項資源,然後檢查warningMessages
欄位,確認委刊項沒有任何警告可能導致委刊項放送受限。LineItemWarningMessage
列舉會記錄每個警告的影響。 - 確認所有父項資源也都處於有效狀態:如果有效委刊項的上層廣告客戶、廣告活動或廣告訂單並非有效,就不會開始放送廣告。在廣告客戶、廣告活動和廣告訂單服務中使用
GET
方法擷取這些資源。
啟用委刊項
將委刊項的 entityStatus
欄位更新為 ENTITY_STATUS_ACTIVE
,即可啟用委刊項。您可以使用 advertisers.lineItems.patch
方法,更新單一委刊項的這個欄位,也可以針對某個廣告客戶中的多個委刊項更新這個欄位。使用 advertisers.lineItems.bulkUpdate
即可。
以下範例說明如何使用 bulkUpdate
啟用多個委刊項:
Java
// Create the line item structure. LineItem targetLineItem = new LineItem(); targetLineItem.setEntityStatus("ENTITY_STATUS_ACTIVE"); // Create the bulk update request body. BulkUpdateLineItemsRequest requestBody = new BulkUpdateLineItemsRequest(); requestBody.setLineItemIds(line-item-ids); requestBody.setTargetLineItem(targetLineItem); requestBody.setUpdateMask("entityStatus"); // Configure the bulk update request. LineItems.BulkUpdate request = service.advertisers().lineItems() .bulkUpdate(advertiser-id, requestBody); // Update the line items. BulkUpdateLineItemsResponse response = request.execute(); // Display the line items that were updated, failed, and skipped. if (response.getUpdatedLineItemIds() != null) { System.out.printf( "The following line item IDs were successfully updated: %s.\n", Arrays.toString(response.getUpdatedLineItemIds().toArray())); } if (response.getFailedLineItemIds() != null) { System.out.printf("The following line item IDs failed to update: %s.\n", Arrays.toString(response.getFailedLineItemIds().toArray())); if (response.getErrors() != null) { System.out.printf( "The failed updates were caused by the following errors: %s.\n", Arrays.toString(response.getErrors().toArray())); } } if (response.getSkippedLineItemIds() != null) { System.out.printf( "The following line items IDs were skipped in the update: %s.\n", Arrays.toString(response.getSkippedLineItemIds().toArray())); }
Python
# Create a line item object with only updated entity status. line_item_obj = { 'entityStatus': 'ENTITY_STATUS_ACTIVE' } # Build the bulk update request. bulk_update_request = { 'lineItemIds': line-item-ids, 'targetLineItem': line_item_obj, 'updateMask': "entityStatus" } # Update the line items. response = service.advertisers().lineItems().bulkUpdate( advertiserId=advertiser-id, body=bulk_update_request ).execute() # Display the line items that were updated, failed, and skipped. if 'updatedLineItemIds' in response: print("The following line item IDs were updated: %s" % response['updatedLineItemIds']) if 'failedLineItemIds' in response: print("The following line item IDs failed to update: %s" % response['failedLineItemIds']) if 'errors' in response: print("The failed updates were caused by the following errors:") for error in response["errors"]: print("Error code: %s, Message: %s" % (error["code"], error["message"])) if 'skippedLineItemIds' in response: print("The following line items IDs were skipped in the update:: %s" % response['skippedLineItemIds'])
PHP
// Create request body. $body = new Google_Service_DisplayVideo_BulkUpdateLineItemsRequest(); $body->setLineItemIds(line-item-ids); // Create target line item with updated fields. $lineItem = new Google_Service_DisplayVideo_LineItem(); $lineItem->setEntityStatus('ENTITY_STATUS_ACTIVE'); $body->setTargetLineItem($lineItem); // Set update mask in request body. $body->setUpdateMask("entityStatus"); // Call the API, updating the entity status for the identified line item. $response = $service->advertisers_lineItems->bulkUpdate( advertiser-id, $body ); // Display the line items that were updated, failed, and skipped. if (!empty($response->getUpdatedLineItemIds())) { printf('The following line item IDs were updated:\n'); foreach ($response->getUpdatedLineItemIds() as $id) { printf('%s\n', $id); } } if (!empty($response->getFailedLineItemIds())) { print('The following line item IDs failed to update:\n'); foreach ($response->getFailedLineItemIds() as $id) { printf('%s\n', $id); } if (!empty($response->getErrors())) { print('The failed updates were caused by the following errors:\n'); foreach ($response->getErrors() as $error) { printf( 'Error Code: %s, Message: %s\n', $error->getCode(), $error->getMessage() ); } } } if (!empty($response->getSkippedLineItemIds())) { print('The following line item IDs were skipped in the update:\n'); foreach ($response->getSkippedLineItemIds() as $id) { printf('%s\n', $id); } }