Все позиции, созданные с помощью API Display & Video 360, изначально создаются в состоянии черновика. В этом состоянии проекта позиции не показывают рекламу, поэтому вы можете корректировать настройки и таргетинг, при этом эти изменения не повлияют на текущий показ объявлений. На этой странице описаны действия, которые необходимо предпринять, чтобы подтвердить, что ваша позиция готова к показу рекламы, а также как изменить ее статус на активный.
Что сделать перед активацией
Учитывая, что позиции – это способ расходования доходов от рекламы за счет покупки и показа рекламы, важно убедиться, что после активации позиция будет показывать рекламу по назначению. Ниже приведены несколько вещей, которые следует учитывать перед активацией позиции:
- Убедитесь, что настройки периода действия верны. Проверьте поле
flight
позиции и убедитесь, что окно периода действия для позиции установлено правильно. Временное окно позиции может быть настроено специально для нее или унаследовано родительским заказом на размещение. - Убедитесь, что нет предупреждений, блокирующих показ позиции. Используйте
advertisers.lineItems.get
, чтобы получить ресурс позиции, и проверьте полеwarningMessages
, чтобы убедиться, что в позиции нет предупреждений, которые могут помешать ее показу. ПеречислениеLineItemWarningMessage
отмечает влияние каждого предупреждения. - Убедитесь, что все родительские ресурсы также активны. Активная позиция не начнет показывать объявления, если ее родительский рекламодатель, кампания или заказ на размещение не активны. Получите эти ресурсы с помощью методов
GET
в сервисах «Рекламодатели» , «Кампании» и «Заказы на размещение» .
Активировать позицию
Активируйте позицию, обновив ее entityStatus
до ENTITY_STATUS_ACTIVE
. Вы можете обновить это поле для отдельной позиции, используя метод advertisers.lineItems.patch
, а для нескольких позиций в рамках данного рекламодателя, используя advertisers.lineItems.bulkUpdate
.
Вот пример использования bulkUpdate
для активации нескольких позиций:
Ява
// 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())); }
Питон
# 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); } }