Ausrichtung

Die Verwaltung des Ressourcen-Targetings ist eine zentrale Funktion der Display & Video 360 API. Targeting kann mehreren Ressourcentypen zugewiesen werden und nutzt eine Reihe anderer Ressourcen und ID-Bereiche. Auf dieser Seite werden Hinweise zu Einschränkungen sowie Best Practices für die Implementierung der Dienste für zugewiesene Targeting-Optionen der Display & Video 360 API beschrieben.

Targeting-Übernahme nutzen

Das einigen Ressourcen zugewiesene Targeting kann von den untergeordneten Ressourcen übernommen werden. Targeting-Optionen, die von einer untergeordneten Ressource übernommen werden, können auf der Ebene der untergeordneten Ressource zwar abgerufen, aber nicht bearbeitet werden. So können Einstellungen für die Markensicherheit und andere Targeting-Einstellungen für den gesamten Partner oder Werbetreibenden erzwungen werden.

Der Pfad der Übernahme ist im folgenden Diagramm dargestellt:

Diagramm zur Targeting-Übernahme

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

Übernahme in YouTube und Partner-Ressourcen

Die Targeting-Übernahme wird für „YouTube und Partner“-Ressourcen in der Display & Video 360 API nicht berücksichtigt. Das von Anzeigengruppen übernommene Targeting kann auf AdGroup-Ebene nicht abgerufen werden und das YouTube-Targeting, das übergeordneten Ressourcen zugewiesen ist, wird nicht von untergeordneten Ressourcen übernommen.

Wenn Sie alle funktionalen 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.

Beachten Sie das Targeting, das bei der Erstellung einer Werbebuchung zugewiesen wurde.

Abgesehen von den übernommenen Targeting-Optionen können die meisten Targeting-Optionen erst zugewiesen werden, nachdem eine Werbebuchung erstellt wurde. Bei einigen Targeting-Typen wird den Werbebuchungen jedoch bei der Erstellung eine Standarduntergruppe von Werten zugewiesen. Diese Targeting-Typen sind:

Wenn Sie versuchen, vorhandene zugewiesene Targeting-Optionen zu erstellen oder zu löschen, wird ein Fehler zurückgegeben. Sie sollten daher die gesamte Targeting-Suite kennen, die Ihren Werbebuchungen bei der Erstellung zugewiesen wird. Wenn Sie das einer Werbebuchung zugewiesene Targeting für verschiedene Targeting-Typen abrufen möchten, 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 TARGETING_TYPE_AUTHORIZED_SELLER_STATUS definiert ist, wird für sie der Status „Autorisierte Direktverkäufer und Reseller“ verwendet.

Automatisches „Standard-Targeting“ nicht erwarten

In Display & Video 360 wird das auf Kampagnen- oder Anzeigenauftragsebene festgelegte Targeting nicht sofort an die untergeordneten Werbebuchungen übergeben. Dieses Targeting wird als Standard-Targeting bezeichnet und als Targeting-Vorlage verwendet, 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 einfachen Erstellen von Werbebuchungen wird kein Targeting auf Kampagnen- oder Anzeigenauftragsebene übernommen. In diesem Fall muss das gewünschte Targeting separat über die zugewiesenen Targeting-Optionen Erstellen oder Bulk-Bearbeitung auf die Werbebuchungen angewendet werden.

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

Das Targeting für YouTube und Partner kann nicht geändert werden

Die Ausrichtung für YouTube und Partner-Kampagnen kann mit der Display & Video 360 API nicht aktualisiert werden.

Das Targeting auf „YouTube und Partner“ umfasst das gesamte Targeting, das „YouTube und Partner“-Werbebuchungen und -Anzeigengruppen direkt zugewiesen ist, sowie die folgenden Targeting-Typen:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Dieses Targeting kann direkt über die Benutzeroberfläche von Display & Video 360 oder durch Hochladen einer Datei mit strukturierten Daten aktualisiert werden.

Ausrichtung auf Zielgruppen mit einer Option zuweisen

Die Targeting-Optionen für die meisten Targeting-Typen werden einzeln zugewiesen. Für das Zielgruppen-Targeting gilt nicht diese modulare Konvention, sondern wird in einem einzelnen, konfigurierbaren Objekt mit Zielgruppen-Targeting-Details zugewiesen. Darin sind die IDs der Zielgruppen aufgeführt, die bei der Anzeigenauslieferung ein- und ausgeschlossen werden sollen. Nach der Zuweisung lautet der assignedTargetingOptionId für diese Zielgruppenoption immer „audienceGroup“.

Das bedeutet, dass Sie bei jeder Änderung am Zielgruppen-Targeting zuerst die vorhandene zugewiesene Targeting-Option löschen und anschließend eine neue Targeting-Option mit den gewünschten Änderungen erstellen müssen. Dies ist in einer einzigen Anfrage mit advertisers.lineItems.bulkEditAssignedTargetingOptions möglich.

Hier sehen Sie ein Beispiel dafür, wie Sie die Ausrichtung auf Zielgruppen aktualisieren, um ein positives Targeting auf zusätzliche Google-Zielgruppen vorzunehmen:

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 der Targeting-Optionen vorbereitet sein

Ausrichtungsoptionen sind nicht statisch und einige werden gelegentlich eingestellt. Die eingestellten Targeting-Optionen wirken sich nicht auf die Anzeigenbereitstellung einer Werbebuchung aus. Nach der Einstellung wird die Zuweisung dieser Optionen zu vorhandenen Werbebuchungen aufgehoben. Anfragen, die versuchen, diese Optionen abzurufen oder zuzuweisen, führen zu Fehlern.

Sie sollten die gespeicherten Targeting-Options-IDs regelmäßig prüfen, um diese Fehler zu vermeiden. Um das Kontingent zu schonen, empfehlen wir, regelmäßig verwendete IDs im Cache zu speichern. Wenn Sie jedoch IDs speichern, ist Ihnen möglicherweise nicht bewusst, dass eine Ausrichtungsoption eingestellt wurde. Daher sollten Sie regelmäßig targetingOptions.targetingTypes.get verwenden, um alle gespeicherten Targeting-Option-IDs abzurufen. So können Sie prüfen, ob sie noch von Display & Video 360 unterstützt werden.

Auf der Seite Angekündigte Einstellungen finden Sie Details zu wichtigen bisherigen und zukünftigen Einstellungen.

Keine gleichzeitigen Anfragen ausführen, um dieselbe Werbebuchung 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. Dazu gehören:

Wenn Sie einer einzelnen Werbebuchung gleichzeitig mehrere zugewiesene Targeting-Optionen hinzufügen oder entfernen müssen, sollten Sie eine einzige advertisers.lineItems.bulkEditAssignedTargetingOptions-Anfrage verwenden. Wenn Sie die Einstellungen und das Targeting einer Werbebuchung aktualisieren möchten, stellen Sie die patch- oder bulkUpdate-Anfrage und die entsprechende Targeting-Anfrage in die Warteschlange, damit die zweite Anfrage erst gesendet wird, wenn sie eine Antwort zurückgibt.