Таргетинг

Управление таргетингом ресурсов является центральной функцией API Display & Video 360. Таргетинг может быть назначен нескольким типам ресурсов и использует ряд других ресурсов и пространств идентификаторов. На этой странице подробно описаны ограничения, которые следует учитывать, и рекомендации по внедрению сервисов назначенных параметров таргетинга API Display & Video 360.

Используйте наследование целей.

Назначенные некоторым ресурсам параметры таргетинга могут передаваться дочерним ресурсам. Параметры таргетинга, унаследованные дочерним ресурсом, можно получить, но нельзя редактировать на уровне дочернего ресурса. Это позволяет применять настройки безопасности бренда и другие параметры таргетинга ко всей сети партнера или рекламодателя.

Путь наследования можно увидеть на диаграмме ниже:

Диаграмма целевого наследования

Как показано на диаграмме, некоторые уровни таргетинга поддерживают только подмножество типов таргетинга. Это означает, что некоторые параметры таргетинга нельзя установить на более высоких уровнях и унаследовать, а необходимо установить на более низком уровне.

Наследование в ресурсах YouTube и партнеров

Наследование таргетинга не отображается для ресурсов YouTube и партнеров в API Display & Video 360. Таргетинг, унаследованный группами объявлений, не будет доступен на уровне AdGroup , а таргетинг YouTube, назначенный родительским ресурсам, не будет унаследован дочерними ресурсами.

Чтобы получить все функциональные настройки таргетинга для группы объявлений, необходимо получить назначенные параметры таргетинга для группы объявлений , родительской позиции объявления и родительского рекламодателя .

Учитывайте целевую аудиторию, назначенную при создании позиций заказа.

За исключением наследуемых параметров таргетинга, большинство параметров таргетинга можно назначить только после создания позиции заказа. Однако существует несколько типов таргетинга, для которых при создании позиции заказа присваивается набор значений по умолчанию. К таким типам таргетинга относятся:

Попытка создания существующих или удаления несуществующих назначенных параметров таргетинга приводит к ошибке, поэтому мы рекомендуем вам ознакомиться с полным набором параметров таргетинга, назначенных вашим позициям при создании. Если вам необходимо получить параметры таргетинга, назначенные позиции, для разных типов таргетинга, используйте advertisers.lineItems.bulkListAssignedTargetingOptions .

Кроме того, некоторые параметры устанавливаются по умолчанию, если ресурсу не назначен параметр таргетинга этого типа. Например, если для ресурса не определен параметр таргетинга TARGETING_TYPE_AUTHORIZED_SELLER_STATUS , это означает, что он использует статус «Авторизованные прямые продавцы и реселлеры».

Настройки таргетинга 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:

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
    );

Будьте готовы к тому, что параметры таргетинга будут устарели.

Параметры таргетинга не являются статичными, и небольшое их число может время от времени устаревать. После устаревания параметры таргетинга не влияют на показ рекламы по позиции. После устаревания эти параметры будут отменены для существующих позиций, и запросы, пытающиеся получить или назначить эти параметры, будут приводить к ошибкам.

Во избежание подобных ошибок мы рекомендуем регулярно проверять сохраненные идентификаторы параметров таргетинга. Для экономии квоты мы рекомендуем кэшировать часто используемые идентификаторы . Однако хранение идентификаторов может привести к тому, что вы не заметите, что тот или иной параметр таргетинга устарел. Поэтому следует регулярно использовать targetingOptions.targetingTypes.get для получения всех сохраненных идентификаторов параметров таргетинга, чтобы убедиться, что они по-прежнему поддерживаются Display & Video 360.

Подробную информацию о значительных предыдущих и предстоящих случаях амортизации вы найдете на нашей странице «Объявленные случаи амортизации» .

Не выполняйте одновременные запросы на обновление одной и той же позиции в таблице.

Попытка обновить настройки или назначенные целевые параметры для одной позиции в иерархии товаров с использованием нескольких одновременных запросов приведет к ошибке. К таким запросам относятся:

Если вам необходимо одновременно добавить или удалить несколько назначенных параметров таргетинга для одной позиции в рекламном объявлении, следует использовать один запрос advertisers.lineItems.bulkEditAssignedTargetingOptions . Если вы хотите обновить настройки и таргетинг позиции в рекламном объявлении, поставьте в очередь запрос patch или bulkUpdate и соответствующий запрос на таргетинг, чтобы гарантировать, что второй запрос не будет отправлен до тех пор, пока первый не вернет ответ.