Activar línea de pedido

Inicialmente, todas las líneas de pedido creadas con la API de Display & Video 360 se crean en estado de borrador. En este estado de borrador, las líneas de pedido no publican anuncios, por lo que puedes ajustar la configuración y la segmentación sin que esos cambios afecten la publicación de anuncios actual. En esta página, se describen los pasos que debes seguir a fin de confirmar que tu línea de pedido esté lista para publicar anuncios y cómo actualizar su estado a activo.

Qué hacer antes de la activación

Dado que las líneas de pedido son la forma en que se gastan tus ingresos publicitarios a través de la compra y publicación de anuncios, es importante asegurarse de que la línea de pedido publique anuncios según lo previsto cuando se active. A continuación, se incluyen algunos aspectos que debes considerar antes de activar tu línea de pedido:

  • Asegúrate de que la configuración del período de publicación sea correcta: Verifica el campo flight de la línea de pedido para asegurarte de que el período de publicación de la línea de pedido esté configurado correctamente. La ventana de publicación de una línea de pedido puede estar personalizada para la línea de pedido o estar heredada por el pedido de inserción superior.
  • Verifica que no haya advertencias que bloqueen la publicación de la línea de pedido: Usa advertisers.lineItems.get para recuperar un recurso de línea de pedido y revisa el campo warningMessages para comprobar que la línea de pedido no tenga advertencias que puedan impedir la publicación de la línea de pedido. La enumeración LineItemWarningMessage indica el impacto de cada advertencia.
  • Confirma que todos los recursos superiores también estén activos: Una línea de pedido activa no comenzará a publicar anuncios si su anunciante, campaña o pedido de inserción superiores no están activos. Recupera estos recursos con los métodos GET en los servicios Anunciantes, Campañas y Pedidos de inserción.

Cómo activar una línea de pedido

Para activar una línea de pedido, actualiza su campo entityStatus a ENTITY_STATUS_ACTIVE. Puedes actualizar este campo para una línea de pedido individual con el método advertisers.lineItems.patch y para varias líneas de pedido dentro de un anunciante determinado con advertisers.lineItems.bulkUpdate.

Este es un ejemplo de cómo usar bulkUpdate para activar varias líneas de pedido:

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);
    }
}