Die Verwaltung des Ressourcen-Targetings ist eine zentrale Funktion der Display & Video 360 API. Das Targeting kann mehreren Ressourcentypen zugewiesen werden und nutzt eine Reihe anderer Ressourcen und ID-Bereiche. Auf dieser Seite finden Sie Einschränkungen und Best Practices für die Verwendung der Dienste für zugewiesene Targeting-Optionen der Display & Video 360 API.
Targeting-Übernahme nutzen
Das Targeting, das einigen Ressourcen zugewiesen ist, kann von ihren untergeordneten Ressourcen übernommen werden. Die Targeting-Optionen, die von einer untergeordneten Ressource übernommen werden, können auf der Ebene der untergeordneten Ressource abgerufen, aber nicht bearbeitet werden. So können Einstellungen für die Markensicherheit und anderes Targeting für den gesamten Partner oder Werbetreibenden erzwungen werden.
Der Vererbungspfad ist im folgenden Diagramm dargestellt:

Wie im Diagramm angegeben, wird bei einigen Targeting-Ebenen nur ein Teil der Targeting-Typen unterstützt. Das bedeutet, dass einige Targeting-Optionen nicht auf höheren Ebenen festgelegt und übernommen werden können, sondern auf einer niedrigeren Ebene festgelegt werden müssen.
Übernahme in „YouTube und Partner“-Ressourcen
Die Übernahme von Targeting-Einstellungen wird für „YouTube und Partner“-Ressourcen in der Display & Video 360 API nicht berücksichtigt. Targeting, das von Anzeigengruppen übernommen wird, kann nicht auf AdGroup-Ebene abgerufen werden. YouTube-Targeting, das übergeordneten Ressourcen zugewiesen ist, wird nicht von untergeordneten Ressourcen übernommen.
Wenn Sie alle Targeting-Einstellungen für eine Anzeigengruppe abrufen möchten, müssen Sie die zugewiesenen Targeting-Optionen für die Anzeigengruppe, die übergeordnete Werbebuchung und den übergeordneten Werbetreibenden abrufen.
Targeting, das beim Erstellen der Werbebuchung zugewiesen wird
Abgesehen von übernommenen Targeting-Optionen kann das meiste Targeting erst zugewiesen werden, nachdem eine Werbebuchung erstellt wurde. Es gibt jedoch einige Targeting-Typen, denen beim Erstellen von Werbebuchungen standardmäßig eine Teilmenge von Werten zugewiesen wird. Folgende Ausrichtungstypen sind verfügbar:
Wenn Sie versuchen, vorhandene zugewiesene Targeting-Optionen zu erstellen oder nicht vorhandene zu löschen, wird ein Fehler zurückgegeben. Wir empfehlen Ihnen daher, sich beim Erstellen Ihrer Werbebuchungen über die gesamte Targeting-Suite zu informieren, die Ihren Werbebuchungen zugewiesen ist. Wenn Sie das Targeting abrufen möchten, das einer Werbebuchung für alle Targeting-Typen zugewiesen ist, verwenden Sie advertisers.lineItems.bulkListAssignedTargetingOptions.
Außerdem werden einige Einstellungen standardmäßig festgelegt, wenn der Ressource keine Targeting-Option dieses Typs zugewiesen ist. Wenn für eine Ressource beispielsweise keine Targeting-Option für TARGETING_TYPE_AUTHORIZED_SELLER_STATUS definiert ist, wird der Status „Autorisierte Direktverkäufer und Reseller“ verwendet.
Targeting für „YouTube und Partner“ kann nicht geändert werden
Das Targeting speziell für YouTube & Partner-Kampagnen kann nicht über die Display & Video 360 API aktualisiert werden.
Das Targeting für YouTube und Partner umfasst das gesamte Targeting, das direkt „YouTube und Partner“-Werbebuchungen und Anzeigengruppen zugewiesen wird, sowie das Targeting der folgenden Targeting-Typen:
TARGETING_TYPE_SESSION_POSITIONTARGETING_TYPE_YOUTUBE_CHANNELTARGETING_TYPE_YOUTUBE_VIDEO
Diese Ausrichtung kann direkt über die Display & Video 360-Benutzeroberfläche oder durch Hochladen einer strukturierten Datendatei aktualisiert werden.
Ausrichtung auf Zielgruppen mit einer einzigen Option zuweisen
Targeting-Optionen für die meisten Targeting-Typen werden einzeln zugewiesen. Das Targeting auf Zielgruppengruppen folgt nicht dieser modularen Konvention, sondern wird stattdessen in einem einzelnen, konfigurierbaren audience group targeting details-Objekt zugewiesen, in dem die IDs der Zielgruppen aufgeführt sind, die bei der Anzeigenauslieferung ein- und ausgeschlossen werden sollen. Der assignedTargetingOptionId für diese Zielgruppengruppenoption ist nach der Zuweisung immer „audienceGroup“.
Das bedeutet, dass alle Änderungen an der Ausrichtung von Zielgruppengruppen vorgenommen werden müssen, indem Sie zuerst die vorhandene Ausrichtungsoption für die Zielgruppengruppe löschen und dann eine neue Ausrichtungsoption für die Zielgruppengruppe mit den gewünschten Änderungen erstellen. Dies kann in einer einzelnen Anfrage mit advertisers.lineItems.bulkEditAssignedTargetingOptions erfolgen.
Hier ein Beispiel dafür, wie Sie die Ausrichtung auf Zielgruppen aktualisieren, um zusätzliche Google-Zielgruppen positiv auszurichten:
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 );
Auf die Einstellung von Targeting-Optionen vorbereiten
Targeting-Optionen sind nicht statisch und einige werden möglicherweise von Zeit zu Zeit eingestellt. Wenn Targeting-Optionen eingestellt werden, hat das keine Auswirkungen auf die Anzeigenbereitstellung einer Werbebuchung. Nach der Einstellung werden diese Optionen aus bestehenden Line-Items entfernt. Anfragen, mit denen versucht wird, diese Optionen abzurufen oder zuzuweisen, führen zu Fehlern.
Um diese Fehler zu vermeiden, empfehlen wir, gespeicherte Targeting-Options-IDs regelmäßig zu prüfen. Um das Kontingent zu schonen, empfehlen wir, häufig verwendete IDs zu cachen. Wenn Sie IDs speichern, bemerken Sie möglicherweise nicht, dass eine Targeting-Option eingestellt wurde. Aus diesem Grund sollten Sie regelmäßig targetingOptions.targetingTypes.get verwenden, um alle gespeicherten Targeting-Optionen-IDs abzurufen und zu prüfen, ob sie noch von Display & Video 360 unterstützt werden.
Weitere Informationen zu wichtigen früheren und bevorstehenden Einstellungen finden Sie auf der Seite Angekündigte Einstellungen.
Gleichzeitige Anfragen zum Aktualisieren derselben Position vermeiden
Wenn Sie versuchen, die Einstellungen oder das zugewiesene Targeting für eine einzelne Werbebuchung mit mehreren gleichzeitigen Anfragen zu aktualisieren, wird ein Fehler zurückgegeben. Beispiele für anwendbare Anfragen:
advertisers.lineItems.bulkEditAssignedTargetingOptionsadvertisers.lineItems.bulkUpdateadvertisers.lineItems.patchadvertisers.lineItems.targetingTypes.assignedTargetingOptions.createadvertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
Wenn Sie für einen einzelnen Posten mehrere zugewiesene Targeting-Optionen gleichzeitig hinzufügen oder entfernen möchten, sollten Sie eine einzelne advertisers.lineItems.bulkEditAssignedTargetingOptions-Anfrage verwenden. Wenn Sie die Einstellungen und das Targeting einer Werbebuchung aktualisieren möchten, stellen Sie die Anfrage patch oder bulkUpdate und die entsprechende Targeting-Anfrage in die Warteschlange, damit die zweite Anfrage erst gesendet wird, wenn die erste eine Antwort zurückgibt.