יצירת קבוצות של דברים שאפשר לעשות

יצירת קבוצות כרטיסי מוצר לקבוצות של מודעות לקידום עסקים בענף התיירות והאירוח מתבצעת לפי אותה היררכיה מבנית ותהליך בניית עץ כמו קבוצות של כרטיסי מוצר במודעות להזמנת חדרים.

כדי לחלק את מלאי המוצרים של 'דברים לעשות', משתמשים במאפייני הפעילות המיוחדים שזמינים ב-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
)

המאמרים הבאים