הפעלת הפריט

כל הפריטים שנוצרים באמצעות 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);
    }
}