Nhắm mục tiêu

Việc quản lý tiêu chí nhắm mục tiêu theo tài nguyên là một tính năng chính của Display & Video 360 API. Bạn có thể chỉ định tiêu chí nhắm mục tiêu cho nhiều loại tài nguyên và sử dụng một số tài nguyên cũng như không gian mã nhận dạng khác. Trang này trình bày chi tiết những hạn chế cần lưu ý và các phương pháp hay nhất để triển khai khi bạn sử dụng các dịch vụ Lựa chọn nhắm mục tiêu được chỉ định của Display & Video 360 API.

Sử dụng tính năng kế thừa tiêu chí nhắm mục tiêu

Các tài nguyên con có thể kế thừa tiêu chí nhắm mục tiêu được chỉ định cho một số tài nguyên. Bạn có thể truy xuất các lựa chọn nhắm mục tiêu mà tài nguyên con kế thừa nhưng không thể chỉnh sửa ở cấp tài nguyên con. Điều này cho phép bạn áp dụng chế độ cài đặt an toàn thương hiệu và các tiêu chí nhắm mục tiêu khác cho toàn bộ đối tác hoặc nhà quảng cáo.

Bạn có thể xem đường dẫn kế thừa trong sơ đồ bên dưới:

Biểu đồ kế thừa nhắm mục tiêu

Như được chỉ định trong sơ đồ, một số cấp độ nhắm mục tiêu chỉ hỗ trợ một nhóm nhỏ các loại nhắm mục tiêu. Điều này có nghĩa là bạn không thể đặt một số tiêu chí nhắm mục tiêu ở cấp cao hơn và kế thừa, mà thay vào đó, bạn cần đặt ở cấp thấp hơn.

Tính kế thừa trong tài nguyên của YouTube và đối tác

Tính năng kế thừa tiêu chí nhắm mục tiêu không được phản ánh cho các tài nguyên của YouTube và Đối tác trong Display & Video 360 API. Bạn sẽ không thể truy xuất tiêu chí nhắm mục tiêu mà Nhóm quảng cáo kế thừa ở cấp AdGrouptiêu chí nhắm mục tiêu trên YouTube được chỉ định cho tài nguyên mẹ sẽ không được tài nguyên con kế thừa.

Để truy xuất tất cả chế độ cài đặt nhắm mục tiêu chức năng cho một nhóm quảng cáo, bạn nên truy xuất các lựa chọn nhắm mục tiêu được chỉ định cho Nhóm quảng cáo, mục hàng mẹ và nhà quảng cáo mẹ.

Lưu ý đến tiêu chí nhắm mục tiêu được chỉ định khi tạo mục hàng

Ngoài các tiêu chí nhắm mục tiêu được kế thừa, hầu hết các tiêu chí nhắm mục tiêu chỉ có thể được chỉ định sau khi bạn tạo một mục hàng. Tuy nhiên, có một số loại tiêu chí nhắm mục tiêu có một tập hợp con mặc định gồm các giá trị được chỉ định cho mục hàng khi tạo mục hàng. Các loại nhắm mục tiêu đó là:

Việc cố gắng tạo các lựa chọn nhắm mục tiêu đã được chỉ định hiện có hoặc xoá các lựa chọn nhắm mục tiêu được chỉ định không tồn tại sẽ trả về lỗi. Vì vậy, bạn nên biết toàn bộ bộ tiêu chí nhắm mục tiêu được chỉ định cho các mục hàng của mình khi tạo. Nếu bạn cần truy xuất tiêu chí nhắm mục tiêu được chỉ định cho một mục hàng trên các loại tiêu chí nhắm mục tiêu, hãy sử dụng advertisers.lineItems.bulkListAssignedTargetingOptions.

Ngoài ra, một số chế độ cài đặt được đặt theo mặc định khi không có lựa chọn nhắm mục tiêu nào thuộc loại đó được chỉ định cho tài nguyên. Ví dụ: nếu một tài nguyên không có lựa chọn nhắm mục tiêu TARGETING_TYPE_AUTHORIZED_SELLER_STATUS được xác định, thì điều đó có nghĩa là tài nguyên đó đang sử dụng trạng thái "Người bán và đại lý trực tiếp được uỷ quyền".

Bạn không thể sửa đổi tiêu chí nhắm mục tiêu trên YouTube và Mạng đối tác

Bạn không thể cập nhật tiêu chí nhắm mục tiêu cho chiến dịch trên YouTube và Mạng đối tác bằng Display & Video 360 API.

Tiêu chí nhắm mục tiêu trên YouTube và Mạng đối tác bao gồm tất cả tiêu chí nhắm mục tiêu được chỉ định trực tiếp cho Mục hàng và Nhóm quảng cáo trên YouTube và Mạng đối tác, cũng như mọi tiêu chí nhắm mục tiêu thuộc các loại tiêu chí nhắm mục tiêu sau:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Bạn có thể cập nhật tiêu chí nhắm mục tiêu này trực tiếp bằng giao diện người dùng Display & Video 360 hoặc bằng cách tải Tệp dữ liệu có cấu trúc lên.

Chỉ định tiêu chí nhắm mục tiêu theo đối tượng bằng một lựa chọn duy nhất

Các tiêu chí nhắm mục tiêu cho hầu hết các loại tiêu chí nhắm mục tiêu được chỉ định riêng lẻ. Tiêu chí nhắm mục tiêu theo nhóm đối tượng không tuân theo quy ước theo mô-đun này, mà được chỉ định trong một đối tượng thông tin chi tiết về tiêu chí nhắm mục tiêu theo nhóm đối tượng duy nhất có thể định cấu hình. Đối tượng này liệt kê các mã nhận dạng của đối tượng cần đưa vào và loại trừ khi phân phát quảng cáo. assignedTargetingOptionId cho lựa chọn nhóm đối tượng này, sau khi được chỉ định, luôn là "audienceGroup".

Thiết kế này có nghĩa là bạn phải thực hiện mọi thay đổi đối với tiêu chí nhắm mục tiêu theo nhóm đối tượng bằng cách trước tiên xoá tiêu chí nhắm mục tiêu được chỉ định cho nhóm đối tượng hiện có, sau đó tạo tiêu chí nhắm mục tiêu mới theo nhóm đối tượng có những thay đổi mong muốn. Bạn có thể thực hiện việc này trong một yêu cầu duy nhất bằng cách sử dụng advertisers.lineItems.bulkEditAssignedTargetingOptions.

Sau đây là ví dụ về cách cập nhật tiêu chí nhắm mục tiêu theo đối tượng để nhắm đến thêm đối tượng trên Google một cách tích cực:

Java

long advertiserId = advertiser-id;
long lineItemId = line-item-id
List<Long> addedGoogleAudienceIds =
    Arrays.asList(google-audience-id-to-add,...);

// Build Google audience targeting settings objects to add to audience
// targeting.
ArrayList<GoogleAudienceTargetingSetting> newGoogleAudienceSettings =
    new ArrayList<GoogleAudienceTargetingSetting>();

// Convert list of Google Audience IDs into list of settings.
for (Long googleAudienceId : addedGoogleAudienceIds) {
  newGoogleAudienceSettings.add(new GoogleAudienceTargetingSetting()
      .setGoogleAudienceId(googleAudienceId));
}

// Create relevant bulk edit request objects.
BulkEditLineItemAssignedTargetingOptionsRequest requestContent =
    new BulkEditLineItemAssignedTargetingOptionsRequest();
AudienceGroupAssignedTargetingOptionDetails updatedAudienceGroupDetails;
ArrayList<DeleteAssignedTargetingOptionsRequest> audienceGroupDeleteRequests =
    new ArrayList<DeleteAssignedTargetingOptionsRequest>();

try {
  // Retrieve existing audience group targeting.
  AssignedTargetingOption existingAudienceGroupTargetingOption =
      service
          .advertisers()
          .lineItems()
          .targetingTypes()
          .assignedTargetingOptions()
          .get(
              advertiserId,
              lineItemId,
              "TARGETING_TYPE_AUDIENCE_GROUP",
              "audienceGroup"
          ).execute();

  // Extract existing audience group targeting details.
  updatedAudienceGroupDetails =
      existingAudienceGroupTargetingOption.getAudienceGroupDetails();

  // Build and add delete request for existing audience group targeting.
  ArrayList<String> deleteAudienceGroupAssignedTargetingIds =
      new ArrayList<String>();
  deleteAudienceGroupAssignedTargetingIds.add("audienceGroup");

  audienceGroupDeleteRequests
      .add(new DeleteAssignedTargetingOptionsRequest()
          .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
          .setAssignedTargetingOptionIds(
              deleteAudienceGroupAssignedTargetingIds
          )
      );
}
catch (GoogleJsonResponseException e) {
  updatedAudienceGroupDetails =
      new AudienceGroupAssignedTargetingOptionDetails();
}

// Set delete requests in edit request.
requestContent.setDeleteRequests(audienceGroupDeleteRequests);

// Construct new group of Google Audiences to include in targeting.
GoogleAudienceGroup updatedIncludedGoogleAudienceGroup =
    updatedAudienceGroupDetails.getIncludedGoogleAudienceGroup();
if (updatedIncludedGoogleAudienceGroup != null) {
  List<GoogleAudienceTargetingSetting> updatedGoogleAudienceSettings =
      updatedIncludedGoogleAudienceGroup.getSettings();
  updatedGoogleAudienceSettings.addAll(newGoogleAudienceSettings);
  updatedIncludedGoogleAudienceGroup
      .setSettings(updatedGoogleAudienceSettings);
} else {
  updatedIncludedGoogleAudienceGroup = new GoogleAudienceGroup();
  updatedIncludedGoogleAudienceGroup.setSettings(newGoogleAudienceSettings);
}

// Add new Google Audience group to audience group targeting details.
updatedAudienceGroupDetails
    .setIncludedGoogleAudienceGroup(updatedIncludedGoogleAudienceGroup);

// Create new targeting option to assign.
AssignedTargetingOption newAudienceGroupTargeting =
    new AssignedTargetingOption();
newAudienceGroupTargeting
    .setAudienceGroupDetails(updatedAudienceGroupDetails);

// Build audience group targeting create request and add to list of create
// requests.
ArrayList<AssignedTargetingOption> createAudienceGroupAssignedTargetingOptions =
    new ArrayList<AssignedTargetingOption>();
createAudienceGroupAssignedTargetingOptions.add(newAudienceGroupTargeting);
ArrayList<CreateAssignedTargetingOptionsRequest> targetingCreateRequests =
    new ArrayList<CreateAssignedTargetingOptionsRequest>();
targetingCreateRequests.add(new CreateAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
    .setAssignedTargetingOptions(
        createAudienceGroupAssignedTargetingOptions
    )
);

// Set create requests in edit request.
requestContent.setCreateRequests(targetingCreateRequests);

// Configure and execute the bulk list request.
BulkEditLineItemAssignedTargetingOptionsResponse response =
    service.advertisers().lineItems()
        .bulkEditLineItemAssignedTargetingOptions(
            advertiserId,
            lineItemId,
            requestContent).execute();

Python

advertiser_id = advertiser-id
line_item_id = line-item-id
added_google_audiences = [google-audience-id-to-add,...]

# Build Google audience targeting settings objects to create.
new_google_audience_targeting_settings = []
for google_audience_id in added_google_audiences:
 new_google_audience_targeting_settings.append(
     {'googleAudienceId': google_audience_id}
 )

# Retrieve any existing line item audience targeting.
retrieved_audience_targeting = service.advertisers().lineItems(
).targetingTypes().assignedTargetingOptions().get(
   advertiserId=advertiser_id,
   lineItemId=line_item_id,
   targetingType="TARGETING_TYPE_AUDIENCE_GROUP",
   assignedTargetingOptionId="audienceGroup"
).execute()

updated_audience_group_details = {}

# Copy over any existing audience targeting.
if 'audienceGroupDetails' in retrieved_audience_targeting:
 updated_audience_group_details = retrieved_audience_targeting[
     'audienceGroupDetails']

# Append the new Google audience IDs to any existing positive Google
# audience targeting.
if 'includedGoogleAudienceGroup' in updated_audience_group_details:
 updated_audience_group_details[
     'includedGoogleAudienceGroup']['settings'].extend(
         new_google_audience_targeting_settings)
else:
 updated_audience_group_details['includedGoogleAudienceGroup'] = {
     'settings': new_google_audience_targeting_settings
 }

# Build bulk edit request.
bulk_edit_request = {
   'deleteRequests': [
       {
         'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
         'assignedTargetingOptionIds': [
           "audienceGroup"
         ]
       }
   ],
   'createRequests': [
       {
           'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
           'assignedTargetingOptions': [
               {'audienceGroupDetails': updated_audience_group_details}
           ]
       }
   ]
}

# Update the audience targeting
updated_audience_targeting = service.advertisers().lineItems(
).bulkEditLineItemAssignedTargetingOptions(
   advertiserId=advertiser_id,
   lineItemId=line_item_id,
   body=bulk_edit_request
).execute()

PHP

$advertiserId = advertiser-id;
$lineItemId = line-item-id;
$addedGoogleAudienceIds = array(google-audience-id-to-add,...);

// Convert list of Google Audience IDs into list of Google audience
// settings.
$newGoogleAudienceSettings = array();
foreach ($addedGoogleAudienceIds as $googleAudienceId) {
    $newSetting =
        new Google_Service_DisplayVideo_GoogleAudienceTargetingSetting();
    $newSetting->setGoogleAudienceId($googleAudienceId);
    $newGoogleAudienceSettings[] = $newSetting;
}

// Create a bulk edit request.
$requestBody =
    new Google_Service_DisplayVideo_BulkEditLineItemAssignedTargetingOptionsRequest();

$audienceGroupDeleteRequests = array();

try {
    // Retrieve existing audience group targeting.
    $existingAudienceGroupTargetingOption = $this
        ->service
        ->advertisers_lineItems_targetingTypes_assignedTargetingOptions
        ->get(
            $advertiserId,
            $lineItemId,
            'TARGETING_TYPE_AUDIENCE_GROUP',
            'audienceGroup'
        );

    // Extract existing audience group targeting details.
    $updatedAudienceGroupDetails =
        $existingAudienceGroupTargetingOption
            ->getAudienceGroupDetails();

    // Build and add delete request for existing audience group
    // targeting.
    $deleteAudienceGroupAssignedTargetingIds = array();
    $deleteAudienceGroupAssignedTargetingIds[] = "audienceGroup";

    $audienceGroupDeleteRequest =
        new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
    $audienceGroupDeleteRequest
        ->setTargetingType('TARGETING_TYPE_AUDIENCE_GROUP');
    $audienceGroupDeleteRequest
        ->setAssignedTargetingOptionIds(
            $deleteAudienceGroupAssignedTargetingIds
        );
    $audienceGroupDeleteRequests[] = $audienceGroupDeleteRequest;
} catch (\Exception $e) {
    $updatedAudienceGroupDetails =
        new Google_Service_DisplayVideo_AudienceGroupAssignedTargetingOptionDetails();
}

// Set delete requests in edit request.
$requestBody->setDeleteRequests($audienceGroupDeleteRequests);

// Construct new group of Google audiences to include in targeting.
$updatedIncludedGoogleAudienceGroup = $updatedAudienceGroupDetails
    ->getIncludedGoogleAudienceGroup();

if (!empty($updatedIncludedGoogleAudienceGroup)) {
    // Get existing settings.
    $updatedGoogleAudienceSettings =
    $updatedIncludedGoogleAudienceGroup->getSettings();

    // Add new Google audiences to existing list.
    $updatedGoogleAudienceSettings = array_merge(
        $updatedGoogleAudienceSettings,
        $newGoogleAudienceSettings
    );

    // Set updated Google audience list.
    $updatedIncludedGoogleAudienceGroup
        ->setSettings($updatedGoogleAudienceSettings);
} else {
    // Create new Google audience group.
    $updatedIncludedGoogleAudienceGroup =
        new Google_Service_DisplayVideo_GoogleAudienceGroup();

    // Set list of new Google audiences for targeting.
    $updatedIncludedGoogleAudienceGroup
        ->setSettings($newGoogleAudienceSettings);
}

// Add new Google Audience group to audience group targeting details.
$updatedAudienceGroupDetails
    ->setIncludedGoogleAudienceGroup(
        $updatedIncludedGoogleAudienceGroup
    );

// Create new targeting option to assign.
$newAudienceGroupTargeting =
    new Google_Service_DisplayVideo_AssignedTargetingOption();
$newAudienceGroupTargeting
    ->setAudienceGroupDetails($updatedAudienceGroupDetails);

// Build audience group targeting create request and add to list of
// create requests.
$createAudienceGroupAssignedTargetingOptions = array();
$createAudienceGroupAssignedTargetingOptions[] =
    $newAudienceGroupTargeting;
$createAudienceGroupTargetingRequest =
    new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest();
$createAudienceGroupTargetingRequest->setTargetingType(
    "TARGETING_TYPE_AUDIENCE_GROUP"
);
$createAudienceGroupTargetingRequest->setAssignedTargetingOptions(
    $createAudienceGroupAssignedTargetingOptions
);
$createRequests[] = $createAudienceGroupTargetingRequest;

// Set create requests in edit request.
$requestBody->setCreateRequests($createRequests);

// Call the API, editing the assigned targeting options for the
// identified line item.
$response = $this
    ->service
    ->advertisers_lineItems
    ->bulkEditLineItemAssignedTargetingOptions(
        $advertiserId,
        $lineItemId,
        $requestBody
    );

Hãy chuẩn bị cho việc các tiêu chí nhắm mục tiêu sẽ không được dùng nữa

Các lựa chọn nhắm mục tiêu không phải là cố định và một số ít có thể không được dùng nữa theo thời gian. Các tiêu chí nhắm mục tiêu (sau khi bị ngừng sử dụng) không ảnh hưởng đến việc phân phát quảng cáo của một mục hàng. Sau khi ngừng sử dụng, các lựa chọn này sẽ không được chỉ định cho các mục hàng hiện có và những yêu cầu cố gắng truy xuất hoặc chỉ định các lựa chọn này sẽ dẫn đến lỗi.

Để tránh những lỗi này, bạn nên thường xuyên kiểm tra các mã nhận dạng lựa chọn nhắm mục tiêu đã lưu trữ. Để tiết kiệm hạn mức, bạn nên lưu vào bộ nhớ đệm các mã nhận dạng thường dùng. Tuy nhiên, việc lưu trữ mã nhận dạng có nghĩa là bạn có thể không nhận ra một lựa chọn nhắm mục tiêu đã bị ngừng sử dụng. Vì lý do này, bạn nên thường xuyên sử dụng targetingOptions.targetingTypes.get để truy xuất tất cả mã nhận dạng lựa chọn nhắm mục tiêu đã lưu trữ nhằm xác nhận rằng Display & Video 360 vẫn hỗ trợ các mã nhận dạng đó.

Hãy xem trang Các tính năng bị ngưng sử dụng đã được thông báo để biết thông tin chi tiết về những tính năng quan trọng bị ngưng sử dụng trước đây và sắp tới.

Đừng đưa ra các yêu cầu đồng thời để cập nhật cùng một mục hàng

Nếu bạn cố gắng cập nhật chế độ cài đặt hoặc tiêu chí nhắm mục tiêu được chỉ định cho một mục hàng bằng nhiều yêu cầu đồng thời, thì hệ thống sẽ trả về lỗi. Các yêu cầu áp dụng bao gồm:

Nếu cần thêm hoặc xoá nhiều lựa chọn nhắm mục tiêu được chỉ định cho một mục hàng cùng lúc, bạn nên sử dụng một yêu cầu advertisers.lineItems.bulkEditAssignedTargetingOptions. Nếu bạn muốn cập nhật chế độ cài đặt và tiêu chí nhắm mục tiêu của một mục hàng, hãy xếp hàng yêu cầu patch hoặc bulkUpdate và yêu cầu nhắm mục tiêu có liên quan để đảm bảo yêu cầu thứ hai không được gửi cho đến khi yêu cầu đầu tiên trả về phản hồi.