BatchJobService kullanırken aşağıdaki yönergeleri göz önünde bulundurun.
İşleme hızını iyileştirme
Çok sayıda küçük iş yerine 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şinizde kampanya, reklam grubu ve reklam grubu ölçütü ekleme işlemleri varsa yüklemenizdeki işlemleri, önce tüm kampanya işlemleri, ardından tüm reklam grubu işlemleri ve son olarak tüm reklam grubu ölçütü işlemleri olacak ş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
AdGroupCriterionOperationnesneniz varsa reklam grubu ölçütlerini etkileyen işlemleri farklı reklam gruplarında karıştırmak yerine işlemleri reklam grubuna göre gruplandırmak daha verimli olabilir.
Toplu bölmede atomiklik
Google Ads API, gönderilen bir toplu işteki işlemleri işlenmek üzere daha küçük alt toplu işlere bölebilir. Bir toplu işlemde, AssetGroup içinde listeleme grubu değişiklikleri ve AdGroup gibi ilgili işlemleri art arda gruplandırmazsanız Google Ads API bu işlemleri farklı alt toplu işlemlere bölebilir. Bu ayrım, değişikliğin tamamen başarısız olmasına veya hesabın tutarsız bir durumda kalmasına neden olabilir.
Mantıksal gruplandırma
AssetGroupListingGroupFilterOperation
AssetGroup içindeki listeleme gruplarını yönetir. Bu, Maksimum Performans kampanyalarında yaygın bir durumdur.
AdGroupCriterionOperation, AdGroup içindeki listeleme gruplarını yönetir. Bu, standart Alışveriş kampanyalarında yaygındır. Her ikisi de ürün hedeflemeyi tanımlamak için kullanılır. Her iki bağlamda da ürün hedefleme hiyerarşisini etkileyen değişiklikler yaparsanız bu işlemlerin birlikte uygulanmasını sağlamak için toplu işinizde bu işlemleri art arda gruplandırın.
Veri tutarlılığı
Veri tutarlılığını korumak ve kısmi güncellemeleri önlemek için ilgili listeleme grubu işlemlerini toplu işinize sırayla ekleyin. Bu sıralama, API'nin toplu işleri bölme mantığına göre bunları atomik alt toplu işler halinde gruplandırmaya yardımcı olur. Böylece hesabınızın tutarsız bir durumda kalması önlenir.
Eşzamanlılık sorunlarını önleme
Aynı hesap için eşzamanlı olarak birden fazla iş gönderirken büyük iş boyutlarını koruyarak işlerin aynı anda aynı nesneler üzerinde çalışmasını önlemeye çalışın. Durumu
RUNNINGolan birçok tamamlanmamış iş, aynı nesne grubunu değiştirmeye çalışır. Bu durum, ciddi yavaşlamaya ve hatta iş hatalarına neden olan kilitlenme benzeri koşullara yol açabilir.Aynı iş içinde aynı nesneyi değiştiren birden fazla işlem göndermeyin. Aksi takdirde sonuç tahmin edilemez olabilir.
Sonuçları en iyi şekilde alma
İş durumunu çok sık yoklamayın. Aksi takdirde, sıklık sınırı hatası alabilirsiniz.
Sayfa başına 1.000'den fazla sonuç almayın. Sunucu, yük veya başka 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 çalışmasına izin verilecek süre için üst sınır belirleyebilirsiniz. Yeni bir toplu iş oluştururken
metadata.execution_limit_secondsalanını tercih ettiğiniz zaman sınırına (saniye cinsinden) ayarlayın.metadata.execution_limit_secondsayarlanmamışsa varsayılan zaman sınırı yoktur.AddBatchJobOperationsRequestbaşına en fazla 1.000 işlem eklemeniz ve işlemlerin geri kalanını aynı işe yüklemek içinsequence_tokenkullanmanız önerilir. İşlemlerin içeriğine bağlı olarak, tek birAddBatchJobOperationsRequestiçinde çok fazla işlem yapılmasıREQUEST_TOO_LARGEhatasına neden olabilir. İşlem sayısını azaltıpAddBatchJobOperationsRequestiş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 bekleyen iş olabilir.
7 günden eski bekleyen işler otomatik olarak kaldırılır.
v22 itibarıyla her
AddBatchJobOperationsisteğinde istek başına 10.000 değiştirme işlemi sınırı vardır.v22'den itibaren,
page_sizealanı içinListBatchJobResultsRequest:page_sizeayarlanmamışsa veya 0 ise varsayılan olarak maksimum 1.000 değeri kullanılır.page_size1.000'i aşarsa veya 0'dan küçükse APIINVALID_PAGE_SIZEhatası döndürür.
v23 itibarıyla her
AddBatchJobOperationsRequestmaksimum 41.937.920 bayt boyutundadır. Bu sınırı aşarsanızINTERNAL_ERRORalırsınız. İsteğin boyutunu göndermeden önce belirleyebilir ve çok büyükse uygun işlemi yapabilirsiniz.Java
static final int MAX_REQUEST_BYTES = 41_937_920; ... (code to get the request object) int sizeInBytes = request.getSerializedSize();Python
from google.ads.googleads.client import GoogleAdsClient MAX_REQUEST_BYTES = 41937920 ... (code to get the request object) size_in_bytes = request._pb.ByteSize()Ruby
require 'google/ads/google_ads' MAX_REQUEST_BYTES = 41937920 ... (code to get the request object) size_in_bytes = request.to_proto.bytesizePHP
use Google\Ads\GoogleAds\V16\Resources\Campaign; const MAX_REQUEST_BYTES = 41937920; ... (code to get the request object) $size_in_bytes = $campaign->byteSize() . PHP_EOL;.NET
using Google.Protobuf; const int MAX_REQUEST_BYTES = 41937920; ... (code to get the request object) int sizeInBytes = request.ToByteArray().Length;Perl
use Devel::Size qw(total_size); use constant MAX_REQUEST_BYTES => 41937920; ... (code to get the request object) my $size_in_bytes = total_size($request);
Tek Mutasyon İşlemi Boyutu
Genel istek daha büyük olabilir ancak toplu işlemdeki tek bir değiştirme işleminin boyutu 10.484.488 bayt (yaklaşık 10,48 MB) ile sınırlıdır.