BatchJobService을 사용할 때는 다음 가이드라인을 고려하세요.
처리량 개선
- 작업이 많은 것보다 큰 작업이 적은 것이 좋습니다. 
- 업로드된 작업을 작업 유형별로 정렬합니다. 예를 들어 작업에 캠페인, 광고 그룹, 광고 그룹 기준을 추가하는 작업이 포함된 경우 업로드에서 모든 캠페인 작업이 먼저 오고, 그 뒤에 모든 광고 그룹 작업이 오고, 마지막으로 모든 광고 그룹 기준 작업이 오도록 작업을 정렬합니다. 
- 동일한 유형의 작업 내에서 상위 리소스별로 그룹화하면 성능이 향상될 수 있습니다. 예를 들어 - AdGroupCriterionOperation객체가 여러 개 있는 경우 서로 다른 광고 그룹의 광고 그룹 기준에 영향을 미치는 작업을 혼합하는 대신 광고 그룹별로 작업을 그룹화하는 것이 더 효율적일 수 있습니다.
동시 실행 문제 방지
- 동일한 계정에 대해 여러 동시 작업을 제출할 때는 작업 크기를 크게 유지하면서 동일한 객체에서 동시에 작업할 가능성을 줄이세요. 상태가 - RUNNING인 미완료 작업이 많으면 동일한 객체 집합을 변경하려고 시도하므로 심각한 속도 저하와 작업 실패를 초래하는 교착 상태와 유사한 조건이 발생할 수 있습니다.
- 결과를 예측할 수 없으므로 동일한 작업에서 동일한 객체를 변경하는 여러 작업을 제출하지 마세요. 
최적으로 결과 검색
- 작업 상태를 너무 자주 폴링하면 속도 제한 오류가 발생할 수 있습니다. 
- 페이지당 1,000개가 넘는 결과를 가져오지 마세요. 로드 또는 기타 요인으로 인해 서버에서 이보다 적은 수를 반환할 수 있습니다. 
- 결과 순서는 업로드 순서와 동일합니다. 
추가 사용 안내
- 일괄 작업이 취소되기 전에 실행될 수 있는 상한을 설정할 수 있습니다. 새 일괄 작업을 만들 때 - metadata.execution_limit_seconds필드를 원하는 시간 제한(초)으로 설정합니다.- metadata.execution_limit_seconds가 설정되지 않은 경우 기본 시간 제한은 없습니다.
- AddBatchJobOperationsRequest당 1,000개 이하의 작업을 추가하고- sequence_token을 사용하여 나머지 작업을 동일한 작업에 업로드하는 것이 좋습니다. 작업의 내용에 따라 단일- AddBatchJobOperationsRequest에 작업이 너무 많으면- REQUEST_TOO_LARGE오류가 발생할 수 있습니다. 작업 수를 줄이고- AddBatchJobOperationsRequest를 다시 시도하여 이 오류를 처리할 수 있습니다.
제한사항
- 각 - BatchJob은 최대 100만 개의 작업을 지원합니다.
- 각 계정은 동시에 최대 100개의 활성 또는 대기 중인 작업을 보유할 수 있습니다. 
- 7일 이상 경과한 대기 중인 작업은 자동으로 삭제됩니다. 
- v22부터 각 - AddBatchJobOperations요청에는 요청당 변이 작업이 10,000개로 제한됩니다.
- v22부터 - ListBatchJobResultsRequest의- page_size필드에 적용되는 사항은 다음과 같습니다.- page_size가 설정되지 않았거나 0인 경우 기본값은 1,000입니다.
- page_size이 1,000을 초과하거나 0보다 작으면 API에서- INVALID_PAGE_SIZE오류를 반환합니다.
 
- 각 - AddBatchJobOperationsRequest의 최대 크기는 10,484,504바이트입니다. 이 한도를 초과하면- INTERNAL_ERROR이 발생합니다. 제출 전에 요청의 크기를 확인하고 너무 큰 경우 적절한 조치를 취할 수 있습니다.- 자바- static final int MAX_REQUEST_BYTES = 10_484_504; ... (code to get the request object) int sizeInBytes = request.getSerializedSize();- Python- from google.ads.googleads.client import GoogleAdsClient MAX_REQUEST_BYTES = 10484504 ... (code to get the request object) size_in_bytes = request._pb.ByteSize()- Ruby- require 'google/ads/google_ads' MAX_REQUEST_BYTES = 10484504 ... (code to get the request object) size_in_bytes = request.to_proto.bytesize- PHP- use Google\Ads\GoogleAds\V16\Resources\Campaign; const MAX_REQUEST_BYTES = 10484504; ... (code to get the request object) $size_in_bytes = $campaign->byteSize() . PHP_EOL;- .NET- using Google.Protobuf; const int MAX_REQUEST_BYTES = 10484504; ... (code to get the request object) int sizeInBytes = request.ToByteArray().Length;- Perl- use Devel::Size qw(total_size); use constant MAX_REQUEST_BYTES => 10484504; ... (code to get the request object) my $size_in_bytes = total_size($request);