Mutationen des Ressourcendienstes

Die Verwendung des dedizierten Dienstes einer Ressource ist die direkteste Methode, um Entitäten eines einzelnen Ressourcentyps in der Google Ads API zu erstellen, zu aktualisieren oder zu entfernen.

Mutate-Endpunkte

Jede veränderliche Ressource hat einen entsprechenden Dienst- und Vorgangstyp. Wenn Sie eine Ressource mit dem zugehörigen Dienst ändern möchten, füllen Sie eines der folgenden Felder im Vorgang aus und senden Sie es an den Mutate-Endpunkt des Dienstes:

  • Erstellen (create): Ein neues Ressourcenobjekt, das erstellt werden soll.
  • Aktualisieren (update): Das geänderte Ressourcenobjekt, begleitet von einem update_mask, das die geänderten Felder angibt.
  • Entfernen (remove): Der resource_name-String der Zielressource, der entfernt werden soll.

So erstellen Sie beispielsweise eine neue Campaign:

  1. Erstellen Sie ein Campaign-Objekt mit den gewünschten Attributen.
  2. Weisen Sie sie dem Feld create einer CampaignOperation zu.
  3. Senden Sie den Vorgang in einem MutateCampaignsRequest an CampaignService.MutateCampaigns.

Dieses Muster gilt für alle ressourcenspezifischen Dienste in der Google Ads API:

Die folgende REST-JSON-Nutzlast veranschaulicht eine Anfrage an CampaignService.MutateCampaigns:

{
  "customerId": "CUSTOMER_ID",
  "operations": [
    {
      "create": {
        "name": "Interplanetary Cruise #1",
        "advertisingChannelType": "SEARCH",
        "status": "PAUSED",
        "manualCpc": {},
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
        "containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
      }
    }
  ],
  "partialFailure": false,
  "validateOnly": false
}

Mehrere Vorgänge und Einschränkungen

Die meisten ressourcenspezifischen Mutate-Anfragen akzeptieren ein wiederholtes operations-Feld. Eine einzelne Anfrage kann also mehrere Vorgänge für diesen Ressourcentyp enthalten (bis zu 10.000 Vorgänge pro Anfrage oder 20.000 für AdGroupCriterionService.MutateAdGroupCriteria; CustomerService.MutateCustomer akzeptiert ein einzelnes operation-Feld). Standardmäßig werden alle Vorgänge in der Anfrage atomar ausgeführt, sofern der Dienst partial_failure unterstützt und Sie ihn auf true festlegen.

Für einzelne Ressourcendienste gelten jedoch zwei wichtige Einschränkungen:

  • Einzelner Ressourcentyp:Bei einer Anfrage an einen Ressourcendienst können nur Ressourcen geändert werden, die von diesem Dienst verwaltet werden.
  • Keine temporären IDs für mehrere Ressourcen:Da bei einem ressourcenspezifischen Mutate-Aufruf nur ein einzelner Ressourcentyp akzeptiert wird, können Sie einer übergeordneten Ressource (z. B. customers/CUSTOMER_ID/campaigns/-1) keine temporäre negative ID zuweisen und in derselben Anfrage von einer untergeordneten Ressource eines anderen Typs (z. B. einer AdGroup) darauf verweisen. Selbstreferenzierende temporäre IDs innerhalb desselben Ressourcentyps werden für hierarchische Strukturen wie AdGroupCriterion-Einträge und AssetGroupListingGroupFilter-Knoten unterstützt.

Wenn Sie mehrere Ressourcentypen in einer einzelnen Anfrage ändern oder temporäre Ressourcennamen für verschiedene Ressourcentypen verwenden müssen, verwenden Sie stattdessen GoogleAdsService.Mutate.

Versionsspezifische Unterschiede

Beachten Sie beim Ändern von Ressourcen den folgenden Unterschied zwischen den unterstützten Google Ads API-Versionen:

  • Dienste für Zielvorhaben für den Lebenszyklus:Zielvorhaben für die Kundenbindung werden in allen unterstützten Versionen über GoalService.MutateGoals(retention_goal_settings) und CampaignGoalConfigService.MutateCampaignGoalConfigs(campaign_retention_settings) mit einem standardmäßigen wiederholten operations-Feld geändert. In Version 25 und höher werden auch „Kundenakquisition“ (new_customer_acquisition_goal_settings / campaign_new_customer_acquisition_settings) und „Kundenbindung“ (loyalty_retention_goal_settings / campaign_loyalty_retention_settings) über GoalService.MutateGoals und CampaignGoalConfigService.MutateCampaignGoalConfigs geändert. Damit werden CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals und CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals ersetzt, die in Version 23 und Version 24 für die Kundenakquisition verwendet werden und ein einzelnes operation-Feld akzeptieren.