Ausrichtung

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 Identitätsräume. Auf dieser Seite finden Sie Informationen zu Einschränkungen und Best Practices für die Verwendung der Display & Video 360 API-Dienste für zugewiesene Targeting-Optionen.

Ausrichtungsübernahme verwenden

Das Targeting, das einigen Ressourcen zugewiesen ist, kann von ihren untergeordneten Ressourcen übernommen werden. Targeting-Optionen, die von einer untergeordneten Ressource übernommen werden, können abgerufen, aber nicht auf Ebene der untergeordneten Ressource bearbeitet werden. So können Einstellungen für die Markensicherheit und anderes Targeting für alle Anzeigen eines Partners oder Werbetreibenden erzwungen werden.

Der Überschreibungspfad ist im folgenden Diagramm dargestellt:

Diagramm zur Übernahme von Targeting-Kriterien

Wie im Diagramm dargestellt, unterstützen einige Ausrichtungsebenen nur einen Teil der Ausrichtungstypen. Das bedeutet, dass einige Targeting-Optionen nicht auf höheren Ebenen festgelegt und übernommen werden können, sondern stattdessen auf einer niedrigeren Ebene festgelegt werden müssen.

Ressourcen zur Vererbung in YouTube und Partner

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 von untergeordneten Ressourcen nicht übernommen.

Wenn Sie alle funktionalen Targeting-Einstellungen für eine Anzeigengruppe abrufen möchten, sollten Sie die zugewiesenen Targeting-Optionen für die Anzeigengruppe, die übergeordnete Werbebuchung und den übergeordneten Werbetreibenden abrufen.

Beachten Sie das beim Erstellen der Werbebuchung zugewiesene Targeting

Abgesehen von übernommenen Targeting-Optionen kann das Targeting in den meisten Fällen erst nach dem Erstellen einer Werbebuchung zugewiesen werden. Es gibt jedoch einige Targeting-Typen, bei denen Werbebuchungen beim Erstellen standardmäßig eine Teilmenge von Werten zugewiesen wird. Diese Targeting-Typen sind:

Wenn Sie versuchen, vorhandene Targeting-Optionen zu erstellen oder nicht zugewiesene zu löschen, wird ein Fehler ausgegeben. Wir empfehlen Ihnen daher, sich mit der gesamten Targeting-Suite vertraut zu machen, die Ihren Werbebuchungen beim Erstellen zugewiesen wird. Wenn Sie das Targeting abrufen möchten, das einer Werbebuchung 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_TYPE_AUTHORIZED_SELLER_STATUS-Targeting-Option definiert ist, wird der Status „Autorisierte direkte Verkäufer und Reseller“ verwendet.

Kein automatisches „Standard-Targeting“

In Display & Video 360 wird das Targeting, das auf Kampagnen- oder Anzeigenauftragsebene festgelegt ist, nicht sofort an die untergeordneten Werbebuchungen übergeben. Dieses Targeting wird als Standard-Targeting bezeichnet und dient als Targeting-Vorlage, die auf Werbebuchungen angewendet wird, die später in der Benutzeroberfläche erstellt werden.

In der Display & Video 360 API wird das Standard-Targeting nicht automatisch auf neu erstellte Werbebuchungen angewendet. Beim Erstellen einer einfachen Werbebuchung wird kein Targeting auf Kampagnen- oder Anzeigenauftragsebene kopiert. In diesem Fall muss das Targeting für Werbebuchungen separat über die zugewiesene Targeting-Option Erstellen oder Bulk-Bearbeitung angewendet werden.

Spezielle Methoden können eine Ausnahme bilden. Bei Werbebuchungen, die über advertisers.lineItems.generateDefault erstellt wurden, werden beispielsweise Einstellungen aus dem übergeordneten Anzeigenauftrag kopiert, einschließlich des zugewiesenen Targetings. Werbebuchungen, die durch Duplizierung erstellt wurden, erhalten dasselbe Targeting wie die ursprüngliche Werbebuchung.

Targeting auf „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 alle Targeting-Optionen, die direkt „YouTube und Partner“-Werbebuchungen und Anzeigengruppen zugewiesen sind, sowie alle Targeting-Optionen der folgenden Targeting-Typen:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Dieses Targeting 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 werden den meisten Targeting-Typen einzeln zugewiesen. Das Targeting auf Zielgruppen folgt dieser modularen Konvention nicht. Stattdessen wird es in einem einzelnen, konfigurierbaren Objekt vom Typ Details zum Targeting auf Zielgruppen zugewiesen. Dieses Objekt enthält die IDs der Zielgruppen, die bei der Auslieferung von Anzeigen ein- und ausgeschlossen werden sollen. Die assignedTargetingOptionId für diese Zielgruppengruppenoption ist nach der Zuweisung immer „audienceGroup“.

Das bedeutet, dass Sie bei jeder Änderung am Targeting für Zielgruppengruppen zuerst die vorhandene Zielgruppengruppe mit der zugewiesenen Targeting-Option löschen und dann eine neue Zielgruppengruppe mit der Targeting-Option und den gewünschten Änderungen erstellen müssen. Dies kann in einer einzigen Anfrage mit advertisers.lineItems.bulkEditAssignedTargetingOptions erfolgen.

Hier ein Beispiel für die Aktualisierung des Zielgruppen-Targetings, um die Ausrichtung auf zusätzliche Google-Zielgruppen zu optimieren:

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 Einstellung von Targeting-Optionen vorbereiten

Targeting-Optionen sind nicht statisch und einige werden von Zeit zu Zeit eingestellt. Targeting-Optionen, die eingestellt werden, haben keinen Einfluss auf die Anzeigenbereitstellung einer Werbebuchung. Nach der Einstellung werden diese Optionen den vorhandenen Positionen entzogen. Anfragen, die versuchen, diese Optionen abzurufen oder zuzuweisen, führen zu Fehlern.

Um diese Fehler zu vermeiden, empfehlen wir Ihnen, die gespeicherten IDs der Targeting-Optionen regelmäßig zu prüfen. Um das Kontingent zu schonen, empfehlen wir, regelmäßig verwendete IDs im Cache zu speichern. Wenn Sie jedoch IDs speichern, werden Sie möglicherweise nicht benachrichtigt, wenn eine Targeting-Option eingestellt wird. Daher sollten Sie regelmäßig über targetingOptions.targetingTypes.get alle gespeicherten Targeting-Options-IDs abrufen, um zu prüfen, ob sie noch von Display & Video 360 unterstützt werden.

Weitere Informationen zu wichtigen früheren und anstehenden Einstellungen finden Sie auf der Seite Ankündigte Einstellungen.

Stellen Sie keine gleichzeitigen Anfragen, um dieselbe Position zu aktualisieren.

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 zulässige Anfragen:

Wenn Sie mehreren zugewiesenen Targeting-Optionen für ein einzelnes Anzeigenelement gleichzeitig hinzufügen oder sie entfernen möchten, sollten Sie eine einzelne advertisers.lineItems.bulkEditAssignedTargetingOptions-Anfrage verwenden. Wenn Sie die Einstellungen und das Targeting einer Werbebuchung aktualisieren möchten, legen Sie die Anfrage vom Typ patch oder bulkUpdate und die entsprechende Targeting-Anfrage in die Warteschlange. So wird die zweite Anfrage erst gesendet, wenn die erste eine Antwort zurückgegeben hat.