שימוש במזהים זמניים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
תכונה חשובה של BatchJobService
היא התמיכה בשימוש במזהים זמניים.
כדי לעשות זאת, צריך לציין את resource_name
של המשאב החדש כדי להשתמש במזהה שלילי. לדוגמה, נניח שאתם יוצרים קמפיין ומציינים את שם המשאב שלו כ-customers/<YOUR_CUSTOMER_ID>/campaigns/-1
. כשיוצרים את קבוצת המודעות בפעולה מאוחרת יותר, אפשר להפנות אליה באמצעות שם המשאב הזה, והמערכת תחליף אוטומטית את -1
שציינתם במזהה בפועל של הקמפיין שנוצר.
ריכזנו כמה דברים שחשוב לזכור כשמשתמשים בשמות זמניים של משאבים:
- אפשר להשתמש בשם משאב זמני רק אחרי שהוא מוגדר במשאב. בדוגמה הבאה, הפעולה של קבוצת המודעות צריכה להופיע אחרי הפעולה של הקמפיין ברשימת הפעולות.
- שמות משאבים זמניים לא נשמרים בין משימות או בקשות לשינוי.
כדי להפנות למשאב שנוצר בעבודה קודמת או בבקשת שינוי, צריך להשתמש בשם המשאב בפועל.
- בבקשה יחידה של עבודה או שינוי, כל שם משאב זמני חייב להיות מספר שלילי ייחודי, גם אם הם מסוגי משאבים שונים. אם מזהה זמני נעשה בו שימוש חוזר במשימה יחידה או בבקשת שינוי, תוחזר שגיאה.
דוגמה
נניח שאתם רוצים להוסיף קמפיין, קבוצת מודעות ומודעה בבקשת API אחת. יוצרים מבנה לבקשה שדומה למבנה הבא:
mutate_operations: [
{
campaign_operation: {
create: {
resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
...
}
}
},
{
ad_group_operation: {
create: {
resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
...
}
}
},
{
ad_group_ad_operation: {
create: {
ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
...
}
}
},
]
מערכת Google Ads משתמשת במזהה זמני חדש לקבוצת המודעות, כי אי אפשר להשתמש שוב במזהה -1
שבו השתמשנו לקמפיין. אנחנו גם מתייחסים לקבוצת המודעות הזו כשיוצרים מודעה ברמת קבוצת המודעות. קבוצת המודעות עצמה מפנה לשם המשאב שהגדרנו לקמפיין בפעולה קודמת בבקשה, ואילו resource_name
ב-ad_group_ad_operation
לא נחוץ כי אין פעולה נוספת שמפנה אליו.
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-09-05 (שעון UTC).
[null,null,["עדכון אחרון: 2025-09-05 (שעון UTC)."],[[["\u003cp\u003e\u003ccode\u003eBatchJobService\u003c/code\u003e allows the use of temporary IDs (negative numbers) for new resources within a single job, enabling you to reference them in subsequent operations within the same request.\u003c/p\u003e\n"],["\u003cp\u003eTemporary resource names must be unique within a single job or mutate request and are not remembered across different jobs or requests; use actual resource names for referencing resources created earlier.\u003c/p\u003e\n"],["\u003cp\u003eResources with temporary IDs must be defined before being referenced by other operations within the same request, ensuring the order of operations reflects dependencies.\u003c/p\u003e\n"]]],[],null,["# Using temporary IDs\n\nA powerful feature of [`BatchJobService`](/google-ads/api/reference/rpc/v21/BatchJobService) is that\nit supports the use of temporary IDs.\n\nYou can do this by specifying the new resource's `resource_name` to use a\nnegative ID. For example, suppose you create a campaign and specify its resource name\nas `customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1`. When you create the\nad group in a later operation, you can then reference it by that resource name\nand the `-1` you specified will be replaced by the actual ID of the created\ncampaign automatically.\n\nHere are some things to keep in mind when using temporary resource names:\n\n- A temporary resource name can only be used after it's been defined in a resource. In the following example, the ad group operation would have to appear after the campaign operation in the list of operations.\n- Temporary resource names are not remembered across jobs or mutate requests. To reference a resource created in a previous job or mutate request, use its actual resource name.\n- For a single job or mutate request, each temporary resource name must use a unique negative number, even if they are from different resource types. If a temporary ID is reused in a single job or mutate request, then an error is returned.\n\n### Example\n\nSuppose you want to add a campaign, an ad group, and an ad in a single API\nrequest. You would create a structure for your request analogous to the\nfollowing: \n\n mutate_operations: [\n {\n campaign_operation: {\n create: {\n resource_name: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1\",\n ...\n }\n }\n },\n {\n ad_group_operation: {\n create: {\n resource_name: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/adGroups/-2\",\n campaign: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1\"\n ...\n }\n }\n },\n {\n ad_group_ad_operation: {\n create: {\n ad_group: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/adGroups/-2\"\n ...\n }\n }\n },\n ]\n\nA new temporary ID is used for the ad group, since we can't reuse the `-1` that\nwe used for the campaign. We also reference this ad group when creating an ad\ngroup ad. The ad group itself references the resource name we established for\nthe campaign in an earlier operation in the request, while `resource_name` in\n`ad_group_ad_operation` is not necessary since no further operation is\nreferencing it."]]