BatchJobService
hizmetini kullanırken bu yönergeleri göz önünde bulundurun.
İşleme hızını iyileştirin
Çok sayıda küçük iş yerine daha az büyük iş tercih edilir.
Yüklenen işlemleri işlem türüne göre sıralayın. Örneğin, işiniz kampanya, reklam grubu ve reklam grubu ölçütleri ekleme işlemleri içeriyorsa yüklemenizdeki işlemleri, önce tüm kampanya işlemlerini, ardından tüm reklam grubu işlemlerini ve son olarak da tüm reklam grubu ölçütü işlemlerini içerecek şekilde sıralayın.
Aynı türdeki işlemler içinde, bunları üst kaynağa göre gruplandırmak performansı artırabilir. Örneğin, bir dizi
AdGroupCriterionOperation
nesneniz varsa farklı reklam gruplarındaki reklam grubu ölçütlerini etkileyen işlemleri karıştırmak yerine, işlemleri reklam grubuna göre gruplandırmak daha verimli olabilir.
Eşzamanlılık sorunlarını önleme
Aynı hesap için birden fazla eşzamanlı iş gönderirken büyük iş boyutlarını koruyarak işlerin aynı anda aynı nesnelerde çalışma olasılığını azaltmaya çalışın. Aynı nesne kümesini değiştirmeye çalışan birçok tamamlanmamış iş (
RUNNING
durumunda) kilitlenmeye benzer durumlara, ciddi şekilde yavaşlamaya ve hatta iş hatalarına yol açabilir.Sonuç öngörülemez olabileceğinden, aynı nesneyi aynı işte değiştiren birden fazla işlem göndermeyin.
En iyi sonuçları alın
İş durumunu çok sık yoklamayın. Aksi takdirde hız sınırı hatalarına yol açma riskiyle karşı karşıya kalırsınız.
Sayfa başına 1.000'den fazla sonuç getirmeyin. Sunucu, yük veya diğer faktörler nedeniyle daha az veri döndürebilir.
Sonuç sırası, yükleme sırası ile aynı olur.
Kullanımla ilgili ek bilgiler
Bir toplu işin iptal edilmeden önce ne kadar süreyle çalışmasına izin verileceğine ilişkin bir üst sınır ayarlayabilirsiniz. Yeni bir toplu iş oluştururken
metadata.execution_limit_seconds
alanını saniye cinsinden tercih ettiğiniz zaman sınırına ayarlayın.metadata.execution_limit_seconds
ayarlanmazsa varsayılan bir zaman sınırı olmaz.AddBatchJobOperationsRequest
başına en fazla 1.000 işlem eklenmesi ve geri kalan işlemleri aynı işe yüklemek içinsequence_token
kullanılması önerilir. İşlemlerin içeriğine bağlı olarak tek birAddBatchJobOperationsRequest
içinde çok fazla işlem yapılmasıREQUEST_TOO_LARGE
hatasına neden olabilir. İşlem sayısını azaltıpAddBatchJobOperationsRequest
işlemini yeniden deneyerek bu hatayı giderebilirsiniz.
Sınırlamalar
Her
BatchJob
bir milyona kadar işlemi destekler.Her hesapta aynı anda en fazla 100 etkin veya beklemedeki iş olabilir.
7 günden daha eski olan beklemedeki işler otomatik olarak kaldırılır.
Her
AddBatchJobOperationsRequest
maksimum 10.484.504 bayt boyutuna sahiptir. Bu sınırı aşarsanızINTERNAL_ERROR
kazanırsınız. İsteği göndermeden önce boyutunu belirleyebilir ve çok büyükse uygun işlemi yapabilirsiniz.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);