Creare gruppi di schede Cose da fare

La creazione di gruppi di schede per i gruppi di annunci Things to Do segue la stessa gerarchia strutturale e lo stesso processo di creazione ad albero dei gruppi di schede di annunci per hotel.

Per suddividere l'inventario di Cose da fare, utilizza le dimensioni specializzate per le attività disponibili in ListingDimensionInfo:

  • ActivityCountryInfo: filtra in base al paese di destinazione (value), utilizzando un nome della risorsa Geo Target Constant (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 della risorsa Geo Target Constant (geoTargetConstants/{criterion_id}).
  • ActivityCityInfo: filtra in base alla città di destinazione (value), utilizzando un nome della risorsa Geo Target Constant (geoTargetConstants/{criterion_id}, ad esempio "geoTargetConstants/1023191" per New York City).
  • ActivityRatingInfo: filtra in base alla stella dell'attività o alla valutazione degli utenti (value, un numero intero compreso tra 1 e 5, dove 5 è il valore migliore).
  • ActivityIdInfo: filtra in base all'ID attività specifico definito nel feed di Things to do Center (value).

Regole della gerarchia delle dimensioni

Quando crei un albero di gruppi di schede di 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 generico) 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 di cpc_bid_micros sui nodi UNIT è facoltativa per le campagne Things to Do perché le offerte vengono gestite automaticamente dalla strategia MaximizeConversionValue della campagna. Per escludere un'unità foglia dalla pubblicazione, imposta negative = true su AdGroupCriterion.
  3. Nodi di riserva ("Tutto il resto"): ogni suddivisione deve essere completamente partizionata. Tutti gli elementi secondari immediati di una suddivisione devono utilizzare lo stesso sottotipo ListingDimensionInfo e un elemento secondario deve essere un'istanza vuota di quel sottotipo per acquisire tutto l'inventario rimanente.

La seguente struttura ad albero illustra una gerarchia valida suddivisa 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)

Codice di esempio

L'esempio Python seguente crea un SUBDIVISION principale utilizzando un ID temporaneo (-1) e lo suddivide in base a ActivityCountryInfo in un'unità target 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