A criação de grupos de produtos anunciados para grupos de anúncios das Coisas legais para fazer segue a mesma hierarquia estrutural e o mesmo processo de criação de árvore dos grupos de produtos anunciados de anúncios de hotel.
Para particionar seu inventário de Coisas legais para fazer, use as dimensões de atividade especializadas disponíveis em ListingDimensionInfo:
ActivityCountryInfo: filtra pelo país de destino (value) usando um nome de recurso de constante de segmentação por área geográfica (geoTargetConstants/{criterion_id}, como"geoTargetConstants/2840"para os EUA).ActivityStateInfo: filtra por estado ou região de destino (value) usando um nome de recurso de constante de segmentação por área geográfica (geoTargetConstants/{criterion_id}).ActivityCityInfo: filtra pela cidade de destino (value) usando um nome de recurso de constante de segmentação por área geográfica (geoTargetConstants/{criterion_id}, como"geoTargetConstants/1023191"para Nova York).ActivityRatingInfo: filtra por estrela de atividade ou avaliação de usuários (value, um número inteiro de1a5, em que5é o melhor).ActivityIdInfo: filtra pelo ID de atividade específico definido no feed da Central de Coisas Legais para Fazer (value).
Regras de hierarquia de dimensões
Ao criar uma árvore de grupos de produtos anunciados de Coisas Legais para Fazer, siga estas regras:
- Nó raiz: cada árvore de grupo de produtos anunciados precisa começar com uma única raiz
AdGroupCriterionem quelisting_group.typeéSUBDIVISION(ouUNITse você quiser um único nó geral) e em quecase_valuenão está definido. - Subdivisões e unidades: as ramificações intermediárias precisam definir
typecomoSUBDIVISION, enquanto os nós de folha precisam definirtypecomoUNIT. A configuração decpc_bid_microsem nósUNITé opcional para campanhas de Coisas legais para fazer, porque os lances são gerenciados automaticamente pela estratégiaMaximizeConversionValueda campanha. Para excluir uma unidade de folha da veiculação, definanegative = truenoAdGroupCriteriondela. - Nós substitutos ("Todos os outros"): cada subdivisão precisa ser completamente particionada. Todos os filhos imediatos de uma subdivisão precisam usar o mesmo subtipo de
ListingDimensionInfo, e um filho precisa ser uma instância vazia desse subtipo para capturar todo o inventário restante.
A árvore a seguir ilustra uma hierarquia válida particionada por país, cidade e ID de atividade:
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)
Exemplo de código
O exemplo em Python a seguir cria um SUBDIVISION raiz usando um ID temporário (-1) e o particiona por ActivityCountryInfo em uma unidade segmentada para os EUA ("geoTargetConstants/2840") e uma unidade de fallback excluída para todos os outros países:
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
)
A seguir
- Consulte as métricas de performance da atividade nos relatórios de Coisas legais para fazer.