AdGroupCriterion.listing_group または AssetGroupListingGroupFilter のコンテキストでリスティング グループ フィルタを使用する場合は、統合を設計する際に次の点を考慮してください。
バッチ分割
バッチジョブに広告グループの条件またはアセット グループのリスティング グループ フィルタを含むオペレーションがある場合、バッチジョブのオペレーションは Google Ads API サーバーで受信されると、複数のサブバッチに分割されます。バッチジョブの標準オペレーションとは異なり、リスティング グループ フィルタ オペレーションを含む各サブバッチはアトミックに処理されます。
リスティング グループ フィルタを含むバッチジョブがサブバッチに分割される方法は、次の要因によって決まります。
- リスティング グループのフィルタの種類
- リスティング グループのフィルタがターゲットにしている
AdGroupまたはAssetGroup - オペレーションの順序
オペレーションのグループ化方法を検討します。
- 同じ
AssetGroupを対象とする連続したAssetGroupListingGroupFilterOperationオペレーション(create、update、remove)は、アトミック サブバッチにグループ化されます(部分的な失敗の動作はありません)。 - 同じ
AdGroupをターゲットとするLISTING_GROUP条件(AdGroupCriterion.listing_group)の連続するAdGroupCriterionOperationオペレーション(create、update、remove)は、アトミック サブバッチにグループ化されます(部分的な失敗動作はありません)。 - 他のすべての連続するオペレーションは、アトミックでないサブバッチにグループ化されます(部分的な失敗の動作)。
次の図に、このコンセプトを示します。灰色の各ボックスは、Google Ads API を使用して送信されたバッチジョブを表しています。灰色のボックス内では、個々のオペレーションが色でグループ化され、Google Ads API サーバーが作成するサブバッチを表しています。各グレーボックス内のオペレーションの順序は、オペレーションがバッチジョブに追加された順序に対応しています。
制限事項
バッチジョブのコンテキストでリスティング グループ フィルタを使用する場合は、次の制限事項が適用されます。
- 同じ
AdGroupを対象とするLISTING_GROUP条件(AdGroupCriterion.listing_group)の連続するAdGroupCriterionOperationオペレーション(create、update、remove)の単一のアトミック サブバッチの長さは、20,000 オペレーションを超えてはなりません。ただし、10,000 回を超えないようにすることをおすすめします。各AddBatchJobOperationsRequestは 10,000 オペレーションに制限されているため、10,001 ~ 20,000 オペレーションのAdGroupサブバッチは、少なくとも 2 つの連続するAddBatchJobOperationsリクエストでアップロードする必要があります。 - 同じ
AssetGroupを対象とする連続したAssetGroupListingGroupFilterOperationオペレーション(create、update、remove)の単一のアトミック サブバッチは、10,000 オペレーションを超えることはできません。 - これらのオペレーション数の上限のいずれかに違反した場合(または、単一のサブバッチに対するサーバーの内部シリアル化バイトサイズの上限を超えた場合)、そのサブバッチでバッチジョブが中止されます。すでに完了した以前のサブバッチはコミットされたままになりますが、違反したサブバッチとそれ以降のサブバッチのすべてのオペレーションは
InternalError.INTERNAL_ERRORで失敗します。
トラブルシューティング
バッチジョブのリスティング グループ フィルタ オペレーションは 1 つのトランザクションとして処理されるため、少数の誤ったオペレーションが原因で多くのオペレーションが失敗するシナリオが発生する可能性があります。また、BatchJob オペレーションの処理方法により、障害の根本原因がダウンストリーム障害の前または後のインデックスに表示されることがあります。
たとえば、ListBatchJobResults からのレスポンスを処理する場合:
AdGroupCriterionOperationリスティング グループの場合、同じAdGroupを対象とする連続したオペレーションがCriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION(Product group operations are atomic within the same ad group. This operation failed because another operation targeting the same ad group ID was invalid.)で失敗することがあります。AssetGroupListingGroupFilterOperationオペレーションの場合、同じAssetGroupを対象とする連続したオペレーションがBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILUREで失敗することがあります。
これらのエラーは、同じアトミック サブバッチ内の別のオペレーションが失敗したため、そのインデックスのオペレーションがロールバックされたことを示します。問題の根本原因を特定するには、同じ AdGroup または AssetGroup ID を共有するオペレーションについて、トランザクション エラーの operation_index の前後の各 BatchJobResult の status メッセージを反復処理します。