Die Google Ads API bietet je nach Anwendungsfall mehrere Möglichkeiten zum Ändern von Ressourcen:
- Ressourcendienst ändert: Jede
änderbare Ressource hat einen dedizierten Dienst, der Vorgänge für diesen
bestimmten Ressourcentyp ausführt. Für die Ressource
Campaignwird beispielsweise der EndpunktCampaignService.MutateCampaignszum Erstellen, Aktualisieren oder Entfernen von Kampagnen verwendet. - Bulk-Mutations:Der Endpunkt
GoogleAdsService.Mutateumfasst eine Reihe von Mutationsvorgängen für mehrere Ressourcentypen (und in Version 23 und höher unterstützte Aktionsvorgänge wie das Buchen oder Anfordern von Angeboten für Kampagnen) in einer einzigen synchronen Anfrage. - Asynchrone Batchjobs:Bei umfangreichen Änderungen oder zeitaufwendigen Arbeitslasten führt
BatchJobServiceVorgänge asynchron aus, ohne dass es zu Zeitüberschreitungen bei synchronen Anfragen kommt. Im Gegensatz zuGoogleAdsService.MutatewirdBatchJobServiceimmer mit Semantik für Teilausfälle ausgeführt und unterstützt weder denvalidate_only-Modus noch Aktionsvorgänge (book_campaigns_operation,quote_campaigns_operation). Da Teilausfälle immer aktiv sind, lehntBatchJobServiceRessourcenoperationen ab, deren zugrunde liegende Dienste keine Teilausfälle unterstützen (z. B.CustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationundCustomerConversionGoalOperation), und gibtMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILUREzurück.
Vorteile von Bulk-Mutations
Die Verwendung von GoogleAdsService.Mutate bietet die folgenden Vorteile (siehe Best Practices für Mutate für Implementierungsanleitungen):
- Gruppierte Aktionen für verschiedene Ressourcendienste:Bei einzelnen Aufrufen von Ressourcendiensten werden nur Vorgänge für einen einzelnen Ressourcentyp akzeptiert. Mit
GoogleAdsService.Mutatekönnen Sie jedoch mehrere Ressourcentypen in einem Aufruf ändern. - Temporäre Ressourcennamen:Sie können neu erstellten übergeordneten Entitäten negative Ganzzahl-IDs (z. B.
customers/CUSTOMER_ID/campaigns/-1) zuweisen und in untergeordneten Vorgängen innerhalb derselben Anfrage auf diese temporären IDs verweisen.
Mit diesen Funktionen können Sie GoogleAdsService.Mutate verwenden, um eine gesamte Kampagnenhierarchie atomar zu erstellen, sodass alle Vorgänge gemeinsam erfolgreich sind oder fehlschlagen. Alternativ können Sie partial_failure auf true festlegen, um gültige Vorgänge unabhängig voneinander zu übertragen.