この記事は Devin Chasanoff による Google Ads Blog の記事 "Performance Max: create listing groups using batch processing" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。新機能
2023 年 10 月 4 日より、Google Ads API のバッチ処理で、非同期に AssetGroupListingGroupFilters
を作成できるようになりました。BatchJobService
を使って 1 回のリクエストで AssetGroupListingGroupFilter
エンティティなどの P-MAX リソースを作成する場合、リスティング グループのツリー作成中にエラーが発生しても、残りのエンティティの作成はブロックされません。ただし、リスティング グループのツリーを作成する操作がアトミックである点は変わりません。つまり、リスティング グループのツリー作成に関連する操作でエラーが返された場合、そのリスティング グループのツリーに関連するすべての操作も失敗します。ただし、いくつかの注意事項があります。こちらのジョブおよびリスティング グループ フィルタガイドに詳しく記載されているので、ご覧ください。
Read More
この記事は Devin Chasanoff による Google Ads Blog の記事 "Performance Max: create listing groups using batch processing" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。新機能
2023 年 10 月 4 日より、Google Ads API のバッチ処理で、非同期に AssetGroupListingGroupFilters
を作成できるようになりました。BatchJobService
を使って 1 回のリクエストで AssetGroupListingGroupFilter
エンティティなどの P-MAX リソースを作成する場合、リスティング グループのツリー作成中にエラーが発生しても、残りのエンティティの作成はブロックされません。ただし、リスティング グループのツリーを作成する操作がアトミックである点は変わりません。つまり、リスティング グループのツリー作成に関連する操作でエラーが返された場合、そのリスティング グループのツリーに関連するすべての操作も失敗します。ただし、いくつかの注意事項があります。こちらのジョブおよびリスティング グループ フィルタガイドに詳しく記載されているので、ご覧ください。
リスティング グループ フィルタの作成操作を含まない既存のバッチジョブの動作は、今回のアップデートで変更されることはありません。
これまでの動作
2023 年 10 月 4 日より前の時点では、AssetGroupListingGroupFilters
は GoogleAdsService.Mutate
メソッドまたは AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters
メソッドを使って同期的に作成することしかできません。AssetGroupListingGroupFilterOperation
操作が含まれている場合、GoogleAdsService.Mutate
メソッドによるリクエストは常にアトミックです。このような動作になるのは、この操作で partial_failure
がサポートされていないためです。つまり、リスティング グループのツリー作成でエラーが発生した場合、リクエスト内の他のすべての操作がブロックされます。2023 年 10 月 4 日より前にバッチ処理で AssetGroupListingGroupFilter
エンティティを作成しようとすると、MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE
エラーが返されます。
変更の理由
バッチ処理は Google Ads API の機能で、同期的に操作の完了を待つことなく、一連の操作を複数のサービスにディスパッチできます。その際に、それぞれの操作に相互依存関係があっても問題ありません。今回は、AssetGroupListingGroupFilters
でバッチ処理を利用できるようにして、同じリクエストの他の操作をブロックすることなく、リスティング グループのツリー作成を非同期でも行えるようにしました。これは、皆さんからのフィードバックにお応えしたものです。
実装の詳細
バッチジョブで AssetGroupListingGroupFilter
を追加するには、次の手順を実行します。
AssetGroupListingGroupFilterOperation
を含む MutateOperation
を作成します。これは、GoogleAdsService.Mutate サービスを使って MutateOperation を作成する操作と同様です。- バッチジョブに
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());
以下のリソースには、連携の際に役立つ追加情報が含まれています。
P-MAX 連携の改善についてのブログシリーズ
この記事は、皆さんから要望があった新機能や今後予定されている機能についてお伝えするシリーズの一部です。今後も、新機能や現在の実装アプローチとの違いについて説明してまいります。
今後のアップデートや改善についてお伝えするデベロッパー ブログにご注目ください。Google Ads API と P-MAX の連携についてのフィードバックも、引き続きお寄せください。サポートが必要な場合は、いつものようにチームにお問い合わせください。
Reviewed by
Thanet Knack Praneenararat - Ads Developer Relations Team