La gestione del targeting delle risorse è una funzionalità centrale dell'API Display & Video 360. Il targeting può essere assegnato a più tipi di risorse e utilizza una serie di altre risorse e spazi ID. Questa pagina descrive in dettaglio le limitazioni da tenere presenti e le best practice da implementare nell'adozione dei servizi delle opzioni di targeting assegnato dell'API Display & Video 360.
Utilizzare l'ereditarietà del targeting
Il targeting assegnato ad alcune risorse può essere ereditato dalle risorse secondarie. Le opzioni di targeting ereditate da una risorsa secondaria sono recuperabili, ma non modificabili a livello di risorsa secondaria. In questo modo, le impostazioni di sicurezza del brand e altri targeting vengono applicati all'intero partner o inserzionista.
Il percorso di ereditarietà è visibile nel diagramma seguente:

Come specificato nel diagramma, alcuni livelli di targeting supportano solo un sottoinsieme di tipi di targeting. Ciò significa che alcune opzioni di targeting non possono essere impostate a livelli superiori e ereditate, ma devono essere impostate a un livello inferiore.
Ereditarietà nelle risorse YouTube e partner
L'ereditarietà del targeting non viene riflessa per le risorse YouTube e partner nell'API Display & Video 360. Il targeting ereditato dai gruppi di annunci non sarà
recuperabile a livello di AdGroup e il targeting YouTube
assegnato alle risorse padre non verrà ereditato dalle risorse figlio.
Per recuperare tutte le impostazioni di targeting funzionale per un gruppo di annunci, devi recuperare le opzioni di targeting assegnate per il gruppo di annunci, l'elemento pubblicitario principale e l'inserzionista principale.
Tieni presente il targeting assegnato al momento della creazione dell'elemento pubblicitario
A parte le opzioni di targeting ereditate, la maggior parte del targeting può essere assegnata solo dopo la creazione di un elemento pubblicitario. Tuttavia, esistono alcuni tipi di targeting che hanno un sottoinsieme predefinito di valori assegnati agli elementi pubblicitari al momento della creazione. Questi tipi di targeting sono:
Il tentativo di creare opzioni di targeting esistenti o eliminare quelle non esistenti
restituisce un errore, pertanto ti consigliamo di conoscere l'intera suite di targeting
assegnata ai tuoi elementi pubblicitari al momento della creazione. Se devi recuperare il
targeting assegnato a un elemento pubblicitario nei vari tipi di targeting, utilizza
advertisers.lineItems.bulkListAssignedTargetingOptions.
Inoltre, alcune impostazioni vengono impostate per impostazione predefinita quando alla risorsa non viene assegnata alcuna opzione di targeting di questo tipo. Ad esempio, se una risorsa non ha un'opzione di targeting
TARGETING_TYPE_AUTHORIZED_SELLER_STATUS
definita, significa che utilizza lo stato "Rivenditori e venditori diretti autorizzati".
Il targeting YouTube e partner non può essere modificato
Il targeting specifico per le campagne YouTube & Partner non può essere aggiornato utilizzando l'API Display & Video 360.
Il targeting YouTube e partner è costituito da tutto il targeting assegnato direttamente agli elementi pubblicitari YouTube e partner e ai gruppi di annunci, nonché da qualsiasi targeting dei seguenti tipi:
TARGETING_TYPE_SESSION_POSITIONTARGETING_TYPE_YOUTUBE_CHANNELTARGETING_TYPE_YOUTUBE_VIDEO
Questo targeting può essere aggiornato utilizzando direttamente l'interfaccia utente di Display & Video 360 o tramite il caricamento di un file di dati strutturati.
Assegnare il targeting per pubblico con una sola opzione
Le opzioni di targeting per la maggior parte dei tipi di targeting vengono assegnate singolarmente. Il targeting per gruppo di pubblico non segue questa convenzione modulare, ma viene assegnato in un singolo oggetto Dettagli del targeting per gruppo di pubblico configurabile che elenca gli ID dei segmenti di pubblico da includere ed escludere durante la pubblicazione degli annunci. Il
assignedTargetingOptionId per questa opzione di gruppo di pubblico,
una volta assegnato, è sempre "audienceGroup".
Questo design implica che qualsiasi modifica al targeting dei gruppi di pubblico deve essere apportata
eliminando prima l'opzione di targeting del gruppo di pubblico esistente e poi
creando una nuova opzione di targeting del gruppo di pubblico con le modifiche desiderate. Questa operazione può essere eseguita in un'unica richiesta
utilizzando
advertisers.lineItems.bulkEditAssignedTargetingOptions.
Ecco un esempio di come aggiornare il targeting per pubblico per scegliere come target in modo positivo segmenti di pubblico Google aggiuntivi:
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 );
Preparati al ritiro delle opzioni di targeting
Le opzioni di targeting non sono statiche e un numero ridotto potrebbe essere ritirato di tanto in tanto. Una volta ritirate, le opzioni di targeting non influiscono sulla pubblicazione degli annunci di un elemento pubblicitario. Dopo il ritiro, queste opzioni verranno annullate dalle voci di linea esistenti e le richieste che tentano di recuperarle o assegnarle genereranno errori.
Per evitare questi errori, ti consigliamo di controllare regolarmente gli ID delle opzioni di targeting memorizzate. Per conservare la quota, ti consigliamo di memorizzare nella cache
gli ID utilizzati di frequente. Tuttavia, memorizzare gli ID significa che potresti non
renderti conto che un'opzione di targeting è stata ritirata. Per questo motivo, devi
utilizzare regolarmente targetingOptions.targetingTypes.get per
recuperare tutti gli ID delle opzioni di targeting memorizzate per verificare che siano ancora
supportati da Display & Video 360.
Consulta la nostra pagina Ritiri annunciati per informazioni dettagliate sui ritiri significativi precedenti e futuri.
Non effettuare richieste simultanee di aggiornamento dello stesso elemento pubblicitario
Il tentativo di aggiornare le impostazioni o il targeting assegnato per un singolo elemento pubblicitario utilizzando più richieste simultanee restituirà un errore. Le richieste applicabili includono:
advertisers.lineItems.bulkEditAssignedTargetingOptionsadvertisers.lineItems.bulkUpdateadvertisers.lineItems.patchadvertisers.lineItems.targetingTypes.assignedTargetingOptions.createadvertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
Se devi aggiungere o rimuovere più opzioni di targeting assegnate per un singolo
elemento pubblicitario contemporaneamente, devi utilizzare una singola
richiesta advertisers.lineItems.bulkEditAssignedTargetingOptions. Se vuoi aggiornare le impostazioni e il targeting di un elemento pubblicitario, metti in coda
la richiesta patch o bulkUpdate e la richiesta di
targeting pertinente per assicurarti che la seconda richiesta non venga inviata finché la prima
non restituisce una risposta.