타겟팅 설정

타겟팅 옵션 할당된 타겟팅 옵션 광고 항목 서비스는 모두 Display & Video 360 API 이 페이지에서는 예시를 설명하고 제공합니다. 광고 항목에 타겟팅 옵션을 할당하는 방법을 광고 항목에 대한 일괄 작업을 실행하여 할당된 항목을 나열하고 수정할 수 있습니다. 타겟팅 옵션을 제공합니다.

사용 가능한 타겟팅 옵션 찾기

타겟팅 옵션은 기존의 타겟팅 가능 변수인 사용자 지정 변수 중 하나를 사용합니다. 개체 또는 기존 옵션을 사용하여 원하는 타겟 잠재고객을 정의할 수 있습니다. 기존 옵션은 열거형 값 또는 타겟팅 옵션을 사용하여 식별 타겟팅 유형에 따라 다릅니다. 타겟팅 가능한 항목은 엔티티 ID 타겟팅 옵션 ID와 엔티티 ID는 디스플레이 및 Video 360 API

enum 값 설정 사용

다음 타겟팅 유형에 대한 타겟팅 옵션은 특정 enum 유형:

TargetingType 열거형
TARGETING_TYPE_AGE_RANGE AgeRange
TARGETING_TYPE_CONTENT_INSTREAM_POSITION ContentInstreamPosition
TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION ContentOutstreamPosition
TARGETING_TYPE_DEVICE_TYPE DeviceType
TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION ContentRatingTier
TARGETING_TYPE_ENVIRONMENT Environment
TARGETING_TYPE_EXCHANGE Exchange
TARGETING_TYPE_GENDER Gender
TARGETING_TYPE_HOUSEHOLD_INCOME HouseholdIncome
TARGETING_TYPE_NATIVE_CONTENT_POSITION NativeContentPosition
TARGETING_TYPE_OMID Omid
TARGETING_TYPE_PARENTAL_STATUS ParentalStatus
TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION SensitiveCategory
TARGETING_TYPE_VIDEO_PLAYER_SIZE VideoPlayerSize
TARGETING_TYPE_VIEWABILITY Viewability

관련 enum 값의 문자열 버전을 사용하여 기존 이 타겟팅 유형의 AssignedTargetingOption 리소스이며 assignedTargetingOptionIdAlias 필드에 사용할 수 있습니다. 다음과 같은 작업을 할 수 있습니다. 다음과 같은 경우 assignedTargetingOptionId 대신 이 별칭 값을 사용하세요. 할당된 타겟팅 옵션을 가져오거나 삭제할 수 있습니다.

타겟팅 옵션 ID 검색

기존 옵션을 사용하는 타겟팅 유형은 해당하는 타겟팅 옵션 ID를 지정합니다.

예를 들어 화면상의 위치의 수는 한정되어 있습니다. TARGETING_TYPE_ON_SCREEN_POSITION 타겟팅 유형을 사용하여 타겟팅할 수 있습니다. 각 각 위치에 해당하는 타겟팅 옵션 ID가 있습니다.

이러한 타겟팅 옵션 ID는 타겟팅 옵션 서비스: 사용 가능 여부에 따라 사용하는 경우 검색은 다음 두 가지 방법 중 하나로 수행됩니다.

  • 개별 검색 또는 전체 목록: 대부분의 타겟팅 유형은 getlist 메서드를 사용하여 수행할 수 있습니다. targetingTypes.targetingOptions.get를 사용하여 타겟팅 유형 및 타겟팅 옵션 ID로 식별되는 타겟팅 옵션 사용 사용 가능한 모든 항목을 표시하려면 targetingTypes.targetingOptions.list 특정 타겟팅 유형의 타겟팅 옵션
  • 검색: 위치 기반 타겟팅 유형에 대한 옵션 (TARGETING_TYPE_GEO_REGION, TARGETING_TYPE_POITARGETING_TYPE_BUSINESS_CHAIN)는 search 메서드를 사용하여 검색되어야 합니다. targetingTypes.targetingOptions.search를 사용하여 가져오기 특정 검색어 문자열과 일치하는 특정 유형의 타겟팅 옵션입니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

다음은 가능한 타겟팅 목록을 가져오는 방법의 예입니다. 타겟팅 유형 TARGETING_TYPE_BROWSER의 옵션은 다음과 같습니다.

자바

// Configure the list request.
TargetingOptions.List request =
   service
       .targetingTypes()
       .targetingOptions()
       .list("TARGETING_TYPE_BROWSER")
       .setAdvertiserId(advertiser-id);

// Create the response and nextPageToken variables.
ListTargetingOptionsResponse response;
String nextPageToken = null;

do {
 // Create and execute the list request.
 response = request.setPageToken(nextPageToken).execute();

 // Check if the response is empty.
 if (response.isEmpty()) {
   System.out.print("List request returned no Targeting Options");
   break;
 }

 // Iterate over retrieved targeting options.
 for (TargetingOption option : response.getTargetingOptions()) {
   System.out.printf(
       "Targeting Option ID: %s, Browser Display Name: '%s'\n",
       option.getTargetingOptionId(), option.getBrowserDetails().getDisplayName());
 }

 // Update the next page token.
 nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken));

Python

# Create the page token variable.
next_page_token = ""

while True:
  # Request the targeting options list.
  response = service.targetingTypes() \
    .targetingOptions().list(
      advertiserId=advertiser-id,
      targetingType="TARGETING_TYPE_BROWSER",
      pageToken=next_page_token
  ).execute()

  # Check if response is empty.
  if not response:
    print("List request returned no Targeting Options")
    break

  # Iterate over retrieved targeting options.
  for option in response['targetingOptions']:
    print("Targeting Option ID: %s, Browser Display Name: %s"
          % (option['targetingOptionId'], option['browserDetails']['displayName']))

  # Break out of loop if there is no next page.
  if 'nextPageToken' not in response:
    break

  # Update the next page token.
  next_page_token = response['nextPageToken']

PHP

// Create the page token variable.
$nextPageToken = null;

do {
    // Build the query parameters object for the request.
    $optParams = array(
        'advertiserId' => advertiser-id,
        'pageToken' => $nextPageToken
    );

    // Call the API, getting the browser targeting options for the
    // identified advertiser.
    $response = $this
        ->service
        ->targetingTypes_targetingOptions
        ->listTargetingTypesTargetingOptions(
            'TARGETING_TYPE_BROWSER',
            $optParams
        );

    // Print the resulting targeting options.
    if (!empty($response->getTargetingOptions())) {
        foreach ($response->getTargetingOptions() as $option) {
            printf(
                'Targeting Option ID: %s, Browser Display Name: %s\n',
                $option['targetingOptionId'],
                $option['browserDetails']['displayName']
            );
        }
    } else {
        print('No targeting options returned\n');
    }

    // Update the next page token.
    $nextPageToken = $response->getNextPageToken();
} while (
    !empty($response->getTargetingOptions())
    && $nextPageToken
);

타겟팅할 수 있는 항목 나열

기존의 타겟팅 가능한 엔티티를 사용하여 광고 항목을 타겟팅하려면 해당 항목의 ID입니다. 타겟팅 가능한 항목(예: 채널) 통합 잠재고객 인벤토리 소스 그룹은 디스플레이 광고 및 Video 360 API

각 서비스에는 자체 getlist 메서드가 있습니다. get 메서드를 사용하여 다음을 수행합니다. 항목을 특정 광고주 아래에서 사용할 수 있는지 확인합니다. list 사용 메서드를 사용하여 해당 리소스 유형의 모든 항목을 검색할 수 있습니다. 이에 따라 사이트에 타겟팅을 할당하는 데 사용할 수 있습니다. 광고 항목을 선택합니다.

타겟팅 가능한 항목의 하위 집합도 API를 통해 관리할 수 있습니다. 이것은 상응하는 서비스에서 createpatch 메서드를 통해 실행됩니다. 엔터티에 나열된 개별 값에 대한 서비스(예: 인벤토리 소스, 제외 키워드 위치를 탭합니다.

관심 장소 타겟팅 옵션 ID 만들기

TARGETING_TYPE_POI에서 이름이 지정된 관심 장소 타겟팅 옵션은 targetingTypes.targetingOptions.search를 사용하여 가져온 값입니다. 포함 또한 맞춤형 TARGETING_TYPE_POI 타겟팅 옵션 ID를 만들어 특정 위도-경도 좌표를 타겟팅합니다.

관심 장소 타겟팅 옵션 ID를 만들려면 다음 단계를 따르세요.

  1. 위도-경도 좌표를 가져옵니다 (예: '40.7414691, -74.003387').
  2. 좌표 값을 여섯 번째 소수점 이하 자릿수로 반올림하세요 (예: '40.741469, -74.003387')
  3. 좌표 값에서 소수점 이하 자릿수를 제거 (예: "40741469, -74003387')
  4. 두 값을 연결하여 세미콜론으로 구분된 단일 문자열을 만듭니다. (예: '40741469;-74003387')

결과 문자열은 targetingOptionId TARGETING_TYPE_POI에 타겟팅 옵션이 할당되었습니다.

생성 시 targetingOptionIdassignedTargetingOptionId 필드는 세미콜론이 추가되어 할당된 타겟팅 옵션 리소스가 업데이트됩니다. 영숫자 해시를 제공합니다.

타겟팅 옵션 할당

광고 항목에 할당된 타겟팅은 할당된 타겟팅 옵션. 이러한 항목은 할당된 타겟팅 옵션 서비스. 할당된 타겟팅 옵션을 만들면 타겟팅 세부정보가 상위 광고 항목을 선택합니다. 기존에 할당된 타겟팅 옵션을 삭제하면 있습니다.

사용 advertisers.lineItems.targetingTypes.assignedTargetingOptions.create 드림 할당된 타겟팅 옵션을 생성합니다. 타겟팅 매개변수를 할당된 타겟팅 옵션 리소스의 details 필드 광고주가 원하는 타겟팅 유형에 해당하는지를 나타냅니다.

다음은 할당된 타겟팅 옵션을 만드는 방법의 예입니다. 타겟팅 유형 TARGETING_TYPE_BROWSER:

자바

// Create an AssignedTargetingOption object of the
// browser targeting type.
AssignedTargetingOption assignedTargetingOption =
   new AssignedTargetingOption()
       .setBrowserDetails(
           new BrowserAssignedTargetingOptionDetails()
               .setTargetingOptionId(targeting-option-id));

// Configure the create request.
AssignedTargetingOptions.Create request =
   service
       .advertisers()
       .lineItems()
       .targetingTypes()
       .assignedTargetingOptions()
       .create(
           advertiser-id,
           line-item-id,
           "TARGETING_TYPE_BROWSER",
           assignedTargetingOption);

// Send the request.
AssignedTargetingOption response = request.execute();

// Display the new assigned targeting option.
System.out.printf("AssignedTargetingOption %s was created.",
   response.getName());

Python

# Create a assigned targeting option object.
assigned_targeting_option_obj = {
    'browserDetails': {
        'targetingOptionId': targeting-option-id
    }
}

# Create the assigned targeting option.
assigned_targeting_option = service.advertisers().lineItems()\
  .targetingTypes().assignedTargetingOptions().create(
    advertiserId=advertiser-id,
    lineItemId=line-item-id,
    targetingType="TARGETING_TYPE_BROWSER",
    body=assigned_targeting_option_obj
).execute()

# Display the new assigned targeting option.
print("Assigned Targeting Option %s was created."
      % assigned_targeting_option["name"])

PHP

// Create a assigned targeting option object.
$assignedTargetingOption =
    new Google_Service_DisplayVideo_AssignedTargetingOption();

// Create and set browser details.
$details =
    new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails();
$details->setTargetingOptionId(targeting-option-id);
$assignedTargetingOption->setBrowserDetails($details);

// Call the API, creating the browser assigned targeting option for the
// given line item.
$result = $this
    ->service
    ->advertisers_lineItems_targetingTypes_assignedTargetingOptions
    ->create(
        advertiser-id,
        line-item-id,
        'TARGETING_TYPE_BROWSER',
        $assignedTargetingOption
    );

printf(
    'Assigned Targeting Option %s was created.\n',
    $result['name']
);

오류

타겟팅 구성 오류

데이터 처리 방식과 관련하여 여러 가지 복잡한 규칙이 디스플레이의 타겟팅 및 동영상 360 이는 디스플레이 및 할당된 타겟팅 옵션 생성 시 반환된 오류를 통한 Video 360 API API에서 반환하는 오류에 위반사항이 명시됩니다.

오류는 주로 광고 항목에 할당된 기존 타겟팅으로 인해 발생합니다. 사용 advertisers.lineItems.targetingTypes.assignedTargetingOptions.list 드림 를 사용하면 줄에 할당된 특정 타겟팅 유형의 모든 타겟팅 옵션을 가져올 수 있습니다. 한계를 고려해 원하는 타겟팅이 가능한지 평가합니다. 사용하여 advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete 원하는 타겟팅을 먼저 제거한 후 원하는 지정할 수 있습니다.

YouTube 및 파트너 타겟팅 오류

YouTube 및 파트너 캠페인은 다음을 사용하여 업데이트할 수 없습니다. 디스플레이 및 Video 360 API를 삽입하려고 하면 오류가 발생합니다.

YouTube 및 파트너 타겟팅은 YouTube 및 파트너 광고 항목 및 광고 그룹뿐만 아니라 다음 타겟팅 유형의 모든 타겟팅:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

동시 실행 오류

다음을 통해 단일 광고 항목의 설정 또는 타겟팅을 업데이트하려는 시도 여러 개의 동시 요청을 실행하면 오류가 발생합니다.

단일 광고그룹에 할당된 여러 타겟팅 옵션을 추가 또는 삭제해야 하는 경우 광고 항목을 여러 개 동시에 사용하려면 일괄 수정 요청에 대한 응답 메시지입니다. 광고 항목의 설정을 변경하려면 advertisers.lineItems.patch을 관련성 높은 타겟팅 요청을 연속적으로 요청하여 두 번째 요청은 첫 번째 응답이 반환될 때까지 전송되지 않습니다.

일괄 및 리소스 전체 타겟팅 작업

일괄리소스 전체 타겟팅 방법을 사용하여 할당된 다양한 타겟팅 옵션을 제공합니다.

광고 항목의 현재 타겟팅을 완전히 확인하려면 타겟팅 구성을 광고 항목에 사전 설정하거나 여러 항목을 변경해야 하는 경우 추가하는 경우 이러한 타겟팅을 메서드를 참조하세요.

일괄 목록 타겟팅

advertisers.lineItems.bulkListAssignedTargetingOptions 드림 하나 이상의 광고 항목에 할당된 모든 타겟팅을 볼 수 있는 방법을 제공합니다. 다양한 타겟팅 유형에 적용할 수 있습니다. 다른 list와 유사하게 작동합니다. 메서드를 사용하여 축소하도록 요청합니다. filter 쿼리 매개변수를 사용하여 TargetingType 기준 결과 또는 Inheritance:

다음은 광고 항목에 할당된 모든 타겟팅 옵션을 나열하는 방법의 예입니다. 다음과 같습니다.

자바

// Configure the bulk list request.
LineItems.BulkListAssignedTargetingOptions request =
    service.advertisers().lineItems()
        .bulkListAssignedTargetingOptions(advertiser-id);

// Set Line Items to retrieve targeting for.
request.setLineItemIds(line-item-ids);

// Set filter to only return inherited assigned targeting options.
request.setFilter(
    "inheritance=\"INHERITED_FROM_ADVERTISER\" OR inheritance=\"INHERITED_FROM_PARTNER\"");

// Create the response and nextPageToken variables.
BulkListAssignedTargetingOptionsResponse response;
String nextPageToken = null;

do {
  // Set page token and execute the list request.
  response = request.setPageToken(nextPageToken).execute();

  // Check if the response is empty.
  if (response.isEmpty()) {
    System.out.print("Bulk list request returned no Assigned Targeting Options");
    break;
  }

  // Iterate over retrieved line item assigned targeting option wrapper objects.
  for (LineItemAssignedTargetingOption lineItemAssignedTargetingOption
      : response.getLineItemAssignedTargetingOptions()) {
    System.out.printf(
        "Assigned Targeting Option %s found\n",
        lineItemAssignedTargetingOption.getAssignedTargetingOption().getName());
  }

  // Update the next page token.
  nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken));

Python

# Create the page token variable.
next_page_token = ""

while True:
  # Execute the list request.
  response = service.advertisers().lineItems() \
    .bulkListAssignedTargetingOptions(
      advertiserId=advertiser-id,
      lineItemIds=line-item-ids,
      filter="inheritance=\"INHERITED_FROM_ADVERTISER\" OR "
             "inheritance=\"INHERITED_FROM_PARTNER\"",
      pageToken=next_page_token
  ).execute()

  # Check if response is empty.
  if not response:
    print("Bulk list request returned no Assigned Targeting Options")
    break

  # Iterate over retrieved assigned targeting options.
  for lineItemAssignedTargetingOption in response['lineItemAssignedTargetingOptions']:
    print("Assigned Targeting Option %s found"
          % (lineItemAssignedTargetingOption['assignedTargetingOption']['name']))

  # Break out of loop if there is no next page.
  if 'nextPageToken' not in response:
    break

  # Update the next page token.
  next_page_token = response['nextPageToken']

PHP

// Create the page token variable.
$nextPageToken = null;

do {
    // Build the query parameters object for the request.
    $optParams = array(
        'lineItemIds' => line-item-ids,
        'filter' => "inheritance=\"INHERITED_FROM_ADVERTISER\" OR "
            . "inheritance=\"INHERITED_FROM_PARTNER\"",
        'pageToken' => $nextPageToken
    );

    // Call the API, getting all the assigned targeting options for the
    // identified line item.
    $response = $service
        ->advertisers_lineItems
        ->bulkListAssignedTargetingOptions(
            advertiser-id,
            $optParams
    );

    // Print the returned assigned targeting options.
    if (!empty($response->getLineItemAssignedTargetingOptions())) {
        foreach ($response->getLineItemAssignedTargetingOptions() as $option) {
            printf('Assigned Targeting Option %s found\n', $option->getAssignedTargetingOption()['name']);
        }
    } else {
        print('No targeting options returned\n');
    }

    // Update the next page token.
    $nextPageToken = $response->getNextPageToken();
} while (
    !empty($response->getLineItemAssignedTargetingOptions())
    && $nextPageToken);

타겟팅 일괄 수정

advertisers.lineItems.bulkEditAssignedTargetingOptions 드림 다양한 타겟팅의 여러 타겟팅 옵션을 추가 및 삭제할 수 있는 방법 제공 하나 이상의 광고 항목에서 동시에 가져올 수 있습니다.

이 메서드는 DeleteAssignedTargetingOptionsRequestsCreateAssignedTargetingOptionsRequests 단일 요청 개체는 할당된 여러 타겟팅의 삭제 또는 생성을 나타낼 수 있습니다. 광고 항목을 게재할 수 있습니다.

할당된 타겟팅 옵션을 삭제 또는 생성하려고 시도하여 오류가 발생하면 해당 광고 항목에 대한 일괄 작업이 취소됩니다. 이 요청은 성공적으로 업데이트된 행 목록 반환 실패한 광고 항목 목록 업데이트 및 관련된 오류를 방지합니다.

다음은 하나 이상의 할당된 타겟팅 옵션을 일괄 수정하는 방법을 보여주는 예입니다. 삭제하고 타겟팅하도록 할당된 타겟팅 옵션 목록이 제공된 광고 항목 만들 수 있는 옵션은 다음과 같습니다.

자바

// Create a bulk edit request.
BulkEditAssignedTargetingOptionsRequest requestContent =
    new BulkEditAssignedTargetingOptionsRequest();

// Set line item IDs in edit request.
requestContent.setLineItemIds(line-item-ids);

// Build delete request list.
ArrayList<DeleteAssignedTargetingOptionsRequest> deleteRequests =
    new ArrayList<DeleteAssignedTargetingOptionsRequest>();

// Add browser assigned targeting option IDs to delete request list.
deleteRequests.add(new DeleteAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_BROWSER")
    .setAssignedTargetingOptionIds(delete-browser-assigned-targeting-ids));

// Add device make or model assigned targeting option IDs to delete request list.
deleteRequests.add(new DeleteAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_DEVICE_MAKE_MODEL")
    .setAssignedTargetingOptionIds(
        delete-device-make-model-assigned-targeting-ids));

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

// Build create request list.
ArrayList<CreateAssignedTargetingOptionsRequest> createRequests =
    new ArrayList<CreateAssignedTargetingOptionsRequest>();

// Create browser assigned targeting option create request.
CreateAssignedTargetingOptionsRequest createBrowserTargetingRequest =
    new CreateAssignedTargetingOptionsRequest();
createBrowserTargetingRequest.setTargetingType("TARGETING_TYPE_BROWSER");

// Create and set list of browser assigned targeting options.
ArrayList<AssignedTargetingOption> createBrowserAssignedTargetingOptions =
    new ArrayList<AssignedTargetingOption>();
for (String targetingOptionId : create-browser-assigned-targeting-ids) {
  createBrowserAssignedTargetingOptions.add(new AssignedTargetingOption()
      .setBrowserDetails(
          new BrowserAssignedTargetingOptionDetails()
              .setTargetingOptionId(targetingOptionId)));
}
createBrowserTargetingRequest
    .setAssignedTargetingOptions(createBrowserAssignedTargetingOptions);

// Add browser assigned targeting options to list of create requests.
createRequests.add(createBrowserTargetingRequest);

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

// Configure the bulk edit request.
LineItems.BulkEditAssignedTargetingOptions request =
    service.advertisers().lineItems()
        .bulkEditAssignedTargetingOptions(
            advertiser-id,
            requestContent);

// Execute bulk edit request.
BulkEditAssignedTargetingOptionsResponse response = request.execute();

// Check if any line items updated successfully.
if (response.getUpdatedLineItemIds() == null || response.getUpdatedLineItemIds().isEmpty()) {
  System.out.println("No line items were updated successfully.");
} else {
  System.out.printf(
      "Targeting configurations for the following line item IDs were updated: %s.\n",
      Arrays.toString(response.getUpdatedLineItemIds().toArray()));
}

// Check if any line items failed to update.
if (response.getFailedLineItemIds() == null || response.getFailedLineItemIds().isEmpty()) {
  System.out.println("No line items failed to update.");
} else {
  // Print the line items that failed to update.
  System.out.printf(
      "Targeting configurations for the following line item IDs failed to update: %s.\n",
      Arrays.toString(response.getFailedLineItemIds().toArray()));

  // Print errors thrown for failed updates.
  System.out.println("The failed updates were caused by the following errors:");
  for (Status error : response.getErrors()) {
    System.out.printf("Error Code: %s, Message: %s\n", error.getCode(), error.getMessage());
  }
}

Python

# Build assigned targeting option objects to create.
createBrowserAssignedTargetingOptions = []
for targeting_id in create-browser-assigned-targeting-ids:
  createBrowserAssignedTargetingOptions.append(
      {'browserDetails': {'targetingOptionId': targeting_id}}
  )

# Create a bulk edit request.
bulk_edit_line_item_request = {
    'lineItemIds': line-item-ids,
    'deleteRequests': [
        {
            'targetingType': 'TARGETING_TYPE_BROWSER',
            'assignedTargetingOptionIds':
              delete-browser-assigned-targeting-ids
        },
        {
            'targetingType': 'TARGETING_TYPE_DEVICE_MAKE_MODEL',
            'assignedTargetingOptionIds':
              delete-device-make-model-assigned-targeting-ids
        }
    ],
    'createRequests': [
        {
            'targetingType': 'TARGETING_TYPE_BROWSER',
            'assignedTargetingOptions':
              createBrowserAssignedTargetingOptions
        }
    ]
}

# Edit the line item targeting.
response = service.advertisers().lineItems()\
  .bulkEditAssignedTargetingOptions(
    advertiserId=advertiser-id,
    body=bulk_edit_line_item_request
).execute()

# Print successfully updated line items.
if 'updatedLineItemIds' not in response:
  print("No line items were updated successfully.")
else:
  print("Targeting configurations for the following line item IDs were updated: %s"
        % response['updatedLineItemIds'])

# Print line items that failed to update.
if 'failedLineItemIds' not in response:
  print("No line items failed to update.")
else:
  print("Targeting configurations for 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"]))

PHP

// Create delete request list.
$deleteRequests = array();

// Create and add browser assigned targeting option IDs to delete request list.
$deleteBrowserTargetingRequest =
    new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
$deleteBrowserTargetingRequest->setTargetingType(
    "TARGETING_TYPE_BROWSER"
);
$deleteBrowserTargetingRequest->setAssignedTargetingOptionIds(
    delete-browser-assigned-targeting-ids
);
$deleteRequests[] = $deleteBrowserTargetingRequest;

// Create and add device assigned targeting option IDs to delete request list.
$deleteDeviceTargetingRequest =
    new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
$deleteDeviceTargetingRequest->setTargetingType(
    "TARGETING_TYPE_DEVICE_MAKE_MODEL"
);
$deleteDeviceTargetingRequest->setAssignedTargetingOptionIds(
    delete-device-make-model-assigned-targeting-ids
);
$deleteRequests[] = $deleteDeviceTargetingRequest;

// Create create request list.
$createRequests = array();

// Create and populate list of browser assigned targetion options to create.
$createBrowserAssignedTargetingOptions = array();
foreach (create-browser-assigned-targeting-ids as $optionId) {
    $option = new Google_Service_DisplayVideo_AssignedTargetingOption();
    $details =
        new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails();
    $details->setTargetingOptionId($optionId);

    $option->setBrowserDetails($details);
    $createBrowserAssignedTargetingOptions[] = $option;
}

// Create and add browser assigned targeting option create request to create
// request list.
$createBrowserTargetingRequest =
    new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest();
$createBrowserTargetingRequest->setTargetingType(
    "TARGETING_TYPE_BROWSER"
);
$createBrowserTargetingRequest->setAssignedTargetingOptions(
    $createBrowserAssignedTargetingOptions
);
$createRequests[] = $createBrowserTargetingRequest;

// Create a bulk edit request and assign create and delete request lists.
$body =
    new Google_Service_DisplayVideo_BulkEditAssignedTargetingOptionsRequest();
$body->setLineItemIds(line-item-ids);
$body->setCreateRequests($createRequests);
$body->setDeleteRequests($deleteRequests);

// Call the API, editing the assigned targeting options for the identified
// line item.
$response = $service
    ->advertisers_lineItems
    ->bulkEditAssignedTargetingOptions(
        advertiser-id,
        $body
    );

// Print successfully updated line items.
if (!empty($response->getUpdatedLineItemIds())) {
    printf('Targeting configurations for the following line item IDs were updated:\n');
    foreach ($response->getUpdatedLineItemIds() as $id) {
        printf('%s\n', $id);
    }
} else {
    print('No line items were updated successfully.\n');
}

// Print line items that failed to update.
if (!empty($response->getFailedLineItemIds())) {
    print('Targeting configurations for the following line item IDs failed to update:\n');
    foreach ($response->getFailedLineItemIds() as $id) {
        printf('%s\n', $id);
    }
    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());
    }
} else {
    print('No line items failed to update.\n');
}