تعيين الاستهداف

يتم التحكّم في عرض الإعلانات في "حملات زيادة الطلب" باستخدام الاستهداف الذي تمّ تعيينه للشريك الرئيسي والمعلِن والبند الإعلاني والمجموعات الإعلانية.

استخدِم الاستهداف المخصّص لأحد بنود "حملة زيادة الطلب" ومجموعة إعلانية من أجل الوصول إلى العملاء المناسبين وتحسين أداء الحملة.

تحديد المكان الذي تريد تعيين استهدافك فيه

يمكن تعيين الاستهداف لكلّ من عناصر "حملات زيادة الطلب" والمجموعات الإعلانية.

يمكنك تعيين الاستهداف لبند إعلاني في حملة زيادة الطلب إذا كنت تريد تطبيق الاستهداف على جميع الإعلانات المعروضة ضمن هذا البند الإعلاني. في الحالات الأخرى، خصِّص الاستهداف لمجموعات إعلانية فردية.

إمكانية الاستهداف حسب نوع المورد في "حملات زيادة الطلب"

يتيح كل نوع من أنواع الموارد أنواعًا معيّنة من الاستهداف.

في ما يلي قائمة بأنواع الاستهداف التي تتيحها عناصر "حملات زيادة الطلب":

  • 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

في ما يلي قائمة بأنواع الاستهداف التي تتيحها المجموعات الإعلانية في "حملات زيادة الطلب":

  • 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

يعتمد توفّر TARGETING_TYPE_GEO_REGION وTARGETING_TYPE_POI وTARGETING_TYPE_LANGUAGE على قيمة الحقل demandGenSettings.geoLanguageTargetingEnabled في المورد الرئيسي LineItem. إذا كانت القيمة صحيحة، لا يمكن تحديد استهداف الموقع الجغرافي واللغة إلا لعنصر الحملة الرئيسي. إذا كانت القيمة false، لا يمكن تعيين هذا الاستهداف إلا لمجموعات إعلانية فردية.

العثور على خيارات الاستهداف المتاحة

يتم تحديد الاستهداف استنادًا إلى نوعه. حدِّد خيارات الاستهداف بإحدى الطرق التالية:

استرداد الاستهداف الحالي

يقيّد الاستهداف الحالي أنواع الاستهداف التي يمكن إضافتها إلى عنصر حملة أو مجموعة إعلانية.

لا تعرض عناصر "حملات زيادة الطلب" والمجموعات الإعلانية سوى الاستهداف الموروث.TARGETING_TYPE_KEYWORD يعني ذلك أنّه يجب استرداد الاستهداف الخاص بالمعلِن وعنصر الحملة والمجموعة الإعلانية من أجل الحصول على وصف كامل لجميع عمليات الاستهداف التي تؤثّر في عرض الإعلانات.

استرداد الاستهداف الحالي على مستوى أنواع الاستهداف باستخدام طلبات القائمة المجمّعة

استرداد استهداف الشريك والمعلِن الحالي

في ما يلي كيفية الحصول على الاستهداف الحالي لأحد المعلِنين، بما في ذلك استهداف الشريك الموروث:

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

استرداد استهداف بند إعلاني حالي

في ما يلي كيفية تخصيص الاستهداف الحالي مباشرةً لأحد عناصر الحملة:

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

استرداد استهداف المجموعة الإعلانية الحالية

في ما يلي كيفية تعيين الاستهداف الحالي مباشرةً لمجموعة إعلانية:

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

تحديد الاستهداف للموارد

يجب تقديم طلبات منفصلة لتعديل استهداف المجموعة الإعلانية واستراتيجية استهداف عنصر الحملة.

تحديد استهداف البند الإعلاني

إليك كيفية إضافة منطق الاستهداف التالي إلى عنصر حملة:

  • عرض الإعلانات على أجهزة الكمبيوتر فقط
  • لا تقدّم عروض أسعار على المستودع الإعلاني الذي يتم عرض الإعلانات فيه بجانب محتوى يتطابق مع الكلمة الرئيسية "آيس كريم".

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

تحديد استهداف المجموعة الإعلانية

في ما يلي كيفية إضافة منطق الاستهداف التالي إلى مجموعة إعلانية:

  • يتم عرضها للوالدَين فقط.
  • عدم عرض الإعلانات على قناة YouTube المقدَّمة

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