AdGroupCriterion.listing_group または AssetGroupListingGroupFilter のコンテキストでリスティング グループ フィルタを使用する場合は、統合を設計する際に次の点を考慮してください。
バッチ分割
広告グループの条件またはアセット グループのリスティング グループ フィルタを含むオペレーションがバッチジョブに含まれている場合、Google Ads API サーバーで受信されると、バッチジョブのオペレーションは複数のサブバッチに分割されます。バッチジョブの標準オペレーションとは異なり、リスティング グループ フィルタ オペレーションを含む各サブバッチはアトミックに処理されます。
リスティング グループ フィルタを含むバッチジョブがサブバッチに分割される方法は、次の要因によって決まります。
- リスティング グループのフィルタの種類
AdGroupCriterionまたはAssetGroupのリスティング グループのフィルタがターゲットにしている- オペレーションの順序
オペレーションのグループ化方法を検討します。
- 同じ
AssetGroupを対象とする連続したAssetGroupListingGroupFilterOperationオペレーションは、アトミック サブバッチにグループ化されます(部分的な失敗の動作はありません)。 - 同じ
AdGroupをターゲットとするlisting_groupを含む連続するAdGroupCriterionOperationオペレーションはすべて、アトミック サブバッチにグループ化されます(部分的な障害動作はありません)。 - 他のすべての連続するオペレーションは、アトミックでないサブバッチにグループ化されます(部分的な失敗の動作)。
次の図に、このコンセプトを示します。灰色の各ボックスは、Google Ads API を使用して送信されたバッチジョブを表しています。灰色のボックス内では、個々のオペレーションが色でグループ化され、Google Ads API サーバーが作成するサブバッチを表しています。各グレーボックス内のオペレーションの順序は、オペレーションがバッチジョブに追加される順序に対応しています。
バッチ分割のアトミック性
Google Ads API は、送信されたバッチジョブのオペレーションを処理のために小さなサブバッチに分割することがあります。リストグループの変更などの関連するオペレーションを AssetGroup と AdGroup 内でバッチジョブ内で連続してグループ化しない場合、Google Ads API はこれらのオペレーションを異なるサブバッチに分割する可能性があります。この分離により、変更全体が失敗するか、アカウントが不整合な状態になる可能性があります。
論理グループ
AssetGroupListingGroupFilterOperation は、AssetGroup 内のリスティング グループを管理します。これは、P-MAX キャンペーンでよく使用されます。AdGroupCriterionOperation は、標準のショッピング キャンペーンで一般的な AdGroup 内のリスティング グループを管理します。どちらも商品ターゲティングの定義に使用されます。両方のコンテキストで商品ターゲティングの階層に影響する変更を行う場合は、これらのオペレーションをバッチジョブで連続してグループ化し、まとめて適用されるようにします。
データの整合性
データの整合性を維持し、部分的な更新を防ぐには、関連するリスティング グループ オペレーションをバッチジョブに連続して追加します。この順序付けにより、API のバッチ分割ロジックによってアトミック サブバッチにグループ化され、アカウントが不整合な状態になるのを防ぐことができます。
制限事項
バッチジョブのコンテキストで商品グループ フィルタを使用する場合は、次の制限が適用されます。
listing_groupを含み、同じAdGroupをターゲットとするAdGroupCriterionOperationオペレーションの 1 つのバッチの長さは、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 エラー メッセージのインデックスの前と後)を反復処理して、追加のエラー情報を探すことをおすすめします。