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_ISPTARGETING_TYPE_DAY_AND_TIMETARGETING_TYPE_DEVICE_MAKE_MODELTARGETING_TYPE_DEVICE_TYPETARGETING_TYPE_GEO_REGIONTARGETING_TYPE_KEYWORDTARGETING_TYPE_LANGUAGETARGETING_TYPE_NEGATIVE_KEYWORD_LISTTARGETING_TYPE_OPERATING_SYSTEMTARGETING_TYPE_POI
Im Folgenden finden Sie eine Liste der Targeting-Typen, die von Demand Gen-Anzeigengruppen unterstützt werden:
TARGETING_TYPE_AGE_RANGETARGETING_TYPE_APPTARGETING_TYPE_APP_CATEGORYTARGETING_TYPE_AUDIENCE_GROUPTARGETING_TYPE_CATEGORYTARGETING_TYPE_GENDERTARGETING_TYPE_GEO_REGIONTARGETING_TYPE_HOUSEHOLD_INCOMETARGETING_TYPE_KEYWORDTARGETING_TYPE_LANGUAGETARGETING_TYPE_PARENTAL_STATUSTARGETING_TYPE_URLTARGETING_TYPE_YOUTUBE_CHANNELTARGETING_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:
- Verwenden Sie einen relevanten Enum-Wert, z. B. mit den Enum-Typen
AgeRangeoderExchange. - Rufen Sie Zielentitäten wie Channels oder Standortlisten mit dem zugehörigen Dienst ab.
- Rufen Sie Targeting-Option-IDs für einen Targeting-Typ mit den Methoden
listundsearchab.
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.")