AdGroupCriterion.listing_group
または AssetGroupListingGroupFilter
のコンテキストでリスティング グループ フィルタを使用する場合は、統合を設計する際に次の点を考慮してください。
バッチ分割
バッチジョブに広告グループの条件またはアセット グループのリスティング グループ フィルタを含むオペレーションが含まれている場合、Google 広告 API サーバーがバッチジョブを受信すると、バッチジョブのオペレーションは複数のサブバッチに分割されます。バッチジョブの標準オペレーションとは異なり、リスティング グループ フィルタ オペレーションを含む各サブバッチは、アトミックに処理されます。
リスティング グループ フィルタを含むバッチジョブがサブバッチに分割される方法は、次の要因によって決まります。
- リスティング グループのフィルタのタイプ
- リスティング グループのフィルタがターゲティングしている
AdGroupCriterion
またはAssetGroup
- オペレーションの順序
オペレーションのグループ化方法について考えてみましょう。
- 同じ
AssetGroup
をターゲットとする連続するAssetGroupListingGroupFilterOperation
オペレーションはすべて、アトミック サブバッチにグループ化されます(部分的な失敗動作はありません)。 - 同じ
AdGroup
をターゲットとするlisting_group
を含む連続するすべてのAdGroupCriterionOperation
オペレーションは、アトミック サブバッチにグループ化されます(部分的な障害動作はありません)。 - 他の連続オペレーションはすべて、アトミックでないサブバッチにグループ化されます(部分的な失敗動作)。
次の図に、このコンセプトを示します。灰色のボックスは、Google Ads API を使用して送信されたバッチジョブを表します。グレーのボックス内では、個々のオペレーションが色別にグループ化され、Google Ads API サーバーが作成するサブバッチを表します。各グレーのボックス内のオペレーションの順序は、オペレーションがバッチジョブに追加される順序に対応しています。
制限事項
バッチジョブのコンテキストでリスティング グループ フィルタを使用する場合、次の制限が適用されます。
listing_group
を含むAssetGroupListingGroupFilterOperation
オペレーションのバッチで、同じAdGroup
をターゲットとするオペレーションの長さが 20,000 オペレーションを超えることはできません。ただし、10,000 オペレーションを超えないようにすることをおすすめします。- 同じ
AssetGroup
をターゲットとするAssetGroupListingGroupFilterOperation
オペレーションの 1 つのバッチは、10,000 オペレーションを超えることはできません。 - これらの条件のいずれかに違反すると、バッチジョブ全体が失敗します。
トラブルシューティング
バッチジョブでのグループ フィルタ オペレーションのリストは 1 つのトランザクションとして処理されるため、少数の誤ったオペレーションが原因で多くのオペレーションが失敗するシナリオが発生する可能性があります。さらに、BatchJob
オペレーションの処理方法により、障害の根本原因がダウンストリーム障害の前後にインデックスに表示される場合があります。
たとえば、ListBatchJobResults
からのレスポンスを処理すると、ステータス メッセージ Ad group is invalid due to the listing
groups it contains
で複数のオペレーションが失敗することがあります。通常、このメッセージは、別のインデックスでのオペレーションが失敗したために、このインデックスでのオペレーションがキャンセルされたことを示します。問題の根本原因を特定するには、BatchJobResult
のすべてのステータス メッセージを反復処理し(Ad group is invalid
エラー メッセージのインデックスの前後)、追加のエラー情報を探すことをおすすめします。