Eintragsgruppen für Aktivitäten erstellen

Das Erstellen von Listengruppen für Anzeigengruppen für Aktivitäten folgt derselben Strukturhierarchie und demselben Prozess zum Erstellen von Bäumen wie bei Listengruppen für Hotelanzeigen.

Um Ihr Inventar für mögliche Aktivitäten zu unterteilen, verwenden Sie die speziellen Aktivitätsdimensionen, die in ListingDimensionInfo verfügbar sind:

  • ActivityCountryInfo: Filtert nach dem Zielland (value) anhand des Ressourcennamens einer geografischen Zielkonstante (geoTargetConstants/{criterion_id}, z. B. "geoTargetConstants/2840" für die USA).
  • ActivityStateInfo: Filtert nach dem Zielbundesstaat oder der Zielregion (value) mit einem Geo Target Constant-Ressourcennamen (geoTargetConstants/{criterion_id}).
  • ActivityCityInfo: Filtert nach der Zielstadt (value) mit einem Ressourcennamen für geografische Ausrichtungskonstanten (geoTargetConstants/{criterion_id}, z. B. "geoTargetConstants/1023191" für New York City).
  • ActivityRatingInfo: Filtert nach dem Aktivitätsstern oder der Nutzerbewertung (value, eine Ganzzahl von 1 bis 5, wobei 5 die beste Bewertung ist).
  • ActivityIdInfo: Filtert nach der spezifischen Aktivitäts-ID, die in Ihrem Feed für das Things to do Center (value) definiert ist.

Regeln für die Dimensionshierarchie

Beachten Sie beim Erstellen einer Baumstruktur für eine Gruppe von Einträgen für Aktivitäten die folgenden Regeln:

  1. Stammknoten: Jeder Baum einer Eintragsgruppe muss mit einem einzelnen Stammknoten AdGroupCriterion beginnen, dessen listing_group.type SUBDIVISION (oder UNIT, wenn Sie einen einzelnen Auffangknoten wünschen) und dessen case_value nicht festgelegt ist.
  2. Unterteilungen und Einheiten: Bei Zwischenzweigen muss type auf SUBDIVISION festgelegt werden, bei Blattknoten type auf UNIT. Die Einstellung cpc_bid_micros für UNIT-Knoten ist für Kampagnen mit möglichen Aktivitäten optional, da Gebote automatisch von der MaximizeConversionValue-Strategie der Kampagne verwaltet werden. Wenn Sie eine untergeordnete Einheit von der Auslieferung ausschließen möchten, legen Sie negative = true für die zugehörige AdGroupCriterion fest.
  3. Fallback-Knoten („Alles andere“): Jede Unterteilung muss vollständig partitioniert sein. Alle direkten untergeordneten Elemente einer Unterteilung müssen denselben ListingDimensionInfo-Untertyp verwenden. Ein untergeordnetes Element muss eine leere Instanz dieses Untertyps sein, um das gesamte verbleibende Inventar zu erfassen.

Das folgende Diagramm veranschaulicht eine gültige Hierarchie, die nach Land, Stadt und Aktivitäts-ID partitioniert ist:

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)

Codebeispiel

Im folgenden Python-Beispiel wird ein Stamm-SUBDIVISION mit einer temporären ID (-1) erstellt und nach ActivityCountryInfo in eine Zielgruppe für die USA ("geoTargetConstants/2840") und eine ausgeschlossene Fallback-Einheit für alle anderen Länder partitioniert:

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
)

Nächste Schritte