সমস্যা সমাধান

ভিডিও: 2019 ওয়ার্কশপ থেকে ত্রুটি হ্যান্ডলিং টক দেখুন

একটি ভুল পরিবেশ সেটআপ, আপনার সফ্টওয়্যারে একটি বাগ, বা ব্যবহারকারীর কাছ থেকে অবৈধ ইনপুটের কারণে ত্রুটিগুলি হতে পারে৷ উৎস যাই হোক না কেন, আপনাকে সমস্যাটি সমাধান করতে হবে এবং হয় আপনার কোড ঠিক করতে হবে বা ব্যবহারকারীর ত্রুটি সামলাতে যুক্তি যোগ করতে হবে। Google Ads API থেকে সমস্যা সমাধানের সময় এই নির্দেশিকাটি কিছু সেরা অনুশীলন নিয়ে আলোচনা করে।

সংযোগ নিশ্চিত করা

  1. নিশ্চিত করুন যে আপনার Google বিজ্ঞাপন API-এ অ্যাক্সেস আছে এবং একটি সঠিক সেটআপ আছে। যদি আপনার প্রতিক্রিয়া কোনো HTTP ত্রুটি ফেরত দেয়, তাহলে নিশ্চিত হয়ে নিন যে আপনি সেগুলিকে সাবধানে মোকাবেলা করেছেন এবং আপনি আপনার কোড থেকে যে পরিষেবাগুলি ব্যবহার করতে চান সেগুলিতে পৌঁছাচ্ছেন৷

  2. পরিষেবাগুলি আপনাকে প্রমাণীকরণ করার জন্য আপনার শংসাপত্রগুলি আপনার অনুরোধে এমবেড করা হয়েছে৷ Google Ads API অনুরোধ এবং প্রতিক্রিয়াগুলির কাঠামোর সাথে নিজেকে পরিচিত করুন, বিশেষ করে যদি আপনি ক্লায়েন্ট লাইব্রেরি ব্যবহার না করেই কল পরিচালনা করতে যাচ্ছেন। প্রতিটি ক্লায়েন্ট লাইব্রেরি কনফিগার ফাইলে কীভাবে আপনার শংসাপত্রগুলি অন্তর্ভুক্ত করতে হয় তার নির্দিষ্ট নির্দেশাবলী সহ পাঠানো হয় (ক্লায়েন্ট লাইব্রেরির README-এর সাথে পরামর্শ করুন)।

  3. আপনি সঠিক শংসাপত্র ব্যবহার করছেন কিনা তা যাচাই করুন। আমাদের কুইকস্টার্ট আপনাকে আপনার প্রয়োজনীয় সঠিক সেটটি অর্জন করার প্রক্রিয়ার মধ্য দিয়ে নিয়ে যায়। উদাহরণস্বরূপ, নিম্নলিখিত প্রতিক্রিয়া ব্যর্থতা দেখায় যে ব্যবহারকারী অবৈধ প্রমাণীকরণ শংসাপত্র পাঠিয়েছেন:

    {
      "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "detail": "Authentication error: 2"
          }
        ]
      }
    }
    

আপনি যদি এই ধাপগুলি অনুসরণ করে থাকেন এবং এখনও সমস্যায় পড়ে থাকেন, তাহলে Google Ads API ত্রুটির সমস্যা সমাধানে ডুব দেওয়ার সময় এসেছে।

সমস্যা নির্ণয়

Google Ads API সাধারণত JSON ব্যর্থতা অবজেক্ট হিসাবে ত্রুটিগুলি রিপোর্ট করে, প্রতিক্রিয়াতে ত্রুটির একটি তালিকা থাকে। এই অবজেক্টগুলি একটি ত্রুটি কোড প্রদান করে সেইসাথে এটি কেন ঘটেছে তার বিশদ বিবরণ দেয়। তারা আপনার সমস্যা কি হতে পারে প্রথম সংকেত.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

আমাদের সমস্ত ক্লায়েন্ট লাইব্রেরি ব্যতিক্রমগুলি নিক্ষেপ করে যা প্রতিক্রিয়াতে ত্রুটিগুলিকে এনক্যাপসুলেট করে৷ এই ব্যতিক্রমগুলি ক্যাপচার করা এবং লগ বা একটি সমস্যা সমাধানকারী স্ক্রিনে বার্তাগুলি মুদ্রণ করা শুরু করার একটি দুর্দান্ত উপায়। আপনার অ্যাপ্লিকেশনে অন্যান্য লগ করা ইভেন্টগুলির সাথে এই তথ্যটি একত্রিত করা সমস্যাটি কী ট্রিগার করতে পারে তার একটি ভাল ওভারভিউ অফার করে৷ একবার আপনি লগগুলিতে ত্রুটি সনাক্ত করার পরে, আপনাকে এর অর্থ কী তা খুঁজে বের করতে হবে৷

ত্রুটি গবেষণা

  1. আমাদের সাধারণ ত্রুটি ডকুমেন্টেশন পড়ুন, যা প্রায়শই সম্মুখীন ত্রুটিগুলি কভার করে৷ এটি ত্রুটির বার্তা, প্রাসঙ্গিক API রেফারেন্স এবং কীভাবে ত্রুটিটি এড়াতে বা পরিচালনা করতে হয় তা বর্ণনা করে।

  2. যদি আমাদের সাধারণ ত্রুটির ডকুমেন্টেশনে ত্রুটির উল্লেখ না থাকে, তাহলে আমাদের রেফারেন্স ডকুমেন্টেশন দেখুন এবং ত্রুটির স্ট্রিংটি দেখুন।

  3. API এর সাথে তাদের অভিজ্ঞতা ভাগ করে নেওয়া অন্যান্য বিকাশকারীদের অ্যাক্সেস পেতে আমাদের সহায়তা চ্যানেলগুলি অনুসন্ধান করুন৷ আপনি যে সমস্যাটি করছেন তা অন্য কেউ হয়ত-এবং সমাধান করেছে।

  4. আপনি যদি এমন কোনো ত্রুটির সম্মুখীন হন যা নথিভুক্ত নয়, তাহলে ফোরামে এটি আমাদের নজরে আনুন।

  5. যাচাইকরণ বা অ্যাকাউন্ট সীমা সংক্রান্ত সমস্যা সমাধানে সহায়তার জন্য Google বিজ্ঞাপন সহায়তা কেন্দ্রে যান—Google বিজ্ঞাপন API মূল Google বিজ্ঞাপন পণ্যের নিয়ম এবং সীমাবদ্ধতাগুলি উত্তরাধিকার সূত্রে পায়।

  6. আপনার আবেদনের সমস্যা সমাধানের সময় ব্লগ পোস্টগুলি একটি ভাল রেফারেন্স হবে।

ত্রুটিটি গবেষণা করার পরে, এটি মূল কারণ নির্ধারণ করার সময়।

কারণ সনাক্ত করা

ত্রুটির কারণ নির্ধারণ করতে ব্যতিক্রম বার্তাটি পরীক্ষা করুন। প্রতিক্রিয়া দেখার পরে, সম্ভাব্য কারণের জন্য অনুরোধটি পরীক্ষা করুন। কিছু Google Ads API এরর মেসেজে GoogleAdsError এর location ফিল্ডে একটি fieldPathElements অন্তর্ভুক্ত থাকে, যা নির্দেশ করে যে অনুরোধে কোথায় ত্রুটি ঘটেছে। যেমন:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

একটি সমস্যা সমাধান করার সময়, এটি হতে পারে যে আপনার অ্যাপ্লিকেশন API এ ভুল তথ্য প্রদান করছে। আমরা দৃঢ়ভাবে একটি ইন্টারেক্টিভ ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE) ব্যবহারকে উৎসাহিত করি যেমন Eclipse (একটি মুক্ত এবং ওপেন সোর্স IDE যা প্রাথমিকভাবে জাভা ডেভেলপ করতে ব্যবহৃত হয়, কিন্তু অন্যান্য ভাষার জন্য প্লাগইন আছে) আপনাকে ডিবাগিংয়ে সহায়তা করতে। এটি আপনাকে ব্রেকপয়েন্ট সেট করতে এবং লাইন দ্বারা আপনার কোড লাইনের মধ্য দিয়ে যেতে দেয়।

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

কিভাবে সাহায্য পেতে হয়

আপনার নিজের সমস্যা চিহ্নিত করা এবং সমাধান করা সবসময় সম্ভব নয়। ফোরামে জিজ্ঞাসা করা হাজার হাজার ডেভেলপারদের কাছে আপনার প্রশ্ন উন্মোচিত করে যাদের একই সমস্যা মোকাবেলা করতে হয়েছে।

আপনার প্রশ্নের মধ্যে যতটা সম্ভব তথ্য অন্তর্ভুক্ত করার চেষ্টা করুন। প্রস্তাবিত আইটেম অন্তর্ভুক্ত:

  • স্যানিটাইজড JSON অনুরোধ এবং প্রতিক্রিয়া। আপনার ডেভেলপার টোকেন বা AuthToken-এর মতো সংবেদনশীল তথ্য মুছে ফেলা নিশ্চিত করুন।
  • কোড স্নিপেট। আপনার যদি কোনো ভাষা-নির্দিষ্ট সমস্যা হয় বা API-এর সাথে কাজ করার জন্য সাহায্যের অনুরোধ করে থাকেন, তাহলে আপনি কী করছেন তা ব্যাখ্যা করার জন্য কোডের একটি স্নিপেট অন্তর্ভুক্ত করুন।
  • অনুরোধ আইডি। এটি Google বিকাশকারী সম্পর্ক দলের সদস্যদের আপনার অনুরোধটি সনাক্ত করতে সক্ষম করে যদি উৎপাদন পরিবেশের বিরুদ্ধে করা হয়। আমরা আপনার লগগুলিতে রেজিস্টার করার পরামর্শ দিই রিকোয়েস্টআইডিটি একটি সম্পত্তি হিসাবে অন্তর্ভুক্ত করা ব্যতিক্রমগুলির মধ্যে যা প্রতিক্রিয়া ত্রুটিগুলিকে এনক্যাপসুলেট করে, সেইসাথে শুধুমাত্র requestId থেকে আরও বেশি প্রসঙ্গ।
  • অতিরিক্ত তথ্য, যেমন রানটাইম/দোভাষী সংস্করণ এবং প্ল্যাটফর্ম সমস্যা সমাধানের সময় উপযোগী হতে পারে।

সমস্যার সমাধান

এখন যেহেতু আপনি সমস্যাটি খুঁজে পেয়েছেন এবং একটি সমাধান নিয়ে এসেছেন, এটি আপনার পরিবর্তন করার এবং একটি পরীক্ষা অ্যাকাউন্ট (পছন্দের) বা উত্পাদনের বিরুদ্ধে (যদি বাগটি শুধুমাত্র একটি নির্দিষ্ট উত্পাদন অ্যাকাউন্টের ডেটাতে প্রযোজ্য হয়) এর বিরুদ্ধে সমাধান পরীক্ষা করার সময়।

শেয়ারিং বিবেচনা করুন

আপনি যদি ফোরামে একটি ত্রুটির বিষয়ে একটি প্রশ্ন পোস্ট করে থাকেন যা আগে সেখানে দেখা যায়নি এবং আপনি সমাধানটি খুঁজে পেয়েছেন, তাহলে থ্রেডে এটি যোগ করার কথা বিবেচনা করুন। পরের বার একজন বিকাশকারীর একই সমস্যা হলে তারা এখনই এটি সমাধান করতে সক্ষম হবে।

পরবর্তী পদক্ষেপ

এখন আপনি এই সমস্যার সমাধান করেছেন, আপনি কি প্রথম স্থানে এটি এড়াতে আপনার কোড উন্নত করার কোন উপায় লক্ষ্য করেছেন?

ইউনিট পরীক্ষার একটি ভাল সেট তৈরি করা কোডের গুণমান এবং নির্ভরযোগ্যতাকে যথেষ্ট উন্নত করতে সাহায্য করে। এটি পূর্ববর্তী কার্যকারিতা ভঙ্গ করেনি তা নিশ্চিত করতে নতুন পরিবর্তনগুলি পরীক্ষা করার প্রক্রিয়াটিকেও গতি দেয়৷ সমস্যা সমাধানের জন্য সমস্ত প্রয়োজনীয় ডেটা সার্ফেস করার ক্ষেত্রে একটি ভাল ত্রুটি পরিচালনার কৌশলও গুরুত্বপূর্ণ।