Beachten Sie bei der Verwendung von
BatchJobService
Durchsatz verbessern
Weniger größere Aufträge werden gegenüber vielen kleineren Aufträgen bevorzugt.
Sortieren Sie hochgeladene Vorgänge nach Vorgangstyp. Wenn Ihr Job zum Beispiel enthält Vorgänge zum Hinzufügen von Kampagnen, Anzeigengruppen und Anzeigengruppenkriterien. ordnen Sie die Vorgänge im Upload so an, dass alle Kampagnen Vorgänge stehen an erster Stelle, gefolgt von allen die Anzeigengruppenvorgänge und schließlich alle Operationen für Kriteriums-Anzeigengruppen.
Innerhalb von Vorgängen desselben Typs kann die Leistung verbessert werden, indem sie gruppiert werden. nach übergeordneter Ressource. Wenn Sie z. B. eine Reihe von
AdGroupCriterionOperation
-Objekten hat, kann das Gruppieren effizienter sein Operationen nach Anzeigengruppe gruppieren, statt Operationen zu vermischen, die Anzeigen betreffen Anzeigengruppenkriterien erstellen.
Gleichzeitigkeitsprobleme vermeiden
Wenn Sie mehrere zeitgleiche Aufträge für dasselbe Konto senden, versuchen Sie, die Wahrscheinlichkeit, dass Jobs gleichzeitig für dieselben Objekte ausgeführt werden, während große Aufträge pflegen. Viele nicht abgeschlossene Aufträge (mit dem Status
RUNNING
), die versuchen, denselben Satz von Objekten zu bearbeiten, kann zu blockadeähnlichen Bedingungen führen. was zu einer erheblichen Verlangsamung und sogar zu Jobfehlern führt.Senden Sie nicht mehrere Vorgänge, die dasselbe Objekt im selben da das Ergebnis unvorhersehbar sein kann.
Ergebnisse optimal abrufen
Fragen Sie den Jobstatus nicht zu häufig ab, da Sie sonst das Ratenlimit erreichen könnten. Fehler.
Es dürfen nicht mehr als 1.000 Ergebnisse pro Seite abgerufen werden. Der Server könnte aufgrund der Auslastung oder anderer Faktoren weniger aus.
Die Reihenfolge der Ergebnisse entspricht der Uploadreihenfolge.
Zusätzliche Hinweise zur Verwendung
Sie können eine Obergrenze für die Ausführungsdauer eines Batchjobs festlegen, bevor abgesagt wird. Legen Sie beim Erstellen eines neuen Batch-Auftrags
metadata.execution_limit_seconds
im Feld das gewünschte Zeitlimit in Sekunden ein. Es gibt keine Standardzeit Limit, wennmetadata.execution_limit_seconds
nicht festgelegt ist.Es wird empfohlen,nicht mehr als 1.000 Vorgänge pro
AddBatchJobOperationsRequest
und verwenden Sie diesequence_token
um die übrigen Vorgänge in denselben Auftrag hochzuladen. Je nach Inhalt der Vorgänge, zu viele Vorgänge in einemAddBatchJobOperationsRequest
könnte einenREQUEST_TOO_LARGE
-Fehler verursachen. Ich kann diesen Fehler beheben, indem er die Anzahl der Vorgänge reduziert und denAddBatchJobOperationsRequest
Beschränkungen
Pro
BatchJob
werden bis zu eine Million unterstützt. Geschäftsabläufe.Jedes Konto kann bis zu 100 aktive oder ausstehende Jobs gleichzeitig enthalten.
Ausstehende Aufträge, die älter als sieben Tage sind, werden automatisch entfernt.
Jedes
AddBatchJobOperationsRequest
maximal 10.484.504 Byte. Wenn Sie diesen Wert überschreiten, erhalten Sie einINTERNAL_ERROR
. Sie können die Größe der Anfrage vor dem und gegebenenfalls entsprechende Maßnahmen ergreifen.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);