ایجاد گروه‌های فهرستگان «کارها»

ایجاد گروه‌های فهرستگان برای گروه‌های آگهی «فعالیت‌های پیشنهادی» از همان سلسله‌مراتب ساختاری و فرایند ساختار درختی گروه‌های فهرستگان «آگهی‌های هتل» پیروی می‌کند.

برای تقسیم‌بندی موجودی «فعالیت‌های پیشنهادی»، از ابعاد فعالیت تخصصی موجود در ListingDimensionInfo استفاده کنید:

  • ActivityCountryInfo: براساس کشور مقصد (value) بااستفاده از نام منبع «ثابت هدف جغرافیایی» (geoTargetConstants/{criterion_id}، مثل "geoTargetConstants/2840" برای ایالات متحده) فیلتر می‌کند.
  • ActivityStateInfo: براساس ایالت یا منطقه مقصد (value) بااستفاده از نام منبع «ثابت هدف جغرافیایی» (geoTargetConstants/{criterion_id}) فیلتر می‌کند.
  • ActivityCityInfo: براساس شهر مقصد (value) فیلتر می‌کند، بااستفاده از نام منبع «ثابت هدف جغرافیایی» (geoTargetConstants/{criterion_id}، مثل "geoTargetConstants/1023191" برای شهر نیویورک).
  • ActivityRatingInfo: براساس ستاره فعالیت یا رده‌بندی کاربر فیلتر می‌کند (value، عدد صحیحی از 1 تا 5، که 5 بهترین است).
  • ActivityIdInfo: براساس شناسه فعالیت خاصی که در فید «مرکز کارهایی برای انجام دادن» (value) تعریف شده است فیلتر می‌کند.

قوانین سلسله‌مراتب بُعد

هنگام ساختن درخت گروه فهرستگان «فعالیت‌های پیشنهادی»، این قوانین را دنبال کنید:

  1. گره ریشه: هر درخت گروه فهرستگان باید با یک ریشه واحد شروع شود AdGroupCriterion که listing_group.type آن SUBDIVISION است (یا UNIT اگر یک گره جامع واحد می‌خواهید) و case_value آن تنظیم نشده است.
  2. بخش‌ها و واحدها: شعبه‌های واسطه باید type را روی SUBDIVISION تنظیم کنند، درحالی‌که گره‌های برگ باید type را روی UNIT تنظیم کنند. تنظیم cpc_bid_micros در گره‌های UNIT برای پویش‌های «کارهایی برای انجام دادن» اختیاری است زیرا پیشنهاد قیمت به‌طور خودکار توسط استراتژی MaximizeConversionValue پویش مدیریت می‌شود. برای مستثنی کردن واحد برگ از ارائه، negative = true را روی AdGroupCriterion آن تنظیم کنید.
  3. گره‌های بازگشت («همه موارد دیگر»): هر زیربخش باید کاملاً پارتیشن‌بندی شود. همه فرزندان مستقیم یک زیربخش باید از یک نوع فرعی ListingDimensionInfo استفاده کنند، و یک فرزند باید نمونه‌ای خالی از آن نوع فرعی باشد تا همه فضای آگهی باقی‌مانده را ضبط کند.

درخت زیر سلسله‌مراتب معتبری را نشان می‌دهد که براساس کشور، شهر، و شناسه فعالیت تقسیم‌بندی شده است:

Root (SUBDIVISION)
 ├── ActivityCountryInfo: "geoTargetConstants/2840" (US, SUBDIVISION)
 │    ├── ActivityCityInfo: "geoTargetConstants/1023191" (New York, SUBDIVISION)
 │    │    ├── ActivityIdInfo: "activity_123" (UNIT, biddable)
 │    │    └── ActivityIdInfo: <empty> (UNIT, "Everything else in New York")
 │    └── ActivityCityInfo: <empty> (UNIT, "Everything else in US")
 └── ActivityCountryInfo: <empty> (UNIT, negative=true, excluded)

نمونه کد

مثال Python زیر یک ریشه SUBDIVISION بااستفاده از شناسه موقت (-1) ایجاد می‌کند و آن را براساس ActivityCountryInfo به یک واحد هدف‌یابی‌شده برای ایالات متحده ("geoTargetConstants/2840") و یک واحد جایگزین مستثنی‌شده برای همه کشورهای دیگر تقسیم می‌کند:

ad_group_service = client.get_service("AdGroupService")
ad_group_criterion_service = client.get_service("AdGroupCriterionService")
ad_group_resource_name = ad_group_service.ad_group_path(
    customer_id, ad_group_id
)
operations = []

# 1. Create the root SUBDIVISION node with temporary criterion ID -1.
root_op = client.get_type("AdGroupCriterionOperation")
root = root_op.create
root.resource_name = ad_group_criterion_service.ad_group_criterion_path(
    customer_id, ad_group_id, -1
)
root.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
root.listing_group.type_ = client.enums.ListingGroupTypeEnum.SUBDIVISION
operations.append(root_op)

# 2. Create a child UNIT node targeting activities in the US.
us_op = client.get_type("AdGroupCriterionOperation")
us_unit = us_op.create
us_unit.ad_group = ad_group_resource_name
us_unit.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
us_unit.listing_group.type_ = client.enums.ListingGroupTypeEnum.UNIT
us_unit.listing_group.parent_ad_group_criterion = root.resource_name
us_unit.listing_group.case_value.activity_country.value = "geoTargetConstants/2840"
operations.append(us_op)

# 3. Create the required fallback ("Everything else") UNIT node.
other_op = client.get_type("AdGroupCriterionOperation")
other_unit = other_op.create
other_unit.ad_group = ad_group_resource_name
other_unit.negative = True
other_unit.listing_group.type_ = client.enums.ListingGroupTypeEnum.UNIT
other_unit.listing_group.parent_ad_group_criterion = root.resource_name
client.copy_from(
    other_unit.listing_group.case_value.activity_country,
    client.get_type("ActivityCountryInfo"),
)
operations.append(other_op)

response = ad_group_criterion_service.mutate_ad_group_criteria(
    customer_id=customer_id, operations=operations
)

قدم بعدی چیست