Activer l'élément de campagne

Tous les éléments de campagne créés à l'aide de l'API Display & Video 360 sont initialement créés à l'état de brouillon. Dans cet état, les éléments de campagne ne diffusent pas d'annonces. Vous êtes donc libre d'ajuster les paramètres et le ciblage sans que ces modifications n'affectent la diffusion d'annonces en cours. Cette page décrit les étapes à suivre pour vérifier que votre élément de campagne est prêt à diffuser des annonces et comment mettre son état à "Actif".

Que faire avant l'activation ?

Étant donné que les éléments de campagne représentent la manière dont vos revenus publicitaires sont dépensés dans l'achat et la diffusion d'annonces, il est important de s'assurer qu'ils diffuseront les annonces comme prévu lorsqu'ils seront activés. Avant d'activer un élément de campagne, veuillez prendre en compte les points suivants:

  • Assurez-vous que les paramètres de période de diffusion sont corrects:vérifiez le champ flight de l'élément de campagne afin de vous assurer que sa période de diffusion est correctement définie. La période de diffusion d'un élément de campagne peut être personnalisée par rapport à l'élément de campagne ou héritée par l'ordre d'insertion parent.
  • Vérifiez qu'aucun avertissement ne bloque la diffusion de l'élément de campagne:utilisez advertisers.lineItems.get pour récupérer une ressource d'élément de campagne, puis vérifiez le champ warningMessages pour vérifier que l'élément de campagne ne comporte aucun avertissement susceptible d'entraver la diffusion de l'élément de campagne. L'énumération LineItemWarningMessage note l'impact de chaque avertissement.
  • Vérifiez que toutes les ressources parentes sont également actives:un élément de campagne actif ne commencera à diffuser des annonces que si l'annonceur, la campagne ou l'ordre d'insertion parent associé ne sont pas actifs. Récupérez ces ressources à l'aide des méthodes GET des services Annonceurs, Campagnes et Ordres d'insertion.

Activer un élément de campagne

Pour activer un élément de campagne, remplacez son champ entityStatus par ENTITY_STATUS_ACTIVE. Vous pouvez mettre à jour ce champ pour un élément de campagne individuel à l'aide de la méthode advertisers.lineItems.patch. Pour plusieurs éléments d'un annonceur donné, utilisez advertisers.lineItems.bulkUpdate.

Voici un exemple d'utilisation de bulkUpdate pour activer plusieurs éléments de campagne:

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