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

ایجاد گروه‌های فهرست‌بندی برای گروه‌های تبلیغاتی Things to do از همان سلسله مراتب ساختاری و فرآیند درخت‌سازی گروه‌های فهرست‌بندی Hotel Ads پیروی می‌کند.

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

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

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

هنگام ساخت درختواره گروهی فهرست کارها، این قوانین را دنبال کنید:

  1. گره ریشه : هر درخت گروه فهرست‌بندی باید با یک AdGroupCriterion ریشه واحد شروع شود که listing_group.type آن SUBDIVISION (یا UNIT اگر یک گره catch-all می‌خواهید) باشد و case_value آن تنظیم نشده باشد.
  2. زیربخش‌ها و واحدها : شاخه‌های میانی باید type روی SUBDIVISION تنظیم کنند، در حالی که گره‌های برگ باید type روی UNIT تنظیم کنند. تنظیم cpc_bid_micros روی گره‌های UNIT برای کمپین‌های Things to do اختیاری است زیرا پیشنهاد قیمت به طور خودکار توسط استراتژی MaximizeConversionValue کمپین مدیریت می‌شود. برای حذف یک واحد برگ از سرویس‌دهی، مقدار AdGroupCriterion آن را negative = true قرار دهید.
  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)

مثال کد

مثال پایتون زیر یک 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
)

قدم بعدی چیست؟