BatchJobService
の強力な機能として、一時 ID を使用できることが挙げられます。
これを行うには、新しいリソースの resource_name
を指定して負の ID を使用します。たとえば、キャンペーンを作成し、そのリソース名を customers/<YOUR_CUSTOMER_ID>/campaigns/-1
として指定した場合、後のオペレーションで広告グループを作成するときに、そのリソース名で参照できます。指定した -1
は、作成されたキャンペーンの実際の ID に自動的に置き換えられます。
一時的なリソース名を使用する場合は、次の点に注意してください。
- 一時的なリソース名は、リソースで定義された後でのみ使用できます。以下の例では、オペレーションのリストで、広告グループのオペレーションの後に広告グループのオペレーションを表示する必要があります。
- 一時的なリソース名は、ジョブまたは変更リクエスト間では記憶されません。前のジョブまたは変更リクエストで作成したリソースを参照するには、実際のリソース名を使用します。
- 単一のジョブまたは変更リクエストでは、異なるリソースタイプからの場合でも、各一時リソース名は一意の負の数を使用する必要があります。一時 ID が単一のジョブまたは変更リクエストで再利用されると、エラーが返されます。
例
上記の状況の具体的な例で、キャンペーン、広告グループ、広告を 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"
...
}
}
},
]
広告グループには新しい一時 ID が使用されます。キャンペーンで使用した -1
は再利用できないため、この広告グループの作成時に広告グループも参照します。広告グループ自体は、リクエストの以前のオペレーションでキャンペーンのために設定したリソース名を参照します。一方、ad_group_ad_operation
の resource_name
は、それ以上のオペレーションが参照されていないため、は必要ありません。