استفاده از شناسه های موقت

یکی از ویژگی های قدرتمند 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"
        ...
      }
    }
  },
]

توجه داشته باشید که یک شناسه موقت جدید برای گروه تبلیغات استفاده می‌شود، زیرا نمی‌توانیم از -1 که برای کمپین استفاده کرده‌ایم دوباره استفاده کنیم، و همچنین هنگام ایجاد یک تبلیغ گروه تبلیغاتی به این گروه تبلیغاتی ارجاع می‌دهیم. خود گروه آگهی به نام منبعی که ما برای کمپین در عملیات قبلی ایجاد کردیم در درخواست ارجاع می دهد، در حالی که resource_name در ad_group_ad_operation ضروری نیست زیرا هیچ عملیات دیگری به آن ارجاع نمی دهد.