Opsi Penargetan, Opsi Penargetan yang Ditetapkan, dan Layanan Item baris semuanya digunakan untuk menetapkan penargetan item baris di kolom Display & Video 360 API. Halaman ini menjelaskan dan memberikan contoh cara menemukan opsi penargetan yang tersedia, menetapkan opsi penargetan ke baris item baris, dan menjalankan operasi massal pada item baris untuk mencantumkan dan mengedit item baris opsi penargetan.
Menemukan opsi penargetan yang tersedia
Opsi penargetan menggunakan variabel yang ditentukan pengguna, variabel yang ada entitas, atau opsi yang sudah ada sebelumnya untuk mendefinisikan target audiens yang diinginkan. Opsi yang sudah ada sebelumnya diidentifikasi menggunakan nilai enum atau opsi penargetan ID, bergantung pada jenis penargetan. Entitas yang dapat ditargetkan diidentifikasi menggunakan ID entitas mereka. ID opsi penargetan dan ID entitas dapat ditemukan menggunakan Layar & 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 bisa digunakan untuk mengidentifikasi nilai enum yang ada
AssignedTargetingOption
referensi jenis penargetan ini dan
yang tersedia di kolom assignedTargetingOptionIdAlias
. Anda dapat
gunakan 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 sebelumnya ditetapkan menggunakan ID opsi penargetan.
Misalnya, ada sejumlah posisi di layar 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:
- 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 berdasarkan jenis penargetan dan ID opsi penargetan. GunakantargetingTypes.targetingOptions.list
untuk menampilkan semua yang tersedia opsi penargetan 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 diberikan.
Berikut adalah contoh cara mengambil daftar kemungkinan penargetan
opsi 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 );
Membuat daftar entity yang dapat ditargetkan
Untuk menargetkan item baris menggunakan entitas yang dapat ditargetkan yang sudah ada, Anda harus ID entitas tersebut. Entitas yang dapat ditargetkan, seperti saluran, audiens gabungan, dan grup sumber inventaris, dapat diambil melalui layanan mereka sendiri di platform Display & Video 360 API.
Setiap layanan memiliki metode get
dan list
sendiri. Gunakan metode get
untuk
mengonfirmasi bahwa suatu entitas tersedia di bawah pengiklan tertentu. Menggunakan list
untuk menemukan semua entitas dari jenis resource tersebut yang tersedia bagi
pengiklan tertentu, sehingga dapat digunakan dalam menetapkan penargetan ke
di bawah pengiklan tersebut.
Sebagian entitas yang dapat ditargetkan juga dapat dikelola melalui API. Ini adalah
dilakukan melalui metode create
dan patch
di layanan yang sesuai,
serta layanan untuk nilai individu yang tercantum dalam entitas, seperti
sumber inventaris,
kata kunci negatif, dan
lokasi.
Buat ID opsi penargetan POI
Opsi penargetan lokasi menarik yang dinamai, di bagian TARGETING_TYPE_POI
dapat
diambil menggunakan targetingTypes.targetingOptions.search
. Di beberapa
Selain itu, Anda dapat membuat ID opsi penargetan TARGETING_TYPE_POI
khusus untuk
menargetkan koordinat lintang-bujur tertentu.
Ikuti langkah-langkah berikut untuk membuat ID opsi penargetan POI:
- Ambil koordinat lintang-bujur (mis: "40.7414691, -74.003387")
- Bulatkan nilai koordinat ke tempat desimal keenam (contoh: "40.741469, -74,003387")
- Hapus tempat desimal dari nilai koordinat (contoh: "40741469, -74003387")
- Menggabungkan dua nilai untuk membuat string tunggal, dipisahkan dengan titik koma. (misalnya: "40741469;-74003387")
String yang dihasilkan dapat digunakan sebagai targetingOptionId
saat membuat
TARGETING_TYPE_POI
menetapkan opsi penargetan.
Setelah dibuat, kolom targetingOptionId
dan assignedTargetingOptionId
pada
resource opsi penargetan yang ditetapkan akan diperbarui, dengan menambahkan titik koma
dan hash alfanumerik.
Tetapkan opsi penargetan
Penargetan yang ditetapkan ke item baris ditampilkan 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 yang ada akan menghapus opsi tersebut penargetan.
Gunakan
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
untuk membuat opsi penargetan yang ditetapkan. Tentukan parameter penargetan di
Kolom details
dari resource opsi penargetan yang ditetapkan
sesuai dengan jenis penargetan yang diinginkan.
Berikut contoh cara membuat opsi penargetan yang ditetapkan
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 mengenai penargetan di kampanye Display & Video 360 Hal ini diberlakukan di perangkat Display & Video 360 API melalui error yang ditampilkan saat pembuatan opsi penargetan yang ditetapkan. Error yang ditampilkan oleh API akan menentukan 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 sebuah baris
item Anda, menilai apakah penargetan yang diinginkan dapat dilakukan dengan keterbatasannya,
dan gunakan
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
untuk menghapus penargetan yang tidak diinginkan sebelum mencoba lagi membuat
opsi penargetan yang ditetapkan.
YouTube & Error penargetan partner
Penargetan khusus untuk YouTube & Kampanye Partners tidak dapat diperbarui menggunakan perangkat Display & Video 360 API dan mencoba melakukannya akan menghasilkan error.
YouTube & Penargetan partner terdiri dari semua penargetan yang ditetapkan langsung kepada YouTube & Item Baris Partner dan Grup Iklan, serta semua penargetan dari jenis penargetan berikut:
TARGETING_TYPE_SESSION_POSITION
TARGETING_TYPE_YOUTUBE_CHANNEL
TARGETING_TYPE_YOUTUBE_VIDEO
Error serentak
Mencoba memperbarui setelan atau penargetan item baris tunggal melalui beberapa permintaan serentak akan mengakibatkan error.
Jika Anda perlu menambahkan atau menghapus beberapa opsi penargetan yang ditetapkan untuk satu
item baris pada saat yang sama, Anda harus menggunakan
permintaan edit massal. Jika Anda ingin memperbarui
setelan dan penargetan, jadikan advertisers.lineItems.patch
dan permintaan penargetan relevan secara berurutan untuk memastikan
permintaan tidak dikirim sebelum yang pertama mengembalikan respons.
Operasi penargetan massal dan seluruh resource
Anda dapat menggunakan metode penargetan massal dan seluruh resource untuk mengelola opsi penargetan di seluruh jenis penargetan:
- Gunakan metode penargetan massal untuk mengambil atau mengedit opsi penargetan di
beberapa jenis penargetan dan di beberapa resource. Anda dapat mengambil
konfigurasi penargetan lengkap dari beberapa item baris menggunakan
advertisers.lineItems.bulkListAssignedTargetingOptions
atau membuat pembaruan yang sama pada penargetan di beberapa item baris menggunakanadvertisers.lineItems.bulkEditAssignedTargetingOptions
. Ini hanya tersedia diadvertisers.lineItems
layanan. - Gunakan Metode penargetan seluruh resource untuk mengambil atau mengedit opsi penargetan
di beberapa jenis penargetan
menggunakan satu resource. Link ini tersedia
di
partners
,advertisers
,advertisers.campaigns
, danadvertisers.insertionOrders
dan diberi namalistAssignedTargetingOptions
ataueditAssignedTargetingOptions
.
Jika Anda ingin gambaran lengkap dari penargetan item baris saat ini, terapkan sebuah konfigurasi penargetan yang telah ditetapkan sebelumnya ke item baris, atau perlu melakukan beberapa perubahan ke penargetan item baris secara bersamaan, pertimbangkan untuk menggunakan penargetan ini metode.
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. Alat ini beroperasi serupa dengan list
lainnya
. Anda dapat menggunakan parameter kueri filter
untuk memfilter
hasil dari 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 dari berbagai penargetan
jenis dari satu atau beberapa item baris secara bersamaan.
Metode ini mengambil daftar
DeleteAssignedTargetingOptionsRequests
dan daftar
CreateAssignedTargetingOptionsRequests
. Satu permintaan
dapat merepresentasikan penghapusan atau pembuatan beberapa penargetan yang ditetapkan
opsi jenis penargetan yang sama.
Jika upaya penghapusan atau pembuatan opsi penargetan yang ditetapkan menyebabkan untuk item baris, tindakan massal diabaikan untuk item baris tersebut. Tujuan menampilkan daftar baris yang berhasil diperbarui item baris, serta daftar item baris yang gagal update dan resource error.
Berikut contoh cara mengedit massal opsi penargetan yang ditetapkan untuk satu atau beberapa opsi item baris diberi daftar opsi penargetan yang ditetapkan untuk dihapus dan penargetan opsi yang ingin 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'); }