Управление таргетингом ресурсов — центральная функция API Display & Video 360. Таргетинг может быть назначен нескольким типам ресурсов и использует ряд других ресурсов и пространств идентификаторов. На этой странице подробно описаны ограничения, на которые следует обратить внимание, и рекомендации по внедрению сервисов назначенных параметров таргетинга API Display & Video 360.
Используйте наследование таргетинга
Таргетинг, назначенный некоторым ресурсам, может быть унаследован их дочерними ресурсами. Параметры таргетинга, унаследованные дочерним ресурсом, можно получить, но нельзя изменить на уровне дочернего ресурса. Это позволяет применять настройки безопасности бренда и другой таргетинг ко всему партнеру или рекламодателю.
Путь наследования можно увидеть на схеме ниже:
Как показано на схеме, некоторые уровни таргетинга поддерживают только часть типов таргетинга. Это означает, что некоторые параметры таргетинга нельзя установить на более высоких уровнях и унаследовать, их необходимо установить на более низком уровне.
Наследование в ресурсах YouTube и партнерских программ
Наследование таргетинга не отражается для ресурсов YouTube и партнеров в Display & Video 360 API. Таргетинг, унаследованный группами объявлений, нельзя будет получить на уровне AdGroup
, а таргетинг YouTube , назначенный родительским ресурсам, не будет унаследован дочерними ресурсами.
Чтобы получить все настройки функционального таргетинга для группы объявлений, вам необходимо получить назначенные параметры таргетинга для группы объявлений , родительской позиции и родительского рекламодателя .
Помните о таргетинге, назначенном при создании позиции.
За исключением унаследованных параметров таргетинга, большинство настроек таргетинга можно назначить только после создания позиции. Однако есть несколько типов таргетинга, которые имеют набор значений по умолчанию, присваиваемый позициям при их создании. Вот эти типы таргетинга:
Попытка создать существующие или удалить несуществующие назначенные параметры таргетинга приводит к ошибке, поэтому мы рекомендуем вам ознакомиться с полным набором таргетинга, который назначается вашим позициям при создании. Если вам нужно получить таргетинг, назначенный позиции для разных типов таргетинга, используйте advertisers.lineItems.bulkListAssignedTargetingOptions
.
Кроме того, некоторые настройки устанавливаются по умолчанию, если ресурсу не назначен параметр таргетинга этого типа. Например, если для ресурса не определен параметр таргетинга TARGETING_TYPE_AUTHORIZED_SELLER_STATUS
, это означает, что он использует статус «Авторизованные прямые продавцы и реселлеры».
Не ждите автоматического «таргетинга по умолчанию».
В Display & Video 360 таргетинг, заданный на уровне кампании или заказа на размещение, не передается сразу в дочерние позиции. Этот таргетинг известен как « таргетинг по умолчанию » и используется в качестве шаблона таргетинга, который применяется к позициям, впоследствии создаваемым в пользовательском интерфейсе.
В API Display & Video 360 таргетинг по умолчанию не применяется автоматически к вновь создаваемым позициям. Создание базовой позиции не копирует таргетинг на уровне кампании или заказа на размещение. В этом случае желаемый таргетинг необходимо применить к позициям отдельно с помощью назначенного параметра таргетинга или методов массового редактирования .
Специальные методы могут быть исключением. Например, позиции, созданные с помощью advertisers.lineItems.generateDefault
, копируют настройки родительского заказа на размещение, включая назначенный таргетинг. Аналогичным образом позициям, созданным путем дублирования, будет назначен тот же таргетинг, что и исходной позиции.
Таргетинг на YouTube и партнерских сайтах изменить нельзя.
Таргетинг специально для кампаний YouTube и партнеров невозможно обновить с помощью API Display & Video 360.
В таргетинг YouTube и партнерских программ входят все параметры таргетинга, назначенные непосредственно позициям и группам объявлений YouTube и партнерские партнеры, а также любой таргетинг следующих типов таргетинга:
-
TARGETING_TYPE_SESSION_POSITION
-
TARGETING_TYPE_YOUTUBE_CHANNEL
-
TARGETING_TYPE_YOUTUBE_VIDEO
Этот таргетинг можно обновить с помощью пользовательского интерфейса Display & Video 360 или загрузив файл структурированных данных .
Назначьте таргетинг на аудиторию с помощью одного варианта
Параметры таргетинга для большинства типов таргетинга назначаются индивидуально. Таргетинг на группы аудитории не соответствует этому модульному соглашению, а вместо этого назначается в одном настраиваемом объекте сведений о таргетинге на группы аудитории , в котором перечислены идентификаторы аудиторий, которые следует включать и исключать при показе рекламы. assignedTargetingOptionId
для этого параметра группы аудитории, если он назначен, всегда имеет значение «audienceGroup».
Такая конструкция означает, что любое изменение таргетинга на группу аудитории необходимо сначала удалить существующую опцию таргетинга, назначенную группе аудитории, а затем создать новую опцию таргетинга на группу аудитории с желаемыми изменениями. Это можно сделать одним запросом, используя advertisers.lineItems.bulkEditAssignedTargetingOptions
.
Вот пример того, как обновить таргетинг на аудиторию, чтобы эффективно ориентироваться на дополнительную аудиторию Google:
Ява
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();
Питон
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 );
Будьте готовы к тому, что параметры таргетинга станут устаревшими.
Параметры таргетинга не статичны, и некоторые из них могут время от времени устаревать. Параметры таргетинга, если они устарели, не влияют на показ объявлений позиции. После прекращения поддержки эти параметры будут отменены из существующих позиций, а запросы, пытающиеся получить или назначить эти параметры, приведут к ошибкам.
Чтобы избежать подобных ошибок, мы рекомендуем регулярно проверять сохраненные идентификаторы параметров таргетинга. Чтобы сохранить квоту, мы рекомендуем кэшировать регулярно используемые идентификаторы . Однако хранение идентификаторов означает, что вы можете не осознавать, что опция таргетинга устарела. По этой причине вам следует регулярно использовать targetingOptions.targetingTypes.get
для получения всех сохраненных идентификаторов параметров таргетинга и подтверждения того, что они по-прежнему поддерживаются Display & Video 360.
Подробную информацию о существенных предыдущих и предстоящих прекращениях поддержки см. на странице «Объявленные прекращения поддержки».
Не делайте одновременные запросы на обновление одной и той же позиции.
Попытка обновить настройки или назначенный таргетинг для одной позиции с помощью нескольких одновременных запросов приведет к ошибке. Применимые запросы включают в себя:
-
advertisers.lineItems.bulkEditAssignedTargetingOptions
-
advertisers.lineItems.bulkUpdate
-
advertisers.lineItems.patch
-
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
-
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
Если вам нужно добавить или удалить несколько назначенных параметров таргетинга для одной позиции одновременно, вам следует использовать один запрос advertisers.lineItems.bulkEditAssignedTargetingOptions
. Если вы хотите обновить настройки и таргетинг позиции, поставьте в очередь запрос patch
или bulkUpdate
и соответствующий запрос таргетинга, чтобы гарантировать, что второй запрос не будет отправлен до тех пор, пока первый не вернет ответ.