Chỉ định tiêu chí nhắm mục tiêu

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_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

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_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

Việc hỗ trợ TARGETING_TYPE_GEO_REGION, TARGETING_TYPE_POITARGETING_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:

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.")