2023 年 10 月 4 日より、Google Ads API のバッチ処理で、非同期に AssetGroupListingGroupFilters を作成できるようになりました。BatchJobService を使って 1 回のリクエストで AssetGroupListingGroupFilter エンティティなどの P-MAX リソースを作成する場合、リスティング グループのツリー作成中にエラーが発生しても、残りのエンティティの作成はブロックされません。ただし、リスティング グループのツリーを作成する操作がアトミックである点は変わりません。つまり、リスティング グループのツリー作成に関連する操作でエラーが返された場合、そのリスティング グループのツリーに関連するすべての操作も失敗します。ただし、いくつかの注意事項があります。こちらのジョブおよびリスティング グループ フィルタガイドに詳しく記載されているので、ご覧ください。
AssetGroupListingGroupFilters
BatchJobService
AssetGroupListingGroupFilter
リスティング グループ フィルタの作成操作を含まない既存のバッチジョブの動作は、今回のアップデートで変更されることはありません。
2023 年 10 月 4 日より前の時点では、AssetGroupListingGroupFilters は GoogleAdsService.Mutate メソッドまたは AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters メソッドを使って同期的に作成することしかできません。AssetGroupListingGroupFilterOperation 操作が含まれている場合、GoogleAdsService.Mutate メソッドによるリクエストは常にアトミックです。このような動作になるのは、この操作で partial_failure がサポートされていないためです。つまり、リスティング グループのツリー作成でエラーが発生した場合、リクエスト内の他のすべての操作がブロックされます。2023 年 10 月 4 日より前にバッチ処理で AssetGroupListingGroupFilter エンティティを作成しようとすると、MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE エラーが返されます。
GoogleAdsService.Mutate
AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters
AssetGroupListingGroupFilterOperation
partial_failure
MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE
バッチ処理は Google Ads API の機能で、同期的に操作の完了を待つことなく、一連の操作を複数のサービスにディスパッチできます。その際に、それぞれの操作に相互依存関係があっても問題ありません。今回は、AssetGroupListingGroupFilters でバッチ処理を利用できるようにして、同じリクエストの他の操作をブロックすることなく、リスティング グループのツリー作成を非同期でも行えるようにしました。これは、皆さんからのフィードバックにお応えしたものです。
バッチジョブで AssetGroupListingGroupFilter を追加するには、次の手順を実行します。
MutateOperation
次の例は、既存のバッチジョブに 1 つの AssetGroupListingGroupFilter を追加するプロセスを示しています。AssetGroupListingGroupFilter エンティティを使って製品パーティション ツリーを作成する方法については、ショッピング リスティング グループの作成に関するガイドをご覧ください。
// Constructs the AssetGroupListingGroupFilter. AssetGroupListingGroupFilter listingGroupFilter = AssetGroupListingGroupFilter.newBuilder() .setAssetGroup(assetGroupResourceName) .setType(ListingGroupFilterType.UNIT_INCLUDED) .setVertical(ListingGroupFilterVertical.SHOPPING) .build(); // Constructs the operation to create the AssetGroupListingGroupFilter. MutateOperation operation = MutateOperation.newBuilder() .setAssetGroupListingGroupFilterOperation( AssetGroupListingGroupFilterOperation .newBuilder() .setCreate(listingGroupFilter)) .build(); // Sends a request to add the operation to the batch job. AddBatchJobOperationsResponse response = batchJobServiceClient.addBatchJobOperations( AddBatchJobOperationsRequest.newBuilder() .setResourceName(batchJobResourceName) .addMutateOperations(operation) .build());
以下のリソースには、連携の際に役立つ追加情報が含まれています。
この記事は、皆さんから要望があった新機能や今後予定されている機能についてお伝えするシリーズの一部です。今後も、新機能や現在の実装アプローチとの違いについて説明してまいります。
今後のアップデートや改善についてお伝えするデベロッパー ブログにご注目ください。Google Ads API と P-MAX の連携についてのフィードバックも、引き続きお寄せください。サポートが必要な場合は、いつものようにチームにお問い合わせください。