타겟팅 옵션, 할당된 타겟팅 옵션, 광고 항목 서비스는 모두 Display & Video 360 API에서 광고 항목 타겟팅을 설정하기 위해 함께 사용됩니다. 이 페이지에서는 사용 가능한 타겟팅 옵션을 찾고, 타겟팅 옵션을 광고 항목에 할당하고, 광고 항목에서 일괄 작업을 실행하여 할당된 타겟팅 옵션을 나열하고 수정하는 방법을 설명하고 예시를 제공합니다.
사용 가능한 타겟팅 옵션 찾기
타겟팅 옵션은 사용자 지정 변수, 타겟팅 가능한 기존 항목 또는 기존 옵션을 사용하여 원하는 공유 대상 그룹을 정의합니다. 기존 옵션은 타겟팅 유형에 따라 enum 값 또는 타겟팅 옵션 ID를 사용하여 식별됩니다. 타겟팅 가능한 항목은 항목 ID를 사용하여 식별됩니다. 타겟팅 옵션 ID 및 항목 ID는 Display & Video 360 API를 사용하여 확인할 수 있습니다.
set 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는 타겟팅 옵션 서비스를 통해 검색할 수 있습니다. 타겟팅 유형에 따라 다음 두 가지 방법 중 하나로 검색이 실행됩니다.
- 개별 검색 또는 전체 목록: 대부분의 타겟팅 유형에 대한 옵션은
get
및list
메서드를 사용하여 검색할 수 있습니다.targetingTypes.targetingOptions.get
를 사용하여 타겟팅 유형 및 타겟팅 옵션 ID로 식별된 타겟팅 옵션의 세부정보를 가져옵니다.targetingTypes.targetingOptions.list
를 사용하여 지정된 타겟팅 유형의 사용 가능한 모든 타겟팅 옵션을 나열합니다. - 검색: 위치 기반 타겟팅 유형(
TARGETING_TYPE_GEO_REGION
,TARGETING_TYPE_POI
,TARGETING_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가 필요합니다. 채널, 결합된 잠재고객, 인벤토리 소스 그룹과 같은 타겟팅 가능한 항목은 Display & Video 360 API의 자체 서비스를 통해 검색할 수 있습니다.
각 서비스에는 자체 get
및 list
메서드가 있습니다. get
메서드를 사용하여 특정 광고주에서 항목을 사용할 수 있는지 확인합니다. list
메서드를 사용하여 특정 광고주가 사용할 수 있고 따라서 해당 광고주의 광고 항목에 타겟팅을 할당하는 데 사용할 수 있는 해당 리소스 유형의 모든 항목을 찾습니다.
타겟팅 가능한 항목의 하위 집합도 API를 통해 관리할 수 있습니다. 이는 상응하는 서비스의 create
및 patch
메서드와 엔티티에 나열된 개별 값(예: 인벤토리 소스, 제외 키워드, 위치)의 서비스를 통해 이루어집니다.
관심 장소 타겟팅 옵션 ID 빌드
TARGETING_TYPE_POI
아래의 이름이 지정된 관심 장소 타겟팅 옵션은 targetingTypes.targetingOptions.search
를 사용하여 검색할 수 있습니다. 또한 맞춤 TARGETING_TYPE_POI
타겟팅 옵션 ID를 빌드하여 특정 위도-경도 좌표를 타겟팅할 수 있습니다.
관심 장소 타겟팅 옵션 ID를 빌드하려면 다음 단계를 따르세요.
- 위도-경도 좌표를 검색합니다 (예: '40.7414691, -74.003387').
- 좌표 값을 소수점 이하 6자리로 반올림합니다 (예: '40.741469, -74.003387').
- 좌표 값에서 소수점을 삭제합니다 (예: '40741469, -74003387').
- 두 값을 연결하여 단일 문자열로 만들고 세미콜론으로 구분합니다(예: '40741469;-74003387').
결과 문자열은 할당된 TARGETING_TYPE_POI
타겟팅 옵션을 만들 때 targetingOptionId
로 사용할 수 있습니다.
생성 시 할당된 타겟팅 옵션 리소스의 targetingOptionId
및 assignedTargetingOptionId
필드가 업데이트되어 세미콜론과 영숫자 해시가 추가됩니다.
타겟팅 옵션 할당
광고 항목에 할당된 타겟팅은 할당된 타겟팅 옵션으로 표시됩니다. 할당된 타겟팅 옵션 서비스를 사용하여 이러한 항목을 관리할 수 있습니다. 할당된 타겟팅 옵션을 만들면 이러한 타겟팅 세부정보가 상위 광고 항목에 적용됩니다. 할당된 기존 타겟팅 옵션을 삭제하면 해당 타겟팅이 삭제됩니다.
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'] );
오류
타겟팅 구성 오류
Display & Video 360에는 타겟팅과 관련된 여러 가지 복잡한 규칙이 있습니다. 이는 할당된 타겟팅 옵션 생성 시 반환된 오류를 통해 Display & Video 360 API에서 시행됩니다. API에서 반환하는 오류는 위반을 지정합니다.
오류는 대부분 광고 항목에 할당된 기존 타겟팅으로 인해 발생합니다. advertisers.lineItems.targetingTypes.assignedTargetingOptions.list
를 사용하여 광고 항목에 할당된 특정 타겟팅 유형의 모든 타겟팅 옵션을 검색하고, 제한사항을 고려하여 원하는 타겟팅이 가능한지 평가한 후, advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
를 사용하여 원치 않는 타겟팅을 삭제한 다음 원하는 할당된 타겟팅 옵션을 다시 만들려고 시도합니다.
YouTube + 파트너 타겟팅 오류
Display & Video 360 API를 사용하여 YouTube 및 파트너 캠페인용 타겟팅을 업데이트할 수 없으며 업데이트하려고 하면 오류가 발생합니다.
YouTube + 파트너 타겟팅은 YouTube + 파트너 광고 항목 및 광고 그룹에 직접 할당된 모든 타겟팅과 다음 타겟팅 유형의 모든 타겟팅으로 구성됩니다.
TARGETING_TYPE_SESSION_POSITION
TARGETING_TYPE_YOUTUBE_CHANNEL
TARGETING_TYPE_YOUTUBE_VIDEO
동시 실행 오류
여러 개의 동시 요청을 통해 단일 광고 항목의 설정 또는 타겟팅을 업데이트하려고 하면 오류가 발생합니다.
단일 광고 항목에 할당된 여러 타겟팅 옵션을 동시에 추가하거나 삭제해야 하는 경우 일괄 수정 요청을 사용해야 합니다. 광고 항목의 설정 및 타겟팅을 업데이트하려면 advertisers.lineItems.patch
요청과 관련 타겟팅 요청을 연속으로 실행하여 첫 번째 요청이 응답을 반환할 때까지 두 번째 요청이 전송되지 않도록 합니다.
일괄 및 리소스 전체 타겟팅 작업
일괄 및 리소스 전체 타겟팅 방법을 사용하여 타겟팅 유형 전반에서 할당된 타겟팅 옵션을 관리할 수 있습니다.
- 일괄 타겟팅 방법을 사용하여 여러 타겟팅 유형과 여러 리소스에서 타겟팅 옵션을 검색하거나 수정합니다.
advertisers.lineItems.bulkListAssignedTargetingOptions
를 사용하여 여러 광고 항목의 전체 타겟팅 구성을 검색하거나advertisers.lineItems.bulkEditAssignedTargetingOptions
를 사용하여 여러 광고 항목에서 동일하게 타겟팅을 업데이트할 수 있습니다. 이 기능은advertisers.lineItems
서비스에서만 사용할 수 있습니다. - 리소스 전체 타겟팅 방법을 사용하여 단일 리소스에서 여러 타겟팅 유형 간에 타겟팅 옵션을 검색하거나 수정합니다. 이는
partners
및advertisers
서비스에서 사용할 수 있으며 이름은listAssignedTargetingOptions
또는editAssignedTargetingOptions
입니다.
광고 항목의 현재 타겟팅을 전체적으로 확인하거나, 사전 설정된 타겟팅 구성을 광고 항목에 적용하거나, 광고 항목의 타겟팅을 동시에 여러 번 변경해야 하는 경우 이러한 타겟팅 방법을 사용하는 것이 좋습니다.
일괄 등록정보 타겟팅
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
는 하나 이상의 광고 항목에서 다양한 타겟팅 유형의 여러 타겟팅 옵션을 동시에 추가 및 삭제하는 방법을 제공합니다.
이 메서드는 DeleteAssignedTargetingOptionsRequests
목록과 CreateAssignedTargetingOptionsRequests
목록을 사용합니다. 단일 요청 객체는 동일한 타겟팅 유형의 할당된 여러 타겟팅 옵션의 삭제 또는 생성을 나타낼 수 있습니다.
할당된 타겟팅 옵션을 삭제하거나 만들려고 시도했을 때 광고 항목에 오류가 발생하면 해당 광고 항목의 일괄 작업이 중단됩니다. 요청은 업데이트된 광고 항목 목록과 업데이트되지 않은 광고 항목 목록 및 관련 오류를 반환합니다.
다음은 삭제할 할당된 타겟팅 옵션 목록과 만들 타겟팅 옵션 목록이 주어진 경우 하나 이상의 광고 항목에 할당된 타겟팅 옵션을 일괄 수정하는 방법의 예입니다.
자바
// 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'); }