Pengelolaan penargetan resource adalah fitur utama Display & Video 360 API. Penargetan dapat ditetapkan ke beberapa jenis resource dan menggunakan sejumlah resource dan ruang ID lainnya. Halaman ini menjelaskan batasan yang perlu diperhatikan dan praktik terbaik yang harus diterapkan dalam penggunaan layanan Opsi Penargetan yang Ditetapkan API Display & Video 360.
Memanfaatkan pewarisan penargetan
Penargetan yang ditetapkan ke beberapa resource dapat diwarisi oleh resource turunannya. Opsi penargetan yang diwarisi oleh resource turunan dapat diambil, tetapi tidak dapat diedit di tingkat resource turunan. Tindakan ini memungkinkan setelan keamanan merek dan penargetan lainnya diterapkan di seluruh partner atau pengiklan.
Jalur pewarisan dapat dilihat dalam diagram di bawah:

Seperti yang ditentukan dalam diagram, beberapa tingkat penargetan hanya mendukung subset jenis penargetan. Artinya, beberapa opsi penargetan tidak dapat ditetapkan di tingkat yang lebih tinggi dan diwariskan, tetapi harus ditetapkan di tingkat yang lebih rendah.
Pewarisan di resource YouTube & Partner
Pewarisan penargetan tidak tercermin untuk resource YouTube & Partner di
Display & Video 360 API. Penargetan yang diwarisi oleh Grup Iklan tidak akan dapat diambil di tingkat AdGroup dan penargetan YouTube yang ditetapkan ke resource induk tidak akan diwarisi oleh resource turunan.
Untuk mengambil semua setelan penargetan fungsional untuk grup iklan, Anda harus mengambil opsi penargetan yang ditetapkan untuk Grup Iklan, item baris induk, dan pengiklan induk.
Perhatikan penargetan yang ditetapkan saat pembuatan item baris
Selain opsi penargetan yang diwariskan, sebagian besar penargetan hanya dapat ditetapkan setelah item baris dibuat. Namun, ada beberapa jenis penargetan yang memiliki subkumpulan nilai default yang ditetapkan ke item baris saat pembuatan item baris. Jenis penargetan tersebut adalah:
Mencoba membuat opsi penargetan yang ditetapkan yang sudah ada atau menghapus opsi penargetan yang ditetapkan yang tidak ada akan menampilkan error, jadi sebaiknya Anda mengetahui rangkaian lengkap penargetan yang ditetapkan ke item baris Anda saat pembuatan. Jika Anda perlu mengambil
penargetan yang ditetapkan ke item baris di berbagai jenis penargetan, gunakan
advertisers.lineItems.bulkListAssignedTargetingOptions.
Selain itu, beberapa setelan ditetapkan secara default jika tidak ada opsi penargetan jenis tersebut yang ditetapkan ke resource. Misalnya, jika opsi penargetan
TARGETING_TYPE_AUTHORIZED_SELLER_STATUS
tidak ditentukan untuk suatu resource, berarti resource tersebut menggunakan status "Reseller dan Penjual Langsung yang Sah".
Penargetan YouTube & Partner tidak dapat diubah
Penargetan khusus untuk kampanye YouTube & Partner tidak dapat diperbarui menggunakan Display & Video 360 API.
Penargetan YouTube & Partner terdiri dari semua penargetan yang ditetapkan langsung ke Item Baris YouTube & Partner dan Grup Iklan, serta penargetan jenis penargetan berikut:
TARGETING_TYPE_SESSION_POSITIONTARGETING_TYPE_YOUTUBE_CHANNELTARGETING_TYPE_YOUTUBE_VIDEO
Penargetan ini dapat diperbarui menggunakan UI Display & Video 360 secara langsung atau dengan mengupload File Data Terstruktur.
Menetapkan penargetan audiens dengan satu opsi
Opsi penargetan untuk sebagian besar jenis penargetan ditetapkan satu per satu. Penargetan grup audiens tidak mengikuti konvensi modular ini, tetapi ditetapkan
dalam satu objek
detail penargetan grup audiens yang dapat dikonfigurasi yang mencantumkan
ID audiens yang akan disertakan dan dikecualikan saat menayangkan iklan. assignedTargetingOptionId untuk opsi grup audiens ini, setelah ditetapkan, selalu "audienceGroup".
Desain ini berarti bahwa setiap perubahan pada penargetan grup audiens harus dilakukan dengan
menghapus terlebih dahulu opsi penargetan grup audiens yang ada
dan kemudian membuat opsi penargetan grup audiens baru
dengan perubahan yang diinginkan. Tindakan ini dapat dilakukan dalam satu permintaan
menggunakan
advertisers.lineItems.bulkEditAssignedTargetingOptions.
Berikut adalah contoh cara memperbarui penargetan audiens untuk menargetkan audiens Google tambahan secara positif:
Java
long advertiserId = advertiser-id; long lineItemId = line-item-id List<Long> addedGoogleAudienceIds = Arrays.asList(google-audience-id-to-add,...); // Build Google audience targeting settings objects to add to audience // targeting. ArrayList<GoogleAudienceTargetingSetting> newGoogleAudienceSettings = new ArrayList<GoogleAudienceTargetingSetting>(); // Convert list of Google Audience IDs into list of settings. for (Long googleAudienceId : addedGoogleAudienceIds) { newGoogleAudienceSettings.add(new GoogleAudienceTargetingSetting() .setGoogleAudienceId(googleAudienceId)); } // Create relevant bulk edit request objects. BulkEditLineItemAssignedTargetingOptionsRequest requestContent = new BulkEditLineItemAssignedTargetingOptionsRequest(); AudienceGroupAssignedTargetingOptionDetails updatedAudienceGroupDetails; ArrayList<DeleteAssignedTargetingOptionsRequest> audienceGroupDeleteRequests = new ArrayList<DeleteAssignedTargetingOptionsRequest>(); try { // Retrieve existing audience group targeting. AssignedTargetingOption existingAudienceGroupTargetingOption = service .advertisers() .lineItems() .targetingTypes() .assignedTargetingOptions() .get( advertiserId, lineItemId, "TARGETING_TYPE_AUDIENCE_GROUP", "audienceGroup" ).execute(); // Extract existing audience group targeting details. updatedAudienceGroupDetails = existingAudienceGroupTargetingOption.getAudienceGroupDetails(); // Build and add delete request for existing audience group targeting. ArrayList<String> deleteAudienceGroupAssignedTargetingIds = new ArrayList<String>(); deleteAudienceGroupAssignedTargetingIds.add("audienceGroup"); audienceGroupDeleteRequests .add(new DeleteAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP") .setAssignedTargetingOptionIds( deleteAudienceGroupAssignedTargetingIds ) ); } catch (GoogleJsonResponseException e) { updatedAudienceGroupDetails = new AudienceGroupAssignedTargetingOptionDetails(); } // Set delete requests in edit request. requestContent.setDeleteRequests(audienceGroupDeleteRequests); // Construct new group of Google Audiences to include in targeting. GoogleAudienceGroup updatedIncludedGoogleAudienceGroup = updatedAudienceGroupDetails.getIncludedGoogleAudienceGroup(); if (updatedIncludedGoogleAudienceGroup != null) { List<GoogleAudienceTargetingSetting> updatedGoogleAudienceSettings = updatedIncludedGoogleAudienceGroup.getSettings(); updatedGoogleAudienceSettings.addAll(newGoogleAudienceSettings); updatedIncludedGoogleAudienceGroup .setSettings(updatedGoogleAudienceSettings); } else { updatedIncludedGoogleAudienceGroup = new GoogleAudienceGroup(); updatedIncludedGoogleAudienceGroup.setSettings(newGoogleAudienceSettings); } // Add new Google Audience group to audience group targeting details. updatedAudienceGroupDetails .setIncludedGoogleAudienceGroup(updatedIncludedGoogleAudienceGroup); // Create new targeting option to assign. AssignedTargetingOption newAudienceGroupTargeting = new AssignedTargetingOption(); newAudienceGroupTargeting .setAudienceGroupDetails(updatedAudienceGroupDetails); // Build audience group targeting create request and add to list of create // requests. ArrayList<AssignedTargetingOption> createAudienceGroupAssignedTargetingOptions = new ArrayList<AssignedTargetingOption>(); createAudienceGroupAssignedTargetingOptions.add(newAudienceGroupTargeting); ArrayList<CreateAssignedTargetingOptionsRequest> targetingCreateRequests = new ArrayList<CreateAssignedTargetingOptionsRequest>(); targetingCreateRequests.add(new CreateAssignedTargetingOptionsRequest() .setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP") .setAssignedTargetingOptions( createAudienceGroupAssignedTargetingOptions ) ); // Set create requests in edit request. requestContent.setCreateRequests(targetingCreateRequests); // Configure and execute the bulk list request. BulkEditLineItemAssignedTargetingOptionsResponse response = service.advertisers().lineItems() .bulkEditLineItemAssignedTargetingOptions( advertiserId, lineItemId, requestContent).execute();
Python
advertiser_id = advertiser-id line_item_id = line-item-id added_google_audiences = [google-audience-id-to-add,...] # Build Google audience targeting settings objects to create. new_google_audience_targeting_settings = [] for google_audience_id in added_google_audiences: new_google_audience_targeting_settings.append( {'googleAudienceId': google_audience_id} ) # Retrieve any existing line item audience targeting. retrieved_audience_targeting = service.advertisers().lineItems( ).targetingTypes().assignedTargetingOptions().get( advertiserId=advertiser_id, lineItemId=line_item_id, targetingType="TARGETING_TYPE_AUDIENCE_GROUP", assignedTargetingOptionId="audienceGroup" ).execute() updated_audience_group_details = {} # Copy over any existing audience targeting. if 'audienceGroupDetails' in retrieved_audience_targeting: updated_audience_group_details = retrieved_audience_targeting[ 'audienceGroupDetails'] # Append the new Google audience IDs to any existing positive Google # audience targeting. if 'includedGoogleAudienceGroup' in updated_audience_group_details: updated_audience_group_details[ 'includedGoogleAudienceGroup']['settings'].extend( new_google_audience_targeting_settings) else: updated_audience_group_details['includedGoogleAudienceGroup'] = { 'settings': new_google_audience_targeting_settings } # Build bulk edit request. bulk_edit_request = { 'deleteRequests': [ { 'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP", 'assignedTargetingOptionIds': [ "audienceGroup" ] } ], 'createRequests': [ { 'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP", 'assignedTargetingOptions': [ {'audienceGroupDetails': updated_audience_group_details} ] } ] } # Update the audience targeting updated_audience_targeting = service.advertisers().lineItems( ).bulkEditLineItemAssignedTargetingOptions( advertiserId=advertiser_id, lineItemId=line_item_id, body=bulk_edit_request ).execute()
PHP
$advertiserId = advertiser-id; $lineItemId = line-item-id; $addedGoogleAudienceIds = array(google-audience-id-to-add,...); // Convert list of Google Audience IDs into list of Google audience // settings. $newGoogleAudienceSettings = array(); foreach ($addedGoogleAudienceIds as $googleAudienceId) { $newSetting = new Google_Service_DisplayVideo_GoogleAudienceTargetingSetting(); $newSetting->setGoogleAudienceId($googleAudienceId); $newGoogleAudienceSettings[] = $newSetting; } // Create a bulk edit request. $requestBody = new Google_Service_DisplayVideo_BulkEditLineItemAssignedTargetingOptionsRequest(); $audienceGroupDeleteRequests = array(); try { // Retrieve existing audience group targeting. $existingAudienceGroupTargetingOption = $this ->service ->advertisers_lineItems_targetingTypes_assignedTargetingOptions ->get( $advertiserId, $lineItemId, 'TARGETING_TYPE_AUDIENCE_GROUP', 'audienceGroup' ); // Extract existing audience group targeting details. $updatedAudienceGroupDetails = $existingAudienceGroupTargetingOption ->getAudienceGroupDetails(); // Build and add delete request for existing audience group // targeting. $deleteAudienceGroupAssignedTargetingIds = array(); $deleteAudienceGroupAssignedTargetingIds[] = "audienceGroup"; $audienceGroupDeleteRequest = new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest(); $audienceGroupDeleteRequest ->setTargetingType('TARGETING_TYPE_AUDIENCE_GROUP'); $audienceGroupDeleteRequest ->setAssignedTargetingOptionIds( $deleteAudienceGroupAssignedTargetingIds ); $audienceGroupDeleteRequests[] = $audienceGroupDeleteRequest; } catch (\Exception $e) { $updatedAudienceGroupDetails = new Google_Service_DisplayVideo_AudienceGroupAssignedTargetingOptionDetails(); } // Set delete requests in edit request. $requestBody->setDeleteRequests($audienceGroupDeleteRequests); // Construct new group of Google audiences to include in targeting. $updatedIncludedGoogleAudienceGroup = $updatedAudienceGroupDetails ->getIncludedGoogleAudienceGroup(); if (!empty($updatedIncludedGoogleAudienceGroup)) { // Get existing settings. $updatedGoogleAudienceSettings = $updatedIncludedGoogleAudienceGroup->getSettings(); // Add new Google audiences to existing list. $updatedGoogleAudienceSettings = array_merge( $updatedGoogleAudienceSettings, $newGoogleAudienceSettings ); // Set updated Google audience list. $updatedIncludedGoogleAudienceGroup ->setSettings($updatedGoogleAudienceSettings); } else { // Create new Google audience group. $updatedIncludedGoogleAudienceGroup = new Google_Service_DisplayVideo_GoogleAudienceGroup(); // Set list of new Google audiences for targeting. $updatedIncludedGoogleAudienceGroup ->setSettings($newGoogleAudienceSettings); } // Add new Google Audience group to audience group targeting details. $updatedAudienceGroupDetails ->setIncludedGoogleAudienceGroup( $updatedIncludedGoogleAudienceGroup ); // Create new targeting option to assign. $newAudienceGroupTargeting = new Google_Service_DisplayVideo_AssignedTargetingOption(); $newAudienceGroupTargeting ->setAudienceGroupDetails($updatedAudienceGroupDetails); // Build audience group targeting create request and add to list of // create requests. $createAudienceGroupAssignedTargetingOptions = array(); $createAudienceGroupAssignedTargetingOptions[] = $newAudienceGroupTargeting; $createAudienceGroupTargetingRequest = new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest(); $createAudienceGroupTargetingRequest->setTargetingType( "TARGETING_TYPE_AUDIENCE_GROUP" ); $createAudienceGroupTargetingRequest->setAssignedTargetingOptions( $createAudienceGroupAssignedTargetingOptions ); $createRequests[] = $createAudienceGroupTargetingRequest; // Set create requests in edit request. $requestBody->setCreateRequests($createRequests); // Call the API, editing the assigned targeting options for the // identified line item. $response = $this ->service ->advertisers_lineItems ->bulkEditLineItemAssignedTargetingOptions( $advertiserId, $lineItemId, $requestBody );
Bersiaplah karena opsi penargetan akan dihentikan
Opsi penargetan tidak statis, dan sejumlah kecil opsi dapat dihentikan dari waktu ke waktu. Opsi penargetan, setelah tidak digunakan lagi, tidak memengaruhi penayangan iklan item baris. Setelah penghentian penggunaan, opsi ini tidak akan ditetapkan dari item baris dan permintaan yang mencoba mengambil atau menetapkan opsi ini akan menghasilkan error.
Untuk menghindari error ini, sebaiknya Anda memeriksa ID opsi penargetan yang disimpan secara rutin. Untuk menghemat kuota, sebaiknya Anda menyimpan dalam cache ID yang sering digunakan. Namun, menyimpan ID berarti Anda mungkin tidak menyadari bahwa opsi penargetan telah dihentikan. Oleh karena itu, Anda harus
menggunakan targetingOptions.targetingTypes.get secara rutin untuk
mengambil semua ID opsi penargetan yang disimpan guna mengonfirmasi bahwa ID tersebut masih
didukung oleh Display & Video 360.
Lihat halaman Penghentian Penggunaan yang Diumumkan untuk mengetahui detail tentang penghentian penggunaan signifikan sebelumnya dan mendatang.
Jangan membuat permintaan serentak yang memperbarui item baris yang sama
Mencoba memperbarui setelan atau penargetan yang ditetapkan untuk satu item baris menggunakan beberapa permintaan serentak akan menampilkan error. Permintaan yang berlaku mencakup:
advertisers.lineItems.bulkEditAssignedTargetingOptionsadvertisers.lineItems.bulkUpdateadvertisers.lineItems.patchadvertisers.lineItems.targetingTypes.assignedTargetingOptions.createadvertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
Jika Anda perlu menambahkan atau menghapus beberapa opsi penargetan yang ditetapkan untuk satu item baris secara bersamaan, Anda harus menggunakan satu permintaan
advertisers.lineItems.bulkEditAssignedTargetingOptions. Jika Anda ingin memperbarui setelan dan penargetan item baris, antrekan
permintaan patch atau bulkUpdate dan permintaan penargetan yang relevan
untuk memastikan permintaan kedua tidak dikirim hingga permintaan pertama
menampilkan respons.