พิจารณาหลักเกณฑ์เหล่านี้เมื่อใช้
BatchJobService
ปรับปรุงอัตราการส่งข้อมูล
งานที่มีขนาดใหญ่น้อยกว่างานที่มีขนาดเล็กจำนวนมากจะดีกว่า
เรียงลำดับการดำเนินการที่อัปโหลดตามประเภทการดำเนินการ เช่น หากงานของคุณ มีการดำเนินการเพื่อเพิ่มเกณฑ์แคมเปญ กลุ่มโฆษณา และกลุ่มโฆษณา เรียงลำดับการดำเนินการในการอัปโหลดของคุณเพื่อให้แคมเปญทั้งหมด การดำเนินการเป็นลำดับแรก ตามด้วย การดำเนินการของกลุ่มโฆษณา และสุดท้ายคือ การดำเนินการเกณฑ์ของกลุ่มโฆษณา
ภายในการดำเนินการประเภทเดียวกัน จะปรับปรุงประสิทธิภาพในการจัดกลุ่มการดำเนินการได้ ตามแหล่งข้อมูลระดับบนสุด เช่น ถ้าคุณมีชุดของ
AdGroupCriterionOperation
ออบเจ็กต์จะช่วยให้จัดกลุ่มได้อย่างมีประสิทธิภาพยิ่งขึ้น การดำเนินการตามกลุ่มโฆษณา มากกว่าที่จะปะปนกันที่ส่งผลต่อโฆษณา เกณฑ์กลุ่มในกลุ่มโฆษณาต่างๆ กัน
หลีกเลี่ยงปัญหาการเกิดขึ้นพร้อมกัน
เมื่อส่งงานหลายงานพร้อมกันในบัญชีเดียวกัน ให้ลองลด ถึงความเป็นไปได้ที่งานจะดำเนินงานบนออบเจ็กต์เดียวกันในเวลาเดียวกัน ที่รักษาปริมาณงานขนาดใหญ่ไว้ได้ งานที่ยังไม่เสร็จหลายงาน (มีสถานะ
RUNNING
) นั้น การพยายามกลายพันธุ์วัตถุชุดเดียวกัน อาจนำไปสู่สภาพที่เหมือนการติดตาย ส่งผลให้งานช้าลงอย่างมากและแม้กระทั่งถึงงานล้มเหลวอย่าส่งการดำเนินการหลายรายการที่ดัดแปลงวัตถุเดียวกัน เพราะผลลัพธ์นั้นคาดเดาไม่ได้
ดึงผลลัพธ์อย่างมีประสิทธิภาพ
อย่าสำรวจสถานะของงานบ่อยเกินไป มิฉะนั้นคุณอาจเสี่ยงที่จะถึงขีดจำกัดของอัตราคำขอ
อย่าเรียกผลลัพธ์เกิน 1,000 รายการต่อหน้า เซิร์ฟเวอร์อาจส่งคืน น้อยกว่านั้นเนื่องจากภาระหรือปัจจัยอื่นๆ
ลำดับของผลลัพธ์จะเหมือนกับลำดับการอัปโหลด
คำแนะนำเพิ่มเติมในการใช้งาน
คุณสามารถตั้งค่าขอบเขตสูงสุดว่าจะอนุญาตให้งานแบบกลุ่มทำงานเป็นเวลานานเท่าใดก่อน กำลังถูกยกเลิก เมื่อสร้างงานแบบกลุ่มใหม่ ให้ตั้งค่าพารามิเตอร์
metadata.execution_limit_seconds
เป็นขีดจำกัดเวลาที่คุณต้องการ หน่วยเป็นวินาที ไม่มีเวลาเริ่มต้น หากไม่ได้ตั้งค่าmetadata.execution_limit_seconds
ไว้ขอแนะนําให้เพิ่มการดําเนินการไม่เกิน 1,000 รายการต่อ
AddBatchJobOperationsRequest
และใช้sequence_token
เพื่ออัปโหลดการดำเนินการที่เหลือไปยังงานเดียวกัน ขึ้นอยู่กับ ของการดำเนินงาน มากเกินไป การดำเนินงานเดียวAddBatchJobOperationsRequest
อาจทำให้เกิดข้อผิดพลาดREQUEST_TOO_LARGE
คุณ สามารถจัดการข้อผิดพลาดนี้ได้โดยลดจำนวนการดำเนินการ และลองAddBatchJobOperationsRequest
ข้อจำกัด
BatchJob
แต่ละรายการรองรับได้สูงสุด 1 ล้านครั้ง การดำเนินงานแต่ละบัญชีจะมีงานที่กำลังทำหรือรอดำเนินการพร้อมกันได้สูงสุด 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()
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);