Eintragsgruppen für Aktivitäten erstellen

Das Erstellen von Eintragsgruppen für Anzeigengruppen mit möglichen Aktivitäten folgt derselben strukturellen Hierarchie und demselben Prozess zum Erstellen von Baumstrukturen wie Eintragsgruppen für Hotelanzeigen.

Wenn Sie Ihr Inventar für „Mögliche Aktivitäten“ partitionieren möchten, verwenden Sie die speziellen Aktivitätsdimensionen, die in ListingDimensionInfo verfügbar sind:

  • ActivityCountryInfo: Filtert nach dem Zielland (value) mithilfe eines Ressourcennamens für die Geo-Targeting-Konstante (geoTargetConstants/{criterion_id}, z. B. "geoTargetConstants/2840" für die USA).
  • ActivityStateInfo: Filtert nach dem Zielbundesstaat oder der Zielregion (value) mithilfe eines Ressourcennamens für die Geo-Targeting-Konstante (geoTargetConstants/{criterion_id}).
  • ActivityCityInfo: Filtert nach der Zielstadt (value) mithilfe eines Ressourcennamens für die Geo-Targeting-Konstante (geoTargetConstants/{criterion_id}, z. B. "geoTargetConstants/1023191" für New York City).
  • ActivityRatingInfo: Filtert nach der Aktivitätsbewertung oder 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 im „Mögliche Aktivitäten“-Center (value) definiert ist.

Regeln für die Dimensionshierarchie

Beachten Sie beim Erstellen einer Baumstruktur für Eintragsgruppen für „Mögliche Aktivitäten“ die folgenden Regeln:

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

Die folgende Struktur 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 Ziel-Einheit 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