Việc phân phát quảng cáo Tạo nhu cầu được kiểm soát bằng tiêu chí nhắm mục tiêu được chỉ định cho đối tác mẹ, nhà quảng cáo, mục hàng và nhóm quảng cáo.
Hãy sử dụng tiêu chí nhắm mục tiêu được chỉ định cho một mục hàng và nhóm quảng cáo Tạo nhu cầu để tiếp cận khách hàng lý tưởng và cải thiện hiệu suất chiến dịch.
Quyết định nơi chỉ định tiêu chí nhắm mục tiêu
Bạn có thể chỉ định tiêu chí nhắm mục tiêu cho cả mục hàng và nhóm quảng cáo Tạo nhu cầu.
Chỉ định tiêu chí nhắm mục tiêu cho một mục hàng Tạo nhu cầu nếu bạn muốn tiêu chí nhắm mục tiêu đó áp dụng cho tất cả quảng cáo được phân phát trong mục hàng đó. Nếu không, hãy chỉ định tiêu chí nhắm mục tiêu cho từng nhóm quảng cáo.
Hỗ trợ nhắm mục tiêu theo loại tài nguyên của chiến dịch Tạo nhu cầu
Mỗi loại tài nguyên hỗ trợ một số loại tiêu chí nhắm mục tiêu.
Sau đây là danh sách các loại tiêu chí nhắm mục tiêu được mục hàng Tạo nhu cầu hỗ trợ:
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
Sau đây là danh sách các loại tiêu chí nhắm mục tiêu được nhóm quảng cáo Tạo nhu cầu hỗ trợ:
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
Việc hỗ trợ TARGETING_TYPE_GEO_REGION, TARGETING_TYPE_POI và
TARGETING_TYPE_LANGUAGE phụ thuộc vào chế độ cài đặt của trường
demandGenSettings.geoLanguageTargetingEnabled
trong tài nguyên LineItem mẹ. Nếu trường này là true, thì bạn chỉ có thể chỉ định tiêu chí nhắm mục tiêu theo vị trí và ngôn ngữ cho mục hàng mẹ. Nếu trường này là false, thì bạn chỉ có thể chỉ định tiêu chí nhắm mục tiêu này cho từng nhóm quảng cáo.
Tìm các tiêu chí nhắm mục tiêu hiện có
Tiêu chí nhắm mục tiêu được xác định dựa trên loại của tiêu chí đó. Xác định các tiêu chí nhắm mục tiêu bằng một trong những cách sau:
- Sử dụng một giá trị enum có liên quan, chẳng hạn như với các loại enum
AgeRangehoặcExchange. - Truy xuất các thực thể có thể nhắm mục tiêu, chẳng hạn như kênh hoặc danh sách vị trí, bằng dịch vụ liên quan.
- Truy xuất mã tiêu chí nhắm mục tiêu cho một loại tiêu chí nhắm mục tiêu bằng các phương thức
listvàsearch.
Truy xuất tiêu chí nhắm mục tiêu hiện có
Tiêu chí nhắm mục tiêu hiện có hạn chế những tiêu chí nhắm mục tiêu có thể thêm vào một mục hàng hoặc nhóm quảng cáo.
Mục hàng và nhóm quảng cáo Tạo nhu cầu chỉ hiển thị tiêu chí nhắm mục tiêu TARGETING_TYPE_KEYWORD được kế thừa. Điều này có nghĩa là bạn phải truy xuất tiêu chí nhắm mục tiêu cho nhà quảng cáo, mục hàng và nhóm quảng cáo để có thể tính toán đầy đủ tất cả tiêu chí nhắm mục tiêu ảnh hưởng đến việc phân phát quảng cáo.
Truy xuất tiêu chí nhắm mục tiêu hiện có trên các loại tiêu chí nhắm mục tiêu bằng yêu cầu danh sách hàng loạt.
Truy xuất tiêu chí nhắm mục tiêu hiện có của đối tác và nhà quảng cáo
Sau đây là cách lấy tiêu chí nhắm mục tiêu hiện có cho một nhà quảng cáo, bao gồm cả tiêu chí nhắm mục tiêu của đối tác được kế thừa:
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
Truy xuất tiêu chí nhắm mục tiêu của mục hàng hiện có
Sau đây là cách lấy tiêu chí nhắm mục tiêu hiện có được chỉ định trực tiếp cho một mục hàng:
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
Truy xuất tiêu chí nhắm mục tiêu hiện có của nhóm quảng cáo
Sau đây là cách lấy tiêu chí nhắm mục tiêu hiện có được chỉ định trực tiếp cho một nhóm quảng cáo:
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
Chỉ định tiêu chí nhắm mục tiêu cho tài nguyên
Bạn phải đưa ra các yêu cầu riêng biệt để cập nhật tiêu chí nhắm mục tiêu của mục hàng và nhóm quảng cáo.
Chỉ định tiêu chí nhắm mục tiêu của mục hàng
Sau đây là cách thêm logic nhắm mục tiêu sau đây vào một mục hàng:
- Chỉ phân phát quảng cáo trên máy tính.
Không đặt giá thầu cho khoảng không quảng cáo được phân phát cùng với nội dung khớp với từ khoá "kem".
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.")
Chỉ định tiêu chí nhắm mục tiêu của nhóm quảng cáo
Sau đây là cách thêm logic nhắm mục tiêu sau đây vào một nhóm quảng cáo:
- Chỉ phân phát cho cha mẹ.
Không phân phát cho kênh YouTube được cung cấp.
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.")