バッチ処理

ほとんどのサービスは、リクエストを送信してレスポンスを待つ必要がある同期 API を提供していますが、BatchJobService では、オペレーションの完了を同期的に待つことなく、複数のサービスでオペレーションのバッチを実行できます。

サービス固有の mutate オペレーションとは異なり、BatchJobService の 1 つのジョブで、キャンペーン、広告グループ、広告、条件、ラベル、アセットの混合コレクションを操作できます。送信されたジョブは並列で実行され、BatchJobService は、レート制限エラーなどの一時的なエラーが原因で失敗したオペレーションを自動的に再試行します。Google Ads API では、API オペレーションのカウント手順に沿って、各オペレーションが1 日のオペレーション上限にカウントされます。

BatchJobService では、リクエスト内で一時 ID を使用することもできます。これにより、依存するオペレーションを 1 つのジョブで送信できます。

運用

BatchJobService は、MutateOperation に記載されているオペレーションのうち、基盤となるサービスが部分的な失敗をサポートしているすべてのオペレーションをサポートしています。また、AssetGroupOperation と AssetGroupListingGroupFilterOperation もサポートしています。これらは明示的に除外され、アトミックなサブバッチで(関連する相互依存オペレーションとともに)実行されます。

Google Ads API は、部分的な失敗が有効になっているジョブで標準オペレーションを実行するため(アトミック サブバッチ内を除く)、ジョブがキャンセルされた場合や個々のオペレーションが失敗した場合でも、成功したオペレーションはロールバックされません。

MutateOperation の次のオペレーションはアトミックである必要があり、部分的な失敗をサポートしていないため、バッチジョブ内ではサポートされていません。これらのオペレーションをバッチジョブに追加すると、MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE エラー(BookCampaignsOperation と QuoteCampaignsOperation の場合は InternalError.INTERNAL_ERROR)が返されます。代わりに、partial_failure を false に設定した GoogleAdsService.Mutate を使用して実行します(QuoteCampaignsOperation の場合は validate_only を true に設定します)。

BatchJobService でサポートされていないオペレーション