অস্থায়ী আইডি ব্যবহার করুন

অস্থায়ী সম্পদের নাম

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 রিকোয়েস্ট বা ব্যাচ জবের মাধ্যমে একটি ক্যাম্পেইন, একটি অ্যাড গ্রুপ এবং একটি অ্যাড যোগ করতে চান। আপনি GoogleAdsService.Mutate অথবা BatchJobService.AddBatchJobOperations রিকোয়েস্ট পেলোডে mutateOperations অ্যারেটিকে নিচের 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 রিটার্ন করে।