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:
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:
advertisers.lineItems.bulkEditAssignedTargetingOptions
advertisers.lineItems.bulkUpdate
advertisers.lineItems.patch
advertisers.lineItems.targetingTypes.assignedTargetingOptions.create
advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
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.