כשמשתמשים ב-BatchJobService, חשוב להקפיד על ההנחיות הבאות:
שיפור קצב העברת הנתונים
- עדיף לבצע פחות עבודות גדולות מאשר הרבה עבודות קטנות. 
- סדר הפעולות שהועלו לפי סוג הפעולה. לדוגמה, אם העבודה שלכם כוללת פעולות להוספת קמפיינים, קבוצות של מודעות וקריטריונים לקבוצות של מודעות, צריך לסדר את הפעולות בהעלאה כך שכל הפעולות שקשורות לקמפיין יופיעו ראשונות, ואחריהן כל הפעולות שקשורות לקבוצות של מודעות, ולבסוף כל הפעולות שקשורות לקריטריונים לקבוצות של מודעות. 
- בפעולות מאותו סוג, כדאי לקבץ אותן לפי משאב האב כדי לשפר את הביצועים. לדוגמה, אם יש לכם סדרה של - AdGroupCriterionOperationאובייקטים, יכול להיות שיותר יעיל לקבץ פעולות לפי קבוצת מודעות, במקום לערבב פעולות שמשפיעות על קריטריונים של קבוצות מודעות בקבוצות מודעות שונות.
איך למנוע בעיות של פעולות מקבילות
- כששולחים כמה משימות בו-זמנית לאותו חשבון, כדאי לנסות להקטין את הסיכוי שמשימות יפעלו על אותם אובייקטים באותו הזמן, תוך שמירה על גודל משימה גדול. הרבה משימות לא גמורות, שהסטטוס שלהן הוא - RUNNING, מנסות לשנות את אותה קבוצה של אובייקטים, מה שעלול להוביל לתנאים דומים לקיפאון שגורמים להאטה משמעותית ואפילו לכשלים במשימות.
- אל תשלחו כמה פעולות שמשנות את אותו אובייקט באותה משימה, כי התוצאה יכולה להיות בלתי צפויה. 
אחזור תוצאות בצורה אופטימלית
- לא כדאי לבדוק את סטטוס העבודה בתדירות גבוהה מדי, כדי שלא תסתכנו בהגעה למגבלת הקצב וקבלת שגיאות. 
- אל תאחזרו יותר מ-1,000 תוצאות לכל דף. יכול להיות שהשרת יחזיר פחות מזה בגלל עומס או גורמים אחרים. 
- סדר התוצאות יהיה זהה לסדר ההעלאה. 
הנחיות נוספות לשימוש
- אפשר להגדיר גבול עליון למשך הזמן שבו מותר להפעיל עבודת אצווה לפני שהיא תבוטל. כשיוצרים עבודת אצווה חדשה, מגדירים את השדה - metadata.execution_limit_secondsלמגבלת הזמן הרצויה בשניות. אם לא מגדירים את- metadata.execution_limit_seconds, אין הגבלת זמן שמוגדרת כברירת מחדל.
- מומלץ להוסיף עד 1,000 פעולות לכל - AddBatchJobOperationsRequestולהשתמש ב-- sequence_tokenכדי להעלות את שאר הפעולות לאותה משימה. בהתאם לתוכן הפעולות, יותר מדי פעולות ב-- AddBatchJobOperationsRequestאחד עלולות לגרום לשגיאה- REQUEST_TOO_LARGE. כדי לפתור את השגיאה הזו, צריך לצמצם את מספר הפעולות ולנסות שוב את- AddBatchJobOperationsRequest.
מגבלות
- כל - BatchJobתומך בעד מיליון פעולות.
- בכל חשבון יכולות להיות עד 100 משימות פעילות או בהמתנה בו-זמנית. 
- משימות בהמתנה שנוצרו לפני יותר מ-7 ימים מוסרות באופן אוטומטי. 
- החל מגרסה v22, כל בקשה מסוג - AddBatchJobOperationsמוגבלת ל-10,000 פעולות שינוי לכל בקשה.
- החל מגרסה 22, בשדה - page_sizeב-- ListBatchJobResultsRequest:- אם הערך של page_sizeלא מוגדר או שהוא 0, ברירת המחדל היא 1,000.
- אם הערך של page_sizeגדול מ-1,000 או קטן מ-0, ה-API מחזיר שגיאה מסוגINVALID_PAGE_SIZE.
 
- אם הערך של 
- הגודל המקסימלי של כל - 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);