Targeting

O gerenciamento da segmentação por recursos é um recurso central API Video 360. A segmentação pode ser atribuída a vários tipos de recursos e utiliza vários outros recursos e espaços de ID. Esta página detalha as limitações práticas recomendadas para implementar na adoção do Segmentação atribuída da API Video 360 Serviços de opções.

Usar a herança de segmentação

A segmentação atribuída a alguns recursos pode ser herdada pelo filho do Google Cloud. As opções de segmentação herdadas por um recurso filho são recuperáveis, mas e não editável no nível do recurso filho. Isso ativa as configurações de brand safety e outras segmentações sejam aplicadas a todo o parceiro ou anunciante.

O caminho de herança pode ser visto no diagrama abaixo:

Diagrama de herança de segmentação

Conforme especificado no diagrama, alguns níveis de segmentação suportam apenas um subconjunto de tipos de segmentação. Isso significa que algumas opções de segmentação não podem ser definidas para níveis e herdados, mas precisam ser definidos em um nível inferior.

Herança no YouTube e Recursos de parceiros

A herança de segmentação não é refletida para o YouTube e Recursos de parceiros em Rede de Display e API Video 360. A segmentação herdada por grupos de anúncios não será recuperáveis no nível do AdGroup e na segmentação do YouTube atribuídos a recursos pai não serão herdados pelos filhos.

Para recuperar todas as configurações de segmentação funcional de um grupo de anúncios, você deve recuperar as opções de segmentação atribuídas ao grupo de anúncios, o item de linha pai e o anunciante pai.

Atenção à segmentação atribuída na criação do item de linha

Com exceção das opções de segmentação herdadas, a maior parte da segmentação só pode ser atribuída após a criação do item de linha. No entanto, há alguns tipos de segmentação que um subconjunto padrão de valores atribuído a itens de linha na criação do item de linha. Aqueles tipos de segmentação são:

Tentar criar ou excluir opções de segmentação atribuídas não existentes retorna um erro. Por isso, recomendamos que você conheça o pacote completo de segmentação. atribuído aos itens de linha no momento da criação. Se você precisar recuperar o de segmentação atribuída a um item de linha em diferentes tipos de segmentação, use advertisers.lineItems.bulkListAssignedTargetingOptions

Além disso, algumas configurações são definidas por padrão quando nenhuma opção de segmentação desse é atribuído ao recurso. Por exemplo, se um recurso não tiver um TARGETING_TYPE_AUTHORIZED_SELLER_STATUS opção de segmentação definida, ela usa a opção de segmentação " Vendedores e revendedores" o status atual da conta.

Não espere uma "segmentação padrão" automática

Em Display e A segmentação do Video 360 definida no nível da campanha ou do pedido de inserção é não são imediatamente transmitidos para os itens de linha secundários. Essa segmentação é conhecida como segmentação padrão e é usado como um modelo de segmentação que é aplicada aos itens de linha criados posteriormente na interface.

Na campanha Display & API Video 360, a segmentação padrão não é aplicada automaticamente a criou itens de linha. A criação básica de itens de linha não copia as campanhas ou no nível do pedido de inserção. Nesse caso, a segmentação desejada deve ser aplicada a itens de linha separadamente por meio da opção de segmentação atribuída métodos create ou edição em massa.

Métodos especiais podem ser uma exceção. Por exemplo, itens de linha criados advertisers.lineItems.generateDefault cópia do pedido de inserção pai, incluindo a segmentação atribuída. Da mesma forma, os itens de linha criados por duplicação terão o mesma segmentação do item de linha original.

YouTube e A segmentação de parceiros não pode ser modificada

Segmentação especificamente para YouTube e As campanhas de parceiros não podem ser atualizadas usando o Display & API Video 360.

YouTube e A segmentação de parceiros consiste em toda a segmentação atribuída diretamente ao YouTube e itens de linha e grupos de anúncios do Google Partners, bem como qualquer segmentação dos seguintes tipos de segmentação:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Essa segmentação pode ser atualizada com as campanhas com a interface do usuário do Video 360 fazer upload de um arquivo de dados estruturados.

Atribuir a segmentação por público-alvo com uma única opção

As opções de segmentação para a maioria dos tipos de segmentação são atribuídas individualmente. Público-alvo a segmentação por grupo não segue essa convenção modular, mas é atribuída em um único local configurável objeto de detalhes de segmentação do grupo de público-alvo que lista as IDs dos públicos-alvo que serão incluídos e excluídos ao veicular anúncios. A assignedTargetingOptionId para essa opção de grupo de compartilhamento; depois de atribuído, é sempre "audienceGroup".

Com esse design, qualquer mudança na segmentação do grupo de público-alvo precisa ser feita Primeiro, exclua o grupo de compartilhamento atribuído a opção de segmentação e criando um novo grupo de público-alvo de segmentação personalizada com as alterações desejadas. Isso pode ser feito com uma única solicitação usando advertisers.lineItems.bulkEditAssignedTargetingOptions

Veja um exemplo de como atualizar a segmentação por público-alvo para melhorar segmentar outros públicos-alvo do 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
    );

Esteja preparado para a descontinuação das opções de segmentação

As opções de segmentação não são estáticas, e um número pequeno pode ser descontinuado com o tempo ao longo do tempo. As opções de segmentação, quando descontinuadas, não afetam o anúncio do item de linha disponibilização. Após a descontinuação, essas opções serão removidas da linha atual itens e solicitações que tentarem recuperar ou atribuir essas opções resultarão em erros.

Para evitar esses erros, recomendamos que você verifique regularmente os registros os IDs de opção de segmentação. Para economizar cota, recomendamos que você armazene em cache usados regularmente. No entanto, armazenar IDs significa que não é possível uma opção de segmentação foi descontinuada. Por isso, você deve usam o targetingOptions.targetingTypes.get regularmente para recuperar todos os IDs de opção de segmentação armazenados para confirmar se eles ainda estão compatível com o Display & Vídeo em 360°.

Consulte a página Descontinuações anunciadas para detalhes sobre impactos e descontinuações anteriores e futuras.

Não faça solicitações simultâneas atualizando o mesmo item de linha

Tentativa de atualizar as configurações ou a segmentação atribuída a um único item de linha o uso de várias solicitações simultâneas retornará um erro. Solicitações aplicáveis incluem:

Se você precisar adicionar ou remover várias opções de segmentação atribuídas a uma única ao mesmo tempo, use uma única advertisers.lineItems.bulkEditAssignedTargetingOptions solicitação. Se você quiser atualizar as configurações e a segmentação de um item de linha, a solicitação patch ou bulkUpdate e as solicitações de segmentação para garantir que a segunda não seja enviada até a primeira retorna uma resposta.