使用
BatchJobService
。
提高處理量
建議減少大型工作,而非多個小型工作。
按照作業類型排序已上傳的作業。舉例來說 當中包含新增廣告活動、廣告群組和廣告群組條件的作業。 排列上載作業中的作業順序,讓所有廣告活動 依序和 廣告群組作業中,最後 廣告群組條件作業。
進行相同類型的操作時,可提高成效並分組 依父項資源排序舉例來說,如果有一系列
AdGroupCriterionOperation
物件,分組時更有效率 而不是把影響廣告的作業 不同的廣告群組條件
避免並行問題
為同一個帳戶提交多項並行工作時,請嘗試減少 同時處理相同物件的機率 和維持大型工作規模許多未完成的工作 (狀態為
RUNNING
),則需要 嘗試變更同一組物件,可能導致死結狀況 以致於嚴重拖慢速度,甚至工作失敗請勿為同一個物件提交多項會修改同一物件的作業 因為結果無法預測。
以最佳方式擷取結果
請勿過於頻繁地輪詢工作狀態,否則可能會達到頻率限制 發生錯誤。
每個頁面最多只能擷取 1,000 筆結果。伺服器會傳回 資源用量或其他因素
結果順序將與上傳順序相同。
其他使用指南
您可以設定批次工作執行時間上限 正在取消中。建立新的批次工作時,請設定
metadata.execution_limit_seconds
敬上 欄位設為所需的時間限制 (以秒為單位)。沒有預設時間 如未設定metadata.execution_limit_seconds
,會受到限制。建議一次最多新增 1,000 項作業
AddBatchJobOperationsRequest
敬上 並使用sequence_token
。 將其餘作業上傳至同一項工作。根據用途 作業內容、單一作業過多AddBatchJobOperationsRequest
可能會造成REQUEST_TOO_LARGE
錯誤。個人中心 可以減少作業數量並重試AddBatchJobOperationsRequest
。
限制
每個
BatchJob
最多可支援 100 萬個 作業。每個帳戶一次最多可以有 100 個有效或待處理的工作。
系統會自動移除超過 7 天的待處理工作。
每個
AddBatchJobOperationsRequest
大小上限為 10,484,504 個位元組如果超出這個上限,您將會收到INTERNAL_ERROR
。您可以決定要求的大小 如果太大,可以提交並採取適當行動。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()
小茹
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);