Creare gruppi di schede Cose da fare

La creazione di gruppi di schede per i gruppi di annunci di Cose da fare segue la stessa gerarchia strutturale e lo stesso processo di creazione dell'albero dei gruppi di schede Hotel Ads.

Per partizionare l'inventario di Things to Do, utilizza le dimensioni specializzate per le attività disponibili in ListingDimensionInfo:

  • ActivityCountryInfo: filtra in base al paese di destinazione (value), utilizzando un nome risorsa costante di targeting geografico (geoTargetConstants/{criterion_id}, ad esempio "geoTargetConstants/2840" per gli Stati Uniti).
  • ActivityStateInfo: filtra in base allo stato o alla regione di destinazione (value), utilizzando un nome di risorsa costante di targeting geografico (geoTargetConstants/{criterion_id}).
  • ActivityCityInfo: filtra in base alla città di destinazione (value), utilizzando un nome risorsa costante di targeting geografico (geoTargetConstants/{criterion_id}, ad esempio "geoTargetConstants/1023191" per New York).
  • ActivityRatingInfo: filtra in base alla stella dell'attività o alla valutazione dell'utente (value, un numero intero compreso tra 1 e 5, dove 5 è la valutazione migliore).
  • ActivityIdInfo: filtra in base all'ID attività specifico definito nel feed del Centro per le cose da fare (value).

Regole della gerarchia delle dimensioni

Quando crei una struttura ad albero del gruppo di schede Cose da fare, segui queste regole:

  1. Nodo principale: ogni albero di gruppi di schede deve iniziare con un singolo nodo principale AdGroupCriterion il cui listing_group.type è SUBDIVISION (o UNIT se vuoi un singolo nodo catch-all) e il cui case_value non è impostato.
  2. Suddivisioni e unità: i rami intermedi devono impostare type su SUBDIVISION, mentre i nodi foglia devono impostare type su UNIT. L'impostazione cpc_bid_micros sui nodi UNIT è facoltativa per le campagne Cose da fare perché le offerte vengono gestite automaticamente dalla strategia MaximizeConversionValue della campagna. Per escludere una unità foglia dalla pubblicazione, imposta negative = true sul relativo AdGroupCriterion.
  3. Nodi di riserva ("Tutto il resto"): ogni suddivisione deve essere completamente partizionata. Tutti i figli immediati di una suddivisione devono utilizzare lo stesso sottotipo ListingDimensionInfo e uno dei figli deve essere un'istanza vuota di questo sottotipo per acquisire tutto l'inventario rimanente.

Il seguente albero illustra una gerarchia valida partizionata per paese, città e ID attività:

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)

Esempio di codice

L'esempio Python seguente crea una radice SUBDIVISION utilizzando un ID temporaneo (-1) e la partiziona in base a ActivityCountryInfo in un'unità di destinazione per gli Stati Uniti ("geoTargetConstants/2840") e un'unità di riserva esclusa per tutti gli altri paesi:

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
)

Passaggi successivi