Hãy xem xét các nguyên tắc sau khi sử dụng BatchJobService.
Cải thiện thông lượng
- Bạn nên có ít công việc lớn hơn thay vì nhiều công việc nhỏ hơn. 
- Sắp xếp các thao tác đã tải lên theo loại thao tác. Ví dụ: nếu công việc của bạn chứa các thao tác để thêm chiến dịch, nhóm quảng cáo và tiêu chí nhóm quảng cáo, hãy sắp xếp các thao tác trong tệp tải lên sao cho tất cả thao tác chiến dịch đều ở vị trí đầu tiên, theo sau là tất cả thao tác nhóm quảng cáo và cuối cùng là tất cả thao tác tiêu chí nhóm quảng cáo. 
- Trong các thao tác cùng loại, bạn có thể cải thiện hiệu suất bằng cách nhóm các thao tác theo tài nguyên mẹ. Ví dụ: nếu bạn có một loạt các đối tượng - AdGroupCriterionOperation, thì việc nhóm các thao tác theo nhóm quảng cáo có thể hiệu quả hơn thay vì trộn lẫn các thao tác ảnh hưởng đến tiêu chí nhóm quảng cáo trong các nhóm quảng cáo khác nhau.
Tránh các vấn đề về tính đồng thời
- Khi gửi nhiều công việc đồng thời cho cùng một tài khoản, hãy cố gắng giảm khả năng các công việc hoạt động trên cùng một đối tượng cùng một lúc, đồng thời duy trì kích thước công việc lớn. Nhiều công việc chưa hoàn thành, có trạng thái - RUNNING, cố gắng thay đổi cùng một nhóm đối tượng, điều này có thể dẫn đến các điều kiện giống như bế tắc, dẫn đến tình trạng chậm trễ nghiêm trọng và thậm chí là lỗi công việc.
- Đừng gửi nhiều thao tác làm thay đổi cùng một đối tượng trong cùng một công việc, vì kết quả có thể không dự đoán được. 
Lấy kết quả một cách tối ưu
- Đừng thăm dò trạng thái công việc quá thường xuyên, nếu không bạn có thể gặp phải lỗi giới hạn tốc độ. 
- Đừng truy xuất quá 1.000 kết quả trên mỗi trang. Máy chủ có thể trả về ít hơn số đó do tải hoặc các yếu tố khác. 
- Thứ tự kết quả sẽ giống với thứ tự tải lên. 
Hướng dẫn bổ sung về cách sử dụng
- Bạn có thể đặt giới hạn trên cho thời gian mà một công việc hàng loạt được phép chạy trước khi bị huỷ. Khi tạo một lô công việc mới, hãy đặt trường - metadata.execution_limit_secondsthành giới hạn thời gian mà bạn muốn (tính bằng giây). Không có giới hạn thời gian mặc định nếu bạn không đặt- metadata.execution_limit_seconds.
- Bạn nên thêm không quá 1.000 thao tác cho mỗi - AddBatchJobOperationsRequestvà dùng- sequence_tokenđể tải các thao tác còn lại lên cùng một công việc. Tuỳ thuộc vào nội dung của các thao tác, quá nhiều thao tác trong một- AddBatchJobOperationsRequestcó thể gây ra lỗi- REQUEST_TOO_LARGE. Bạn có thể xử lý lỗi này bằng cách giảm số lượng thao tác và thử lại- AddBatchJobOperationsRequest.
Các điểm hạn chế
- Mỗi - BatchJobhỗ trợ tối đa một triệu thao tác.
- Mỗi tài khoản có thể có tối đa 100 công việc đang hoạt động hoặc đang chờ xử lý cùng một lúc. 
- Các lệnh đang chờ xử lý đã tồn tại hơn 7 ngày sẽ tự động bị xoá. 
- Kể từ phiên bản 22, mỗi yêu cầu - AddBatchJobOperationscó giới hạn là 10.000 thao tác biến đổi cho mỗi yêu cầu.
- Kể từ phiên bản 22, đối với trường - page_sizetrong- ListBatchJobResultsRequest:- Nếu bạn không đặt page_sizehoặc đặt giá trị này là 0, thì giá trị mặc định sẽ là tối đa 1.000.
- Nếu page_sizevượt quá 1.000 hoặc nhỏ hơn 0, thì API sẽ trả về lỗiINVALID_PAGE_SIZE.
 
- Nếu bạn không đặt 
- Mỗi - AddBatchJobOperationsRequestcó kích thước tối đa là 10.484.504 byte. Nếu vượt quá giới hạn này, bạn sẽ nhận được một- INTERNAL_ERROR. Bạn có thể xác định kích thước của yêu cầu trước khi gửi và thực hiện hành động thích hợp nếu yêu cầu đó quá lớn.- Java- 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);