BatchJobService
simgesini kullanırken bu yönergeleri göz önünde bulundurun.
Veri akışını iyileştirme
Çok sayıda küçük işe kıyasla daha az sayıda 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çütü ekleme işlemleri içeriyorsa yüklemenizdeki işlemleri, önce tüm kampanya işlemlerinin, ardından tüm reklam grubu işlemlerinin ve son olarak tüm reklam grubu ölçütü işlemlerinin gelecek şekilde sıralayın.
Aynı türdeki işlemler, üst öğeye göre gruplandırılarak performansı artırabilir. Örneğin, bir dizi
AdGroupCriterionOperation
nesnenize sahipseniz 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ı korurken aynı nesnelerde aynı anda çalışan işlerin olasılığını azaltmaya çalışın.
RUNNING
durumuna sahip birçok tamamlanmamış iş, aynı nesne grubunu değiştirmeye çalışır. Bu durum, kilitlenme benzeri koşullara yol açarak ciddi yavaşlamalara ve hatta iş hatalarına neden olabilir.Sonuç tahmin edilemez olabileceğinden, aynı işte aynı nesneyi değiştiren birden fazla işlem göndermeyin.
Sonuçları en uygun şekilde alma
İş durumunu çok sık sorgulayın, aksi takdirde hız sınırı hatalarıyla karşılaşma riskiniz vardır.
Sayfa başına 1.000'den fazla sonuç almamalıdır. Sunucu, yük veya diğer faktörler nedeniyle bundan daha az sonuç döndürebilir.
Sonuçların sırası, yükleme sırasıyla aynı olur.
Ek kullanım kılavuzu
Bir toplu işin iptal edilmeden önce ne kadar süre boyunca çalışmasına izin verileceğine dair bir üst sınır belirleyebilirsiniz. Yeni bir toplu iş oluştururken
metadata.execution_limit_seconds
alanını, tercih ettiğiniz zaman sınırını saniye cinsinden ayarlayın.metadata.execution_limit_seconds
ayarlanmamışsa varsayılan zaman sınırı yoktur.AddBatchJobOperationsRequest
başına en fazla 1.000 işlem eklemeniz ve işlemlerin geri kalanını aynı işe yüklemek içinsequence_token
seçeneğini kullanmanız ö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ı azaltarak veAddBatchJobOperationsRequest
'yi yeniden deneyerek bu hatayı giderebilirsiniz.
Sınırlamalar
Her
BatchJob
bir milyona kadar işlem destekler.Her hesapta aynı anda en fazla 100 etkin veya bekleyen iş olabilir.
Beklemede olan ve 7 günden eski işler otomatik olarak kaldırılır.
Her
AddBatchJobOperationsRequest
, maksimum 10.484.504 bayt boyutundadır. Bu sınırı aşarsanızINTERNAL_ERROR
alırsınız. Göndermeden önce isteğin 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);