Layanan Penargetan Penargetan, Opsi Penargetan yang Ditetapkan, dan Item baris semuanya digunakan bersama untuk menetapkan penargetan item baris di Display & Video 360 API. Halaman ini menjelaskan dan memberikan contoh cara menemukan opsi penargetan yang tersedia, menetapkan opsi penargetan ke item baris, dan menjalankan operasi massal pada item baris untuk mencantumkan dan mengedit opsi penargetan yang ditetapkan.
Menemukan opsi penargetan yang tersedia
Opsi penargetan menggunakan variabel yang ditentukan pengguna, entitas yang dapat ditargetkan, atau opsi yang sudah ada sebelumnya untuk menentukan target audiens yang diinginkan. Opsi yang sudah ada diidentifikasi menggunakan nilai enum atau ID opsi penargetan, bergantung pada jenis penargetan. Entitas yang dapat ditargetkan diidentifikasi menggunakan ID entitasnya. ID opsi penargetan dan ID entitas dapat ditemukan menggunakan Display & Video 360 API.
Menggunakan nilai enum yang ditetapkan
Opsi penargetan untuk jenis penargetan berikut ditetapkan menggunakan jenis enum tertentu:
TargetingType |
Enum |
---|---|
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 |
Versi string dari nilai enum yang relevan dapat digunakan untuk mengidentifikasi resource
AssignedTargetingOption
yang ada dari jenis penargetan ini dan
tersedia di kolom assignedTargetingOptionIdAlias
. Anda dapat
menggunakan nilai alias ini sebagai pengganti assignedTargetingOptionId
saat
mengambil atau menghapus opsi penargetan yang ditetapkan.
Ambil ID opsi penargetan
Jenis penargetan yang menggunakan opsi yang sudah ada akan ditetapkan menggunakan ID opsi penargetan yang sesuai.
Misalnya, ada jumlah posisi di layar terbatas yang
dapat ditargetkan menggunakan jenis penargetan TARGETING_TYPE_ON_SCREEN_POSITION
. Masing-masing
posisi ini memiliki ID opsi penargetan yang sesuai.
ID opsi penargetan ini dapat diambil melalui layanan Opsi Penargetan. Bergantung pada jenis penargetan, pengambilan dilakukan dengan salah satu dari dua cara berikut:
- Pengambilan individual atau daftar lengkap: Pengambilan opsi untuk
sebagian besar jenis penargetan dapat dilakukan menggunakan metode
get
danlist
. GunakantargetingTypes.targetingOptions.get
untuk mengambil detail opsi penargetan yang diidentifikasi oleh jenis penargetan dan ID opsi penargetan. GunakantargetingTypes.targetingOptions.list
untuk mencantumkan semua opsi penargetan yang tersedia dari jenis penargetan tertentu. - Penelusuran: Opsi untuk jenis penargetan berbasis lokasi
(
TARGETING_TYPE_GEO_REGION
,TARGETING_TYPE_POI
, danTARGETING_TYPE_BUSINESS_CHAIN
) harus diambil menggunakan metodesearch
. GunakantargetingTypes.targetingOptions.search
untuk mengambil opsi penargetan dari jenis tertentu yang cocok dengan string kueri yang ditentukan.
Berikut adalah contoh cara mengambil daftar opsi penargetan yang
mungkin untuk jenis penargetan TARGETING_TYPE_BROWSER
:
Java
// 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 );
Mencantumkan entity yang dapat ditarget
Untuk menargetkan item baris menggunakan entitas yang dapat ditargetkan, Anda memerlukan ID entitas tersebut. Entitas yang dapat ditargetkan, seperti saluran, audiens gabungan, dan grup sumber inventaris, dapat diambil melalui layanannya sendiri di Display & Video 360 API.
Setiap layanan memiliki metode get
dan list
-nya sendiri. Gunakan metode get
untuk
mengonfirmasi bahwa entitas tersedia di bawah pengiklan tertentu. Gunakan metode list
untuk menemukan semua entity dari jenis resource tersebut yang tersedia bagi
pengiklan tertentu, dan oleh karena itu, dapat digunakan dalam menetapkan penargetan ke
item baris dalam pengiklan tersebut.
Subset entity yang dapat ditargetkan juga dapat dikelola melalui API. Hal ini dilakukan melalui metode create
dan patch
di layanan yang sesuai, serta layanan untuk masing-masing nilai yang tercantum dalam entity, seperti sumber inventaris, kata kunci negatif, dan lokasi.
ID opsi penargetan POI build
Opsi penargetan lokasi menarik yang bernama, di bagian TARGETING_TYPE_POI
dapat
diambil menggunakan targetingTypes.targetingOptions.search
. Selain
itu, Anda dapat membuat ID opsi penargetan TARGETING_TYPE_POI
khusus untuk
menargetkan koordinat garis lintang dan garis bujur tertentu.
Ikuti langkah-langkah berikut untuk membuat ID opsi penargetan POI:
- Mengambil koordinat garis lintang dan bujur (mis: "40.7414691, -74.003387")
- Nilai koordinat pembulatan ke angka desimal keenam (contoh: "40.741469, -74.003387")
- Hapus tempat desimal dari nilai koordinat (misalnya: "40741469, -74003387")
- Gabungkan kedua nilai tersebut untuk membuat satu string, yang dipisahkan dengan titik koma (contoh: "40741469;-74003387")
String yang dihasilkan dapat digunakan sebagai targetingOptionId
saat membuat
opsi penargetan yang ditetapkan ke TARGETING_TYPE_POI
.
Setelah dibuat, kolom targetingOptionId
dan assignedTargetingOptionId
resource opsi penargetan yang ditetapkan akan diperbarui, dengan menambahkan
hash alfanumerik dan titik koma.
Menetapkan opsi penargetan
Penargetan yang ditetapkan ke item baris direpresentasikan sebagai Opsi Penargetan yang Ditetapkan. Anda dapat mengelola entitas ini menggunakan layanan Opsi Penargetan yang Ditetapkan. Membuat opsi penargetan yang ditetapkan akan menerapkan detail penargetan tersebut ke item baris induk. Menghapus opsi penargetan yang ditetapkan dan sudah ada akan menghapus penargetan tersebut.
Gunakan
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
untuk membuat opsi penargetan yang ditetapkan. Tentukan parameter penargetan di kolom
details
dari resource opsi penargetan yang ditetapkan yang
sesuai dengan jenis penargetan yang diinginkan.
Berikut adalah contoh cara membuat opsi penargetan yang ditetapkan
untuk jenis penargetan TARGETING_TYPE_BROWSER
:
Java
// 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'] );
Error
Error konfigurasi penargetan
Ada sejumlah aturan rumit terkait penargetan di Display & Video 360. Hal ini diterapkan di Display & Video 360 API melalui error yang ditampilkan saat pembuatan opsi penargetan yang ditetapkan. Error yang ditampilkan oleh API akan menyebutkan pelanggaran.
Error sebagian besar disebabkan oleh penargetan yang sudah ada yang ditetapkan ke item baris. Gunakan
advertisers.lineItems.targetingTypes.assignedTargetingOptions.list
untuk mengambil semua opsi penargetan dari jenis penargetan tertentu yang ditetapkan ke item
baris, menilai apakah penargetan yang diinginkan memungkinkan dengan mempertimbangkan batasan,
dan gunakan
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
untuk menghapus penargetan yang tidak diinginkan sebelum mencoba lagi membuat opsi penargetan
yang ditetapkan yang diinginkan.
Error penargetan YouTube & Partner
Penargetan khusus untuk kampanye YouTube & Partner tidak dapat diperbarui menggunakan Display & Video 360 API dan mencoba melakukannya akan menghasilkan error.
Penargetan YouTube & Partners terdiri dari semua penargetan yang ditetapkan langsung ke Item Baris dan Grup Iklan YouTube & Partners, serta penargetan apa pun dari jenis penargetan berikut:
TARGETING_TYPE_SESSION_POSITION
TARGETING_TYPE_YOUTUBE_CHANNEL
TARGETING_TYPE_YOUTUBE_VIDEO
Error serentak
Mencoba memperbarui setelan atau penargetan satu item baris melalui beberapa permintaan serentak akan mengakibatkan error.
Jika perlu menambahkan atau menghapus beberapa opsi penargetan yang ditetapkan untuk satu
item baris sekaligus, Anda harus menggunakan
permintaan edit massal. Jika Anda ingin memperbarui
setelan dan penargetan item baris, buat permintaan advertisers.lineItems.patch
dan permintaan penargetan yang relevan secara berurutan untuk memastikan permintaan
kedua tidak dikirim sampai yang pertama menampilkan respons.
Operasi penargetan massal dan seluruh resource
Anda dapat menggunakan metode penargetan bulk dan resource-wide untuk mengelola opsi penargetan yang ditetapkan di seluruh jenis penargetan:
- Gunakan metode penargetan massal untuk mengambil atau mengedit opsi penargetan di
beberapa jenis penargetan dan dalam beberapa resource. Anda dapat mengambil
konfigurasi penargetan lengkap beberapa item baris menggunakan
advertisers.lineItems.bulkListAssignedTargetingOptions
atau membuat perubahan yang sama pada penargetan di beberapa item baris menggunakanadvertisers.lineItems.bulkEditAssignedTargetingOptions
. Ini hanya tersedia di layananadvertisers.lineItems
. - Gunakan Metode penargetan seluruh resource untuk mengambil atau mengedit opsi penargetan
di berbagai jenis penargetan dalam satu resource. Ini tersedia
di layanan
partners
,advertisers
,advertisers.campaigns
, danadvertisers.insertionOrders
serta diberi namalistAssignedTargetingOptions
ataueditAssignedTargetingOptions
.
Jika Anda ingin gambaran lengkap tentang penargetan item baris saat ini, ingin menerapkan konfigurasi penargetan yang telah ditetapkan ke item baris, atau perlu membuat beberapa perubahan pada penargetan item baris secara bersamaan, pertimbangkan untuk menggunakan metode penargetan ini.
Cantumkan penargetan secara massal
advertisers.lineItems.bulkListAssignedTargetingOptions
menyediakan cara untuk melihat semua penargetan yang ditetapkan ke satu atau beberapa item baris
di berbagai jenis penargetan. Metode ini beroperasi mirip dengan metode list
lainnya. Anda dapat menggunakan parameter kueri filter
untuk memfilter hasil menurut TargetingType
atau Inheritance
.
Berikut adalah contoh cara menampilkan daftar semua opsi penargetan yang ditetapkan ke item baris yang diwarisi oleh partner induk atau pengiklan:
Java
// 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);
Mengedit penargetan secara massal
advertisers.lineItems.bulkEditAssignedTargetingOptions
menyediakan cara untuk menambahkan dan menghapus beberapa opsi penargetan berbagai jenis
penargetan dari satu atau beberapa item baris secara bersamaan.
Metode ini mengambil daftar
DeleteAssignedTargetingOptionsRequests
dan daftar
CreateAssignedTargetingOptionsRequests
. Satu objek permintaan dapat mewakili penghapusan atau pembuatan beberapa opsi penargetan yang ditetapkan dari jenis penargetan yang sama.
Jika percobaan penghapusan atau pembuatan opsi penargetan yang ditetapkan menyebabkan error untuk item baris, tindakan massal akan diabaikan untuk item baris tersebut. Permintaan tersebut menampilkan daftar item baris yang berhasil diperbarui, serta daftar item baris yang gagal diperbarui dan error yang relevan.
Berikut adalah contoh cara mengedit massal opsi penargetan yang ditetapkan untuk satu atau beberapa item baris berdasarkan daftar opsi penargetan yang telah ditetapkan untuk dihapus dan opsi penargetan untuk dibuat:
Java
// 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'); }