Orientación

La administración de la segmentación de recursos es una función central API de Video 360. La segmentación puede asignarse a varios tipos de recursos otros recursos y espacios de ID. En esta página, se detallan las limitaciones que se deben tener en cuenta y las para implementar en la adopción de las APIs de Display Segmentación asignada de la API de Video 360 Servicios de opciones.

Usa la herencia de segmentación

El elemento secundario puede heredar la segmentación asignada a algunos recursos de Google Cloud. Las opciones de segmentación heredadas por un recurso secundario son recuperables, pero y no se puede editar a nivel de los recursos secundarios. Esto habilita la configuración de seguridad de la marca otra orientación que se aplique a todo el socio o anunciante.

La ruta de herencia se puede ver en el siguiente diagrama:

Diagrama de herencia de segmentación

Como se especifica en el diagrama, algunos niveles de orientación solo admiten un subconjunto de tipos de segmentación. Esto significa que algunas opciones de segmentación no pueden establecerse en un nivel más alto y se heredan, pero se deben establecer en un nivel inferior.

Herencia en YouTube y Recursos de Partners

La herencia de segmentación no se refleja en las Recursos de Partners en Anuncios gráficos y API de Video 360. No se aplicará la segmentación heredada por los grupos de anuncios Recuperables a nivel de AdGroup y la segmentación de YouTube asignados a recursos superiores no serán heredados por los recursos secundarios.

Para recuperar toda la configuración de la segmentación funcional para un grupo de anuncios, debes recuperar las opciones de segmentación asignadas para el Grupo de anuncios, el línea de pedido superior y anunciante superior.

Ten en cuenta la segmentación asignada durante la creación de la línea de pedido

Además de las opciones de segmentación heredadas, la mayoría de las segmentaciones solo se pueden asignar después de crear una línea de pedido. Sin embargo, hay algunos tipos de segmentación que tienen un subconjunto predeterminado de valores asignados a líneas de pedido durante su creación. Los que tipos de segmentación:

Intentar crear opciones de segmentación asignadas existentes o borrar opciones que no existen muestra un error, por lo que te recomendamos que conozcas todo el paquete de segmentación que se asigna a sus líneas de pedido en el momento de su creación. Si necesitas recuperar el la segmentación asignada a una línea de pedido en varios tipos de segmentación, usa advertisers.lineItems.bulkListAssignedTargetingOptions

Además, algunos parámetros de configuración se establecen de forma predeterminada cuando no hay ninguna opción de segmentación se asigna el tipo de recurso al recurso. Por ejemplo, si un recurso no tiene un TARGETING_TYPE_AUTHORIZED_SELLER_STATUS de segmentación definida, significa que usa la política Vendedores y revendedores" estado.

No esperes la "segmentación predeterminada" automática

En display y La segmentación de Video 360 establecida a nivel de la campaña o del pedido de inserción es no se pasan inmediatamente a sus líneas de pedido secundarias. Esta segmentación se conoce como "segmentación predeterminada" y se usa como plantilla de segmentación que se aplica a las líneas de pedido creadas posteriormente en la IU.

En la Red de Display y API de Video 360, la orientación predeterminada no se aplica automáticamente a las aplicaciones líneas de pedido creadas. La creación de la línea de pedido básica no se copia sobre ninguna campaña. o a nivel del pedido de inserción. En este caso, la segmentación deseada debe ser Se aplican a las líneas de pedido por separado mediante la opción de segmentación asignada. create o edición masiva.

Los métodos especiales pueden ser una excepción. Por ejemplo, las líneas de pedido creadas a través de Copia advertisers.lineItems.generateDefault del pedido de inserción superior, incluida la segmentación asignada. Del mismo modo, a las líneas de pedido creadas mediante duplicación se les asignará la la misma segmentación que la línea de pedido original.

YouTube y No se puede modificar la segmentación de socios

Orientación específica para YouTube y Las campañas de Partners no se pueden actualizar la Red de Display y API de Video 360.

YouTube y La segmentación de socios consiste en toda la segmentación asignada directamente a YouTube y Líneas de pedido y grupos de anuncios de Partners, así como Cualquier segmentación de los siguientes tipos de segmentación:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Esta segmentación se puede actualizar con las campañas IU de Video 360 directamente o subir un archivo de datos estructurados

Asigna la segmentación por público con una sola opción

Las opciones de segmentación para la mayoría de los tipos de segmentación se asignan de forma individual. Público La segmentación grupal no sigue esta convención modular, sino que se asigna en un entorno único y configurable de detalles de segmentación del grupo de público que enumere los Son los IDs de los públicos que se incluirán y excluirán cuando se publiquen anuncios. El assignedTargetingOptionId para esta opción de grupo de público una vez que se asigna, siempre es "audienceGroup".

Este diseño significa que cualquier cambio en la segmentación de los grupos de público debe hacerse Primero, borra el grupo de público existente asignado opción de segmentación y, luego, crea un nuevo grupo de público opción de segmentación con los cambios deseados. Esto se puede hacer en una sola solicitud mediante advertisers.lineItems.bulkEditAssignedTargetingOptions

A continuación, te mostramos un ejemplo de cómo actualizar la Segmentación por público para generar Orientar los anuncios a otros públicos de 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
    );

Prepárate para que las opciones de segmentación dejen de estar disponibles

Las opciones de segmentación no son estáticas, y es posible que una pequeña cantidad de ellas deje de estar disponible en el futuro. a tiempo. Una vez obsoletas, las opciones de segmentación no afectan el anuncio de una línea de pedido de Google Cloud. Después de la baja, se anulará la asignación de estas opciones de la línea existente los elementos y las solicitudes que intenten recuperar o asignar estas opciones generarán en los errores.

Para evitar estos errores, te recomendamos que verifiques regularmente el almacenamiento IDs de opciones de segmentación. Para conservar la cuota, te recomendamos que almacenes en caché IDs que se usan con frecuencia. Sin embargo, si almacenas los IDs, no podrás notar que una opción de segmentación dejó de estar disponible. Por este motivo, deberías usa targetingOptions.targetingTypes.get de forma habitual para recuperar todos los IDs de opciones de segmentación almacenados para confirmar que aún compatibles con Display & Video en 360°

Consulta nuestra página de Bajas anunciadas para obtener detalles sobre las bajas anteriores y futuras.

No haga solicitudes simultáneas actualizando la misma línea de pedido

Intentar actualizar la configuración o la segmentación asignada a una sola línea de pedido Si usas varias solicitudes simultáneas, se mostrará un error. Solicitudes aplicables incluyen:

Si necesitas agregar o quitar varias opciones de segmentación asignadas a una sola línea de pedido al mismo tiempo, debes usar una sola línea de pedido advertisers.lineItems.bulkEditAssignedTargetingOptions para cada solicitud. Si quiere actualizar la configuración y la segmentación de una línea de pedido, la solicitud de patch o bulkUpdate y los de segmentación para asegurarse de que la segunda solicitud no se envíe devuelve una respuesta.