Создание групп объявлений для раздела «Чем заняться» осуществляется по тому же принципу структурной иерархии и построения дерева, что и создание групп объявлений для раздела «Отели» .
Для разделения списка дел используйте специализированные измерения активности, доступные в 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).
правила иерархии измерений
При построении древовидной структуры списка дел следуйте этим правилам:
- Корневой узел : Каждое дерево групп объявлений должно начинаться с одного корневого узла
AdGroupCriterion, у которогоlisting_group.typeимеет значениеSUBDIVISION(илиUNITесли вам нужен один универсальный узел) иcase_valueне задано. - Подразделения и блоки : Промежуточные ветви должны иметь
typeSUBDIVISION, а конечные узлы —typeUNIT. Установка параметраcpc_bid_microsдля узловUNITявляется необязательной для кампаний типа «Что делать», поскольку управление ставками осуществляется автоматически стратегиейMaximizeConversionValueкампании. Чтобы исключить конечный блок из показа, установитеnegative = trueдля егоAdGroupCriterion. - Резервные узлы ("Все остальное") : Каждое подразделение должно быть полностью разделено на части. Все непосредственные дочерние элементы подразделения должны использовать один и тот же подтип
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
)
Что дальше?
- Показатели производительности запросов в отчетах «Что нужно сделать» .