Nhắm mục tiêu

Quản lý tiêu chí nhắm mục tiêu tài nguyên là tính năng chính của API Display & Video 360. 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ố không gian mã cũng như tài nguyên khác. Trang này trình bày chi tiết các giới hạn cần lưu ý và các phương pháp hay nhất để triển khai khi sử dụng các dịch vụ Tuỳ chọn nhắm mục tiêu được chỉ định API Display & Video 360.

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

Tiêu chí nhắm mục tiêu được chỉ định cho một số tài nguyên có thể kế thừa các tài nguyên con. Các tuỳ chọn nhắm mục tiêu được kế thừa bởi tài nguyên con có thể truy xuất được nhưng không chỉnh sửa được ở cấp tài nguyên con. Điều này cho phép thực thi các 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ơ đồ dưới đây:

Sơ đồ kế thừa nhắm mục tiêu

Như được chỉ định trong biểu đồ, một số cấp nhắm mục tiêu chỉ hỗ trợ một tập hợp con 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ố tuỳ chọn nhắm mục tiêu ở cấp cao hơn và kế thừa, mà cần đặt ở cấp thấp hơn.

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

Tính kế thừa 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 API Display & Video 360. Bạn sẽ không thể truy xuất tiêu chí nhắm mục tiêu do 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 gốc sẽ không được kế thừa trong tài nguyên con.

Để truy xuất tất cả cá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 tuỳ chọn nhắm mục tiêu được chỉ định cho Nhóm quảng cáo, mục hàng gốc 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

Khác với các lựa chọn nhắm mục tiêu 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 tạo mục hàng. Tuy nhiên, có một vài loại nhắm mục tiêu có tập hợp con giá trị mặc định đượ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 tuỳ chọn nhắm mục tiêu hiện có hoặc xoá các tuỳ chọn nhắm mục tiêu đã chỉ định không tồn tại sẽ trả về lỗi, vì vậy, bạn nên lưu ý về bộ tiêu chí nhắm mục tiêu đầy đủ được chỉ định cho các mục hàng của bạn 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 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ó tuỳ 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 xác định tuỳ chọn nhắm mục tiêu TARGETING_TYPE_AUTHORIZED_SELLER_STATUS, tức 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".

Không muốn có "nhắm mục tiêu mặc định" tự động

Trong Display & Video 360, tiêu chí nhắm mục tiêu được thiết lập ở cấp chiến dịch hoặc đơn đặt hàng quảng cáo sẽ không được chuyển ngay đến các mục hàng con. Tiêu chí nhắm mục tiêu này gọi là "nhắm mục tiêu mặc định" và dùng làm mẫu nhắm mục tiêu áp dụng cho các mục hàng được tạo sau đó trong giao diện người dùng.

Trong API Display & Video 360, tiêu chí nhắm mục tiêu mặc định không tự động áp dụng cho các mục hàng mới tạo. Quy trình tạo mục hàng cơ bản không sao chép bất kỳ tiêu chí nhắm mục tiêu cấp chiến dịch hoặc đơn đặt hàng quảng cáo nào. Trong trường hợp này, tiêu chí nhắm mục tiêu mong muốn phải được áp dụng riêng cho các mục hàng thông qua phương pháp tạo hoặc chỉnh sửa hàng loạt theo lựa chọn nhắm mục tiêu được chỉ định.

Các phương thức đặc biệt có thể là ngoại lệ. Ví dụ: các mục hàng được tạo thông qua chế độ cài đặt sao chép advertisers.lineItems.generateDefault từ đơn đặt hàng quảng cáo gốc, bao gồm cả tiêu chí nhắm mục tiêu được chỉ định. Tương tự, các mục hàng tạo qua sao chép sẽ được chỉ định cùng tiêu chí nhắm mục tiêu như mục hàng ban đầu.

Không thể sửa đổi tiêu chí nhắm mục tiêu của YouTube và Đối tác

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

Tiêu chí nhắm mục tiêu YouTube và Đố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 YouTube và Đối tác và Nhóm quảng cáo, cũng như bất kỳ tiêu chí nhắm mục tiêu nào thuộc các loại nhắm mục tiêu sau đây:

  • 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 bằng cách sử dụng trực tiếp 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 tuỳ chọn duy nhất

Các tuỳ chọn nhắm mục tiêu cho hầu hết các loại nhắm mục tiêu được chỉ định riêng. Tính năng nhắm mục tiêu theo nhóm đối tượng không tuân theo quy ước 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 nhóm đối tượng duy nhất có thể định cấu hình, trong đó liệt kê các mã nhận dạng của các đối tượng cần bao gồm và loại trừ khi phân phát quảng cáo. Sau khi chỉ định, assignedTargetingOptionId cho tuỳ chọn nhóm đối tượng này 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á nhóm đối tượng hiện có được chỉ định tuỳ chọn nhắm mục tiêu, sau đó tạo một tuỳ chọn nhắm mục tiêu theo nhóm đối tượng mới với các thay đổi mong muốn. Bạn có thể thực hiện việc này trong một yêu cầu bằng cách sử dụng advertisers.lineItems.bulkEditAssignedTargetingOptions.

Dưới đâ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 mục tiêu tích cực đến các đối tượng khác của Google:

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()

1.199

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

Chuẩn bị cho việc các tuỳ chọn nhắm mục tiêu không được dùng nữa

Các tuỳ chọn nhắm mục tiêu không tĩnh và đôi khi có thể không dùng một số ít. Các tuỳ chọn nhắm mục tiêu sau khi ngừng hoạt động sẽ không ảnh hưởng đến hoạt động phân phát quảng cáo của mục hàng. Sau khi ngừng sử dụng, các tuỳ chọn này sẽ bị huỷ chỉ định khỏi các mục hàng hiện có và các yêu cầu cố gắng truy xuất hoặc chỉ định các tuỳ 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 mã tuỳ 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 các mã nhận dạng thường dùng vào bộ nhớ đệm. 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 rằng tuỳ chọn nhắm mục tiêu đã không còn được dùng nữa. 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ả các mã tuỳ chọn nhắm mục tiêu đã lưu trữ nhằm xác nhận rằng các mã này vẫn được Display & Video 360 hỗ trợ.

Vui lòng xem trang Thông báo về việc ngừng sử dụng để biết thông tin chi tiết về các hoạt động chấm dứt đáng kể trước đây và sắp tới.

Không thực hiện các yêu cầu đồng thời để cập nhật cùng một mục hàng

Việc 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 cách sử dụng nhiều yêu cầu đồng thời sẽ trả về lỗi. Các yêu cầu có thể áp dụng bao gồm:

Nếu cần thêm hoặc xoá nhiều tuỳ 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ục hàng, hãy đưa yêu cầu patch hoặc bulkUpdate và yêu cầu nhắm mục tiêu có liên quan vào hàng đợi để đảm bảo yêu cầu thứ hai sẽ không được gửi cho đến khi yêu cầu đầu tiên trả về phản hồi.