Targeting zuweisen

Die Auslieferung von Demand Gen-Anzeigen wird über das Targeting gesteuert, das dem übergeordneten Partner, Werbetreibenden, der Werbebuchung und den Anzeigengruppen zugewiesen ist.

Verwenden Sie das Targeting, das einer Demand Gen-Werbebuchung und ‑Anzeigengruppe zugewiesen ist, um Ihre idealen Kunden zu erreichen und die Kampagnenleistung zu verbessern.

Targeting zuweisen

Targeting kann sowohl Demand Gen-Werbebuchungen als auch ‑Anzeigengruppen zugewiesen werden.

Weisen Sie einer Demand Gen-Werbebuchung Targeting zu, wenn es für alle Anzeigen gelten soll, die im Rahmen dieser Werbebuchung ausgeliefert werden. Andernfalls weisen Sie das Targeting einzelnen Anzeigengruppen zu.

Targeting-Unterstützung nach Demand Gen-Ressourcentyp

Jeder Ressourcentyp unterstützt bestimmte Arten von Targeting.

Im Folgenden finden Sie eine Liste der Targeting-Typen, die von Demand Gen-Werbebuchungen unterstützt werden:

  • TARGETING_TYPE_CARRIER_AND_ISP
  • TARGETING_TYPE_DAY_AND_TIME
  • TARGETING_TYPE_DEVICE_MAKE_MODEL
  • TARGETING_TYPE_DEVICE_TYPE
  • TARGETING_TYPE_GEO_REGION
  • TARGETING_TYPE_KEYWORD
  • TARGETING_TYPE_LANGUAGE
  • TARGETING_TYPE_NEGATIVE_KEYWORD_LIST
  • TARGETING_TYPE_OPERATING_SYSTEM
  • TARGETING_TYPE_POI

Im Folgenden finden Sie eine Liste der Targeting-Typen, die von Demand Gen-Anzeigengruppen unterstützt werden:

  • TARGETING_TYPE_AGE_RANGE
  • TARGETING_TYPE_APP
  • TARGETING_TYPE_APP_CATEGORY
  • TARGETING_TYPE_AUDIENCE_GROUP
  • TARGETING_TYPE_CATEGORY
  • TARGETING_TYPE_GENDER
  • TARGETING_TYPE_GEO_REGION
  • TARGETING_TYPE_HOUSEHOLD_INCOME
  • TARGETING_TYPE_KEYWORD
  • TARGETING_TYPE_LANGUAGE
  • TARGETING_TYPE_PARENTAL_STATUS
  • TARGETING_TYPE_URL
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Die Unterstützung von TARGETING_TYPE_GEO_REGION, TARGETING_TYPE_POI und TARGETING_TYPE_LANGUAGE hängt von der Einstellung des demandGenSettings.geoLanguageTargetingEnabled-Felds in der übergeordneten LineItem-Ressource ab. Wenn das Feld auf „true“ gesetzt ist, kann das Targeting auf Region und Sprache nur der übergeordneten Werbebuchung zugewiesen werden. Wenn das Feld auf „false“ gesetzt ist, kann dieses Targeting nur einzelnen Anzeigengruppen zugewiesen werden.

Verfügbare Targeting-Optionen finden

Das Targeting wird anhand seines Typs identifiziert. Sie haben folgende Möglichkeiten, Targeting-Optionen zu identifizieren:

Vorhandenes Targeting abrufen

Vorhandenes Targeting schränkt ein, welches Targeting einer Werbebuchung oder Anzeigengruppe hinzugefügt werden kann.

In Demand Gen-Werbebuchungen und ‑Anzeigengruppen wird nur das geerbte TARGETING_TYPE_KEYWORD-Targeting angezeigt. Das bedeutet, dass Sie das Targeting für den Werbetreibenden, die Werbebuchung und die Anzeigengruppe abrufen müssen, um eine vollständige Übersicht über alle Targeting-Optionen zu erhalten, die sich auf die Anzeigenauslieferung auswirken.

Rufen Sie das vorhandene Targeting für alle Targeting-Typen mit Bulk-Listenanfragen ab.

Vorhandenes Targeting für Partner und Werbetreibende abrufen

So rufen Sie das vorhandene Targeting für einen Werbetreibenden ab, einschließlich des geerbten Partner-Targetings:

Python

# Provide the ID of the advertiser.
advertiser_id = advertiser-id

# Create the page token variable.
next_page_token = ""

while True:
  # Execute the list request.
  response = (
      service.advertisers()
      .listAssignedTargetingOptions(
          advertiserId=advertiser_id,
          pageToken=next_page_token,
      )
      .execute()
  )

  # If response is not empty, display the retrieved assigned targeting
  # options.
  if response:
    for assigned_targeting_option in response.get(
        "assignedTargetingOptions", []
    ):
      ato_name = assigned_targeting_option.get(
          "name", None
      )
      if ato_name:
        print(f"Assigned Targeting Option {ato_name}.")
  else:
    print(f"No targeting is currently assigned to {advertiser_id}.")
    sys.exit(1)
  # Update the next page token.
  # Break out of loop if there is no next page.
  if "nextPageToken" in response:
    next_page_token = response["nextPageToken"]
  else:
    break

Vorhandenes Werbebuchungs-Targeting abrufen

So rufen Sie das vorhandene Targeting ab, das direkt einer Werbebuchung zugewiesen ist:

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the Demand Gen line item.
line_item_id = line-item-id

# Create the page token variable.
next_page_token = ""

while True:
  # Execute the list request.
  response = (
      service.advertisers()
      .lineItems()
      .bulkListAssignedTargetingOptions(
          advertiserId=advertiser_id,
          lineItemIds=[line_item_id],
          pageToken=next_page_token,
      )
      .execute()
  )

  # If response is not empty, display the retrieved assigned targeting
  # options line items.
  if response:
    for assigned_option in response.get(
        "lineItemAssignedTargetingOptions", []
    ):
      ato_name = assigned_option.get("assignedTargetingOption", {}).get(
          "name", None
      )
      if ato_name:
        print(f"Assigned Targeting Option {ato_name} found.")
  else:
    print(f"No targeting is currently assigned to {line_item_id}.")
    sys.exit(1)
  # Update the next page token.
  # Break out of loop if there is no next page.
  if "nextPageToken" in response:
    next_page_token = response["nextPageToken"]
  else:
    break

Vorhandenes Targeting der Anzeigengruppe abrufen

So rufen Sie das vorhandene Targeting ab, das direkt einer Anzeigengruppe zugewiesen ist:

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the ad group.
ad_group_id = ad-group-id

# Create the page token variable.
next_page_token = ""

while True:
  # Execute the list request.
  response = (
      service.advertisers()
      .adGroups()
      .bulkListAssignedTargetingOptions(
          advertiserId=advertiser_id,
          adGroupIds=[ad_group_id],
          pageToken=next_page_token,
      )
      .execute()
  )

  # If response is not empty, display the retrieved assigned targeting
  # options line items.
  if response:
    for assigned_option in response.get(
        "adGroupAssignedTargetingOptions", []
    ):
      ato_name = assigned_option.get("assignedTargetingOption", {}).get(
          "name", None
      )
      if ato_name:
        print(f"Assigned Targeting Option {ato_name} found.")
  else:
    print(f"No targeting is currently assigned to {ad_group_id}.")
    sys.exit(1)
  # Update the next page token.
  # Break out of loop if there is no next page.
  if "nextPageToken" in response:
    next_page_token = response["nextPageToken"]
  else:
    break

Targeting Ressourcen zuweisen

Sie müssen separate Anfragen stellen, um das Targeting für Werbebuchungen und Anzeigengruppen zu aktualisieren.

Werbebuchungs-Targeting zuweisen

So fügen Sie einer Werbebuchung die folgende Targeting-Logik hinzu:

  • Anzeigen werden nur auf Computern ausgeliefert.
  • Es wird kein Gebot auf Inventar abgegeben, das neben Inhalten ausgeliefert wird, die dem Keyword „Eis“ entsprechen.

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the line item.
line_item_id = line-item-id

# Build the "ice cream" negative keyword assigned targeting option.
keyword_assigned_targeting_option = {
    "keywordDetails": {"keyword": "ice cream", "negative": True}
}

# Build the delete request for device type targeting to remove all device
# types to only target computers.
device_type_delete_request = {
    "targetingType": "TARGETING_TYPE_DEVICE_TYPE",
    "assignedTargetingOptionIds": [
        "DEVICE_TYPE_SMART_PHONE",
        "DEVICE_TYPE_CONNECTED_TV",
        "DEVICE_TYPE_TABLET"
    ],
}

# Create a bulk edit request.
bulk_edit_targeting_request = {
    "lineItemIds": [line_item_id],
    "createRequests": [
        {
            "targetingType": "TARGETING_TYPE_KEYWORD",
            "assignedTargetingOptions": [
                keyword_assigned_targeting_option
            ],
        }
    ],
    "deleteRequests": [
        device_type_delete_request
    ]
}

# Build and execute request.
response = (
    service.advertisers()
    .lineItems()
    .bulkEditAssignedTargetingOptions(
        advertiserId=advertiser_id, body=bulk_edit_targeting_request
    )
    .execute()
)

# Print the request results.
if (
    "updatedLineItemIds" in response
    and len(response["updatedLineItemIds"]) != 0
):
  print(
      f'Targeting configurations for {response["updatedLineItemIds"][0]} '
      "were successfully updated."
  )
elif (
    "failedLineItemIds" in response
    and len(response["failedLineItemIds"]) != 0
):
  print(
      f'Targeting configurations for {response["failedLineItemIds"][0]} '
      "failed to update."
  )
  if "errors" in response and len(response["errors"]) != 0:
    print("The failed updates were caused by the following errors:")
    for error in response["errors"]:
      print(f'Code {error["code"]}: {error["message"]}')
else:
  print("No successful or failed updates were reported.")

Targeting der Anzeigengruppe zuweisen

So fügen Sie einer Anzeigengruppe die folgende Targeting-Logik hinzu:

  • Anzeigen werden nur Eltern ausgeliefert.
  • Anzeigen werden nicht für den angegebenen YouTube-Channel ausgeliefert.

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the ad group.
ad_group_id = ad-group-id

# Provide the YouTube channel ID to negatively target.
yt_channel_id = youtube-channel-id

# Build the assigned targeting option to negatively target the given YouTube
# channel.
youtube_channel_assigned_targeting_options = [
    {
        "youtubeChannelDetails": {
            "channelId": yt_channel_id,
            "negative": True
        }
    },
]

# Build the assigned targeting options to target only parents.
parental_status_assigned_targeting_options = [
    {
        "parentalStatusDetails": {
            "parentalStatus": "PARENTAL_STATUS_PARENT"
        }
    },
]

# Create a bulk edit request.
bulk_edit_targeting_request = {
    "adGroupIds": [ad_group_id],
    "createRequests": [
        {
            "targetingType": "TARGETING_TYPE_YOUTUBE_CHANNEL",
            "assignedTargetingOptions": (
                youtube_channel_assigned_targeting_options
            )
        },
        {
            "targetingType": "TARGETING_TYPE_PARENTAL_STATUS",
            "assignedTargetingOptions": (
                parental_status_assigned_targeting_options
            ),
        }
    ]
}

# Build and execute request.
response = (
    service.advertisers()
    .adGroups()
    .bulkEditAssignedTargetingOptions(
        advertiserId=advertiser_id, body=bulk_edit_targeting_request
    )
    .execute()
)

# Print the request results.
if (
    "updatedAdGroupIds" in response
    and len(response["updatedAdGroupIds"]) != 0
):
  print(
      f'Targeting configurations for {response["updatedAdGroupIds"][0]} '
      "were successfully updated."
  )
elif (
    "failedAdGroupIds" in response
    and len(response["failedAdGroupIds"]) != 0
):
  print(
      f'Targeting configurations for {response["failedAdGroupIds"][0]} '
      "failed to update."
  )
  if "errors" in response and len(response["errors"]) != 0:
    print("The failed updates were caused by the following errors:")
    for error in response["errors"]:
      print(f'Code {error["code"]}: {error["message"]}')
else:
  print("No successful or failed updates were reported.")