সাময়িক আইডি ব্যবহার করা

অস্থায়ী রিসোর্স নাম

BatchJobService সাময়িক রিসোর্স নামকে সাপোর্ট করে যা একই ব্যাচ জবের মধ্যে পরবর্তী অপারেশনে রেফারেন্স হিসেবে ব্যবহার করা যেতে পারে—এর মধ্যে sequence_token-এর সাথে আপলোড করা একাধিক ক্রমানুযায়ী AddBatchJobOperations অনুরোধ অন্তর্ভুক্ত। এটি আপনাকে সার্ভার-সাইড আইডি অ্যাসাইন করার আগে একটি ব্যাচ জবে ক্যাম্পেন এবং এর উপর নির্ভরশীল বিজ্ঞাপন গ্রুপ, বিজ্ঞাপন এবং মাপকাঠি তৈরি করতে দেয়। নিম্নলিখিত সাধারণ নিয়ম ও উদাহরণে, একটি অনুরোধ বলতে সম্পূর্ণ BatchJob-এর সব AddBatchJobOperations আপলোডকে বোঝায়।

একই মিউটেট অনুরোধ বা ব্যাচ জবের মধ্যে নতুন তৈরি করা রিসোর্স রেফারেন্স করতে, নতুন রিসোর্সের resource_name ফিল্ডে একটি নেগেটিভ পূর্ণসংখ্যা আইডি (যেমন -1 বা -2, 0 বাদ দিয়ে) উল্লেখ করুন। যেমন, ব্যাচ অনুরোধে ক্যাম্পেন তৈরি করার সময়, এর রিসোর্স নাম customers/CUSTOMER_ID/campaigns/-1 হিসেবে সেট করুন। একই অনুরোধের মধ্যে পরবর্তী অপারেশনে বিজ্ঞাপন গ্রুপ তৈরি করার সময়, অভিভাবক ক্যাম্পেন হিসেবে customers/CUSTOMER_ID/campaigns/-1-এর রেফারেন্স দিন। API অটোমেটিক -1-এর জায়গায় ক্যাম্পেন তৈরি করার সময় জেনারেট হওয়া আসল ক্যাম্পেন আইডি বসিয়ে দেয়।

ব্যবহার সংক্রান্ত সীমাবদ্ধতা

সাময়িক রিসোর্স নাম ব্যবহার করার সময় নিম্নলিখিত নিয়ম মনে রাখবেন:

  • ক্রম গুরুত্বপূর্ণ: আপনি কোনও অস্থায়ী রিসোর্সের নাম তখনই রেফার করতে পারবেন, যখন সেটি ডিফাইন করবেন। অপারেশনের তালিকায়, নির্ভরশীল অপারেশনকে (যেমন, বিজ্ঞাপন গ্রুপ তৈরি করা) অবশ্যই সেই অপারেশনের পরে দেখাতে হবে যেটি এর প্যারেন্ট রিসোর্স তৈরি করে (যেমন, ক্যাম্পেন তৈরি করা)।
  • সিঙ্গেল-রিকোয়েস্ট বা ব্যাচ-জব স্কোপ: অস্থায়ী রিসোর্সের নাম আলাদা আলাদা জব বা মিউটেট রিকোয়েস্টের ক্ষেত্রে একই থাকে না। আগের কোনও জব বা মিউটেশন অনুরোধে তৈরি করা কোনও রিসোর্সকে রেফার করতে, সেটির আসল সিস্টেম-জেনারেটেড রিসোর্স নাম ব্যবহার করুন।
  • গ্লোবাল ইউনিকনেস: একটি জব বা মিউটেট রিকোয়েস্টের মধ্যে, প্রতিটি অস্থায়ী রিসোর্সের নাম সব রিসোর্স টাইপ জুড়ে একটি অনন্য নেগেটিভ পূর্ণসংখ্যা ব্যবহার করতে হবে। যেমন, আপনি একই অনুরোধে ক্যাম্পেন ও বিজ্ঞাপন গ্রুপ, দুটিতেই -1 অ্যাসাইন করতে পারবেন না। একই অনুরোধ বা ব্যাচ জবের মধ্যে সাময়িক আইডি আবার ব্যবহার করলে NewResourceCreationError.DUPLICATE_TEMP_IDS সমস্যা হয়।

পেলোডের উদাহরণ

ধরুন, আপনি একটি API অনুরোধ বা ব্যাচ জবে ক্যাম্পেন, বিজ্ঞাপন গ্রুপ ও বিজ্ঞাপন যোগ করতে চান। আপনি mutateOperations অ্যারেটি GoogleAdsService.Mutate বা BatchJobService.AddBatchJobOperations অনুরোধের পে-লোডে স্ট্রাকচার করতে পারেন, যেমনটি নিম্নলিখিত REST JSON উদাহরণে দেখানো হয়েছে (সংক্ষিপ্ততার জন্য অন্যান্য প্রয়োজনীয় রিসোর্স ফিল্ড বাদ দেওয়া হয়েছে):

{
  "mutateOperations": [
    {
      "campaignOperation": {
        "create": {
          "resourceName": "customers/CUSTOMER_ID/campaigns/-1"
        }
      }
    },
    {
      "adGroupOperation": {
        "create": {
          "resourceName": "customers/CUSTOMER_ID/adGroups/-2",
          "campaign": "customers/CUSTOMER_ID/campaigns/-1"
        }
      }
    },
    {
      "adGroupAdOperation": {
        "create": {
          "adGroup": "customers/CUSTOMER_ID/adGroups/-2"
        }
      }
    }
  ]
}

এই উদাহরণে নিম্নলিখিত গুরুত্বপূর্ণ বিবরণ দেখানো হয়েছে:

  • বিজ্ঞাপন গ্রুপটি একটি নতুন অস্থায়ী আইডি (-2) ব্যবহার করে কারণ -1 আগেই ক্যাম্পেনে অ্যাসাইন করা হয়েছে ।
  • বিজ্ঞাপন গ্রুপটি পূর্ববর্তী অপারেশনে তৈরি করা ক্যাম্পেনের সাথে নিজেকে লিঙ্ক করতে customers/CUSTOMER_ID/campaigns/-1-কে রেফারেন্স হিসেবে ব্যবহার করে।
  • অনুরোধে নতুন বিজ্ঞাপনটি উল্লেখ করা না থাকার কারণে adGroupAdOperation রেফারেন্স customers/CUSTOMER_ID/adGroups/-2 ও বাদ দেওয়া হয়েছে resourceName।

ব্যাচ জবে সমস্যা ম্যানেজ করা

কারণ ব্যাচ জবে স্ট্যান্ডার্ড অপারেশন আংশিক ব্যর্থতা চালু রেখে এক্সিকিউট করা হয় (তবে অ্যাটমিক সাব-ব্যাচের মধ্যে নয়), কোনও সাময়িক আইডি সহ পেরেন্ট রিসোর্স যাচাইকরণে ব্যর্থ হলে, সেই সাময়িক আইডি রেফারেন্স করা কোনও নির্ভরশীল চাইল্ড অপারেশন NewResourceCreationError.TEMP_ID_RESOURCE_HAD_ERRORS সহ ব্যর্থ হয়। একই ব্যাচ জব জুড়ে একাধিক create অপারেশনে একই নেগেটিভ আইডি বারবার ব্যবহার করলে NewResourceCreationError.DUPLICATE_TEMP_IDS রিটার্ন করে। নতুন রিসোর্স (create) তৈরি করার সময় বা নতুন তৈরি প্যারেন্ট রিসোর্স রেফারেন্স করার সময় শুধুমাত্র অস্থায়ী আইডি বৈধ হয়; যেমন, AddBatchJobOperations কল করার সময় AdGroupCriterionOperation.remove-এ নেগেটিভ অস্থায়ী আইডি পাস করলে RequestError.RESOURCE_NAME_MALFORMED রিটার্ন করে।