ב-Google Ads API יש מגבלות על פעולות API, כמו מספר הפעולות שאפשר לשלוח בבקשה לשינוי נתונים אחת. בטבלה הבאה מפורטות חלק מהמגבלות והמכסות החשובות שכדאי להכיר.
| סוג הבקשה, המגבלה וקוד השגיאה | ||
|---|---|---|
| פעולות עם רמת הגישה Test | 15,000 פעולות API ביום בחשבונות בדיקה |
RESOURCE_EXHAUSTED
|
| פעולות עם רמת גישה של חוקר |
2,880 פעולות API ביום בחשבונות פעילים 15,000 פעולות API ביום בחשבונות בדיקה |
RESOURCE_EXHAUSTED
|
| פעולות עם רמת גישה בסיסית | 15,000 פעולות API ביום בחשבונות בדיקה וגם בחשבונות פעילים |
RESOURCE_EXHAUSTED
|
| פעולות עם רמת גישה רגילה | מספר בלתי מוגבל של פעולות API ביום בחשבונות בדיקה ובחשבונות פעילים | לא רלוונטי |
| בקשות לשינוי נתונים | 10,000 פעולות שינוי לכל בקשה |
TOO_MANY_MUTATE_OPERATIONS
|
| בקשות לשירות תכנון | 1 QPS |
RESOURCE_EXHAUSTED
|
| בקשות של שירות העלאת ההמרות | 2,000 המרות לכל בקשה |
TOO_MANY_CONVERSIONS_IN_REQUEST
|
| בקשות שירות בנושא חיוב ותקציב חשבון | פעולה אחת לכל בקשה לשינוי נתונים |
TOO_MANY_MUTATE_OPERATIONS
|
מגבלות יומיות על פעולות API
מגבלות השימוש היומי ב-API מבוססות על מספר פעולות ה-API שבוצעו על ידי הפרויקט שלכם ב-Google Cloud. פעולות API הן הסכום הכולל של בקשות Search ו-SearchStream, פעולות שינוי נפרדות ובקשות אחרות לשירות. המגבלות על פעולות יומיות ב-API תלויות ברמת הגישה ל-API של הפרויקט שלכם ב-Google Cloud. במדריך לרמות גישה ולשימוש מותר מפורטות מגבלות ספציפיות על פעולות ב-API לכל רמת גישה.
בקשות שמפרות את המגבלות האלה נדחות עם השגיאה:
RESOURCE_EXHAUSTED.
מגבלות של gRPC
כל ספריות הלקוח של Google Ads API משתמשות ב-gRPC כדי ליצור בקשות ותגובות. כברירת מחדל, גודל ההודעה ב-gRPC הוא 4MB, אבל בספריות הלקוח שלנו גודל ההודעה המקסימלי מוגדר ל-64MB כדי לשפר את היעילות.
מספר התשובות לא יכול לחרוג מהמגבלה הזו. לדוגמה, בקשת חיפוש שכוללת הרבה שדות עשויה ליצור תגובה שגודלה עולה על 64MB. כדי לא להגיע למגבלה הזו, אפשר לצמצם את מספר השדות שנבחרו או להשתמש בסטרימינג. במקרה של שינויים, כדאי לשלוח פחות פעולות בכל בקשה.
בקשות שמפירות את המגבלה הזו לא ייצרו את השגיאה GoogleAdsError, אלא את השגיאה RESOURCE_EXHAUSTED (קוד gRPC 8 / HTTP 429). אפשר לעיין ברשימת קודי השגיאה וההודעות של gRPC.
בקשות לשינוי נתונים
בנוסף לכך שהבקשה נספרת במכסת הפעולות היומית של המשתמש, בקשת mutate לא יכולה להכיל יותר מ-10,000 פעולות mutate לכל בקשה.
בקשות שמפירות את המגבלה הזו נדחות עם השגיאה:
TOO_MANY_MUTATE_OPERATIONS.
בהמשך מפורטות מגבלות נוספות ושיקולים נוספים לגבי שירותים ספציפיים וסוגי בקשות ספציפיים.
בקשות חיפוש
בקשת Search או SearchStream נספרת כפעולה אחת במכסת הפעולות היומית של המשתמש. בקשה אחת של SearchStream נספרת כפעולת API אחת, ללא קשר למספר האצוות.
בקשות עם מספור עמודים
בקשות עם מספור עמודים (לדוגמה, בקשות שמכילות next_page_token חוקי) לא נספרות במכסת הפעולות היומית של המשתמש.
עם זאת, בקשות עימוד שמכילות טוקן דף שפג תוקפו או שהוא לא תקין ייצרו חריגה וייכללו במכסת הפעולות היומית.
פרטים נוספים על חלוקה לדפים זמינים במאמר בנושא חלוקה לדפים של תוצאות.
סוגים אחרים של בקשות
בקשה שהיא לא בקשת Mutate, Search או SearchStream נספרת כפעולה אחת במכסת הפעולות היומית של המשתמש.
דוגמאות לבקשות כאלה:
BatchJobService.ListBatchJobResultsConversionUploadService.UploadCallConversionsConversionUploadService.UploadClickConversionsOfflineUserDataJobService.AddOfflineUserDataJobOperationsOfflineUserDataJobService.CreateOfflineUserDataJobUserDataService.UploadUserData
בקשות שמחזירות חריגות ב-API
בקשות שנדחות עם GoogleAdsFailure עדיין נספרות במכסת הפעולות היומית של המשתמש.
בקשות שנכשלו אבל לא מחזירות GoogleAdsFailure, כמו שגיאה ברמת הרשת, לא ייספרו במכסת הפעולות היומית של המשתמש כי הבקשות לא יגיעו לשירות. דוגמה לכך היא כשל בחיבור לרשת.
שירות לתכנון מילות מפתח
בגלל העלות והמורכבות, השיטות הבאות של שירות תכנון מילות מפתח כפופות למגבלות נפרדות מסוגים אחרים של בקשות.
מוגבל לבקשה אחת לשנייה לכל מספר לקוח:
KeywordPlanIdeaService.GenerateKeywordIdeasKeywordPlanIdeaService.GenerateKeywordHistoricalMetricsKeywordPlanIdeaService.GenerateKeywordForecastMetrics
בקשות שמפירות את המגבלות האלה נדחות עם השגיאה:
RESOURCE_EXHAUSTED.שאילתה אחת לשנייה (QPS) מחושבת כ-60 בקשות ל-60 שניות.
מוגבל ל-2 בקשות לשנייה לכל CID:
חשוב לזכור את המגבלות האלה כשיוצרים תוכנית לשימוש במילות מפתח.
| אובייקט של תוכנית למילות מפתח | מספר מקסימלי |
|---|---|
KeywordPlan לכל חשבון |
10,000 |
KeywordPlanAdGroup לכל KeywordPlan |
200 |
KeywordPlanAdGroupKeyword לכל KeywordPlan |
10,000 |
KeywordPlanCampaignKeyword (מילות מפתח שליליות) לכל KeywordPlan |
1,000 |
KeywordPlanCampaign לכל KeywordPlan |
1 |
שירות מדדי הקהלים
השיטות הבאות ב-AudienceInsightsService כפופות למגבלות ספציפיות של מכסת שימוש.
- מוגבל לכ-200 בקשות ביום לכל מספר לקוח:
- מוגבל ל-2 בקשות לשנייה לכל פרויקט ב-Google Cloud:
שירות העלאת המרות
מוגבל ל-2,000 המרות מסוג שיחה או קליק לכל בקשה:
בקשות שמפרות את המגבלות האלה נדחות עם השגיאה:
TOO_MANY_CONVERSIONS_IN_REQUEST.
שירות להעלאת שינויי ערך המרה
מוגבל ל-2,000 שינויים של ערכי המרות לכל בקשה:
בקשות שמפרות את המגבלות האלה נדחות עם השגיאה:
TOO_MANY_ADJUSTMENTS_IN_REQUEST.
כללים לקביעת ערכי המרות
מוגבל ל-100,000 כללים לקביעת ערכי המרות לכל חשבון.
בקשות שמפרות את המגבלה הזו נדחות עם השגיאה
ResourceCountLimitExceededError.ACCOUNT_LIMIT.
אם כבר קיים בחשבון ConversionValueRuleSet עם attachment_type של CUSTOMER, צריך להוסיף את הכללים החדשים לקביעת ערך המרה לאותו סט כדי שהם יהפכו לפעילים. אם לא קיים כלל כזה לקביעת ערך המרה, צריך ליצור אותו ולהוסיף לו את הכללים לקביעת ערכי המרות, כמו שמתואר במאמר בנושא יצירת קבוצות של כללים.
שירותים שקשורים לחיוב ולתקציב החשבון
אפשר לבצע שינויים רק בחשבונות שמוגדר בהם חיוב חודשי.
בקשות שמפירות את המגבלה הזו נדחות עם השגיאה:
MUTATE_NOT_ALLOWED.מותר לבצע רק פעולה אחת בבקשות לשינוי.
בקשות שמפירות את המגבלה הזו נדחות עם השגיאה:
TOO_MANY_MUTATE_OPERATIONS.מומלץ להמתין לפחות 12 שעות בין שינויים בתקציב החשבון (
AccountBudgetאוAccountBudgetProposal) באותו חשבון. אם תבצעו שינויים לפני שיחלפו 12 שעות, יכול להיות שיהיו כשלים שלא ניתן יהיה לתקן, ורק הנציג של חשבון Google Ads יוכל לפתור אותם.
הזמנות לחשבונות של לקוחות
אפשר להזמין משתמשים חדשים לחשבונות לקוח קיימים באמצעות CustomerUserAccessInvitationService.
התכונה הזו שולחת הזמנות באימייל למשתמשים אחרים, ולכן יש פוטנציאל לשימוש לרעה בה. לכן, יש מגבלות על אופן הפעולה שלה:
משתמשים לא יכולים לקבל יותר מהזמנה אחת בהמתנה לאותו חשבון לקוח. אם נשלחת בקשה נוספת לשליחת הזמנה למשתמש שכבר יש לו הזמנה בהמתנה, השגיאה הבאה מוחזרת:
EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION.בכל רגע נתון, יכולות להיות בחשבונות לקוח עד 70 הזמנות שממתינות לתגובה. אם נשלחת בקשה שגורמת לחריגה מהערך הזה, מוחזרת השגיאה הבאה:
PENDING_INVITATIONS_LIMIT_EXCEEDED.
נתוני משתמשים
נתוני המשתמשים מנוהלים באמצעות UserDataService וOfflineUserDataJobService.
כל אובייקט UserData בפעולת create או remove מתייחס למשתמש קצה יחיד. השדה user_identifiers באובייקט UserData יחיד מוגבל ל-20 מזהים לכל היותר. חריגה מהמגבלה הזו באובייקט UserData יחיד תגרום לשגיאה OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS או UserDataError.TOO_MANY_USER_IDENTIFIERS.
טיפול במשתמשים עם יותר מ-20 מזהים
אם למשתמש קצה יחיד יש יותר מ-20 מזהים שצריך להעלות, צריך לפצל את המזהים האלה בין כמה אובייקטים של UserData. כדי לוודא ש-Google יכולה לשייך את כל המזהים האלה לאותו משתמש קצה, כל אובייקט UserData של המשתמש צריך לכלול לפחות user_identifier משותף אחד, כמו אותו hashed_email, hashed_phone_number או third_party_user_id. Google משתמשת במזהים המשותפים האלה כדי לקשר ולמזג את המידע מפעולות UserData נפרדות עם הפרופיל הנכון של משתמש הקצה.
אם אתם מסתמכים על PII כמו כתובות אימייל או מספרי טלפון מגובבים, חשוב לוודא שהם מנורמלים ומגובבים בהתאם לדרישות של Google Ads API (SHA-256, אותיות קטנות, ללא רווחים) כדי למנוע כשלים בקישור.
לדוגמה, אם למשתמש יש 30 כתובות אימייל, אפשר לשלוח שני UserData
אובייקטים שמשתפים third_party_user_id משותף (לשים את thirdPartyUserId
בתוספת אימיילים 1 עד 19 באובייקט הראשון כדי לא לחרוג מהמגבלה של 20 מזהים, ואת thirdPartyUserId בתוספת אימיילים 20 עד 30 באובייקט השני):
{
"userIdentifiers": [
{ "thirdPartyUserId": "user123" },
{ "hashedEmail": "SHA256_OF_EMAIL_1" },
// Hashed emails 2 through 18 are omitted here.
{ "hashedEmail": "SHA256_OF_EMAIL_19" }
]
}
{
"userIdentifiers": [
{ "thirdPartyUserId": "user123" },
{ "hashedEmail": "SHA256_OF_EMAIL_20" },
// Hashed emails 21 through 29 are omitted here.
{ "hashedEmail": "SHA256_OF_EMAIL_30" }
]
}
המגבלה הכוללת ל-user_identifiers בכל הפעולות ב-AddOfflineUserDataJobOperationsRequest יחיד היא 100,000 (OfflineUserDataJob יכול לקבל כמה קריאות של AddOfflineUserDataJobOperationsRequest, עד למקסימום מומלץ של 1,000,000 פעולות לכל משימה). בהעלאות סינכרוניות באמצעות
UploadUserDataRequest
(UserDataService.UploadUserData), כל בקשה מוגבלת למקסימום של 10 פעולות ו-100 user_identifiers בכל הבקשה.
סוגים אחרים של מגבלות
שדה חוזר, כמו רשימת פעולות, שמכיל יותר מדי פריטים בבקשה, עלול לגרום לשגיאה:
REQUEST_SIZE_LIMIT_EXCEEDED. יכול להיות שבעיות אחרות גורמות להודעת השגיאה הזו.
אם נתקלתם במגבלה הזו ואתם שולחים בקשות שמשתמשות בשדה חוזר, נסו לצמצם את מספר הפריטים בשדה החוזר על ידי פיצול רשימת הפעולות לכמה בקשות שינוי.
כשמבצעים שאילתה ב-GAQL, המספר המקסימלי של פריטים בסעיף IN הוא 20,000. אם חורגים מהמגבלה הזו, מוחזרת שגיאה FILTER_HAS_TOO_MANY_VALUES.