عیب یابی

ویدیو : بحث رسیدگی به خطا از کارگاه 2019 را بررسی کنید

خطاها می توانند ناشی از تنظیم نادرست محیط، اشکال در نرم افزار شما یا ورودی نامعتبر کاربر باشد. بدون توجه به منبع، باید مشکل را عیب یابی کنید و کد خود را برطرف کنید یا منطق را برای رسیدگی به خطای کاربر اضافه کنید. این راهنما برخی از بهترین روش‌ها را هنگام عیب‌یابی خطاهای Google Ads API مورد بحث قرار می‌دهد.

اطمینان از اتصال

  1. مطمئن شوید که به API Google Ads و تنظیمات صحیح دسترسی دارید. اگر پاسخ شما هر گونه خطای HTTP را برمی گرداند، مطمئن شوید که آن ها را با دقت بررسی کرده اید و از طریق کد خود به سرویس هایی که قصد استفاده از آن را دارید دسترسی دارید.

  2. اعتبار شما در درخواست شما تعبیه شده است تا خدمات شما را احراز هویت کنند. با ساختار درخواست‌ها و پاسخ‌های Google Ads API آشنا شوید، به‌خصوص اگر می‌خواهید بدون استفاده از کتابخانه‌های مشتری، تماس‌ها را مدیریت کنید. هر کتابخانه مشتری با دستورالعمل‌های خاصی در مورد نحوه گنجاندن اعتبارنامه‌های شما در فایل پیکربندی ارسال می‌شود (به README کتابخانه مشتری مراجعه کنید).

  3. بررسی کنید که از اعتبارنامه های صحیح استفاده می کنید. Quickstart ما شما را در فرآیند به دست آوردن مجموعه صحیح مورد نیاز خود هدایت می کند. برای مثال، شکست پاسخ زیر نشان می‌دهد که کاربر اعتبارنامه‌های احراز هویت نامعتبر را ارسال کرده است:

    {
      "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 Ads بروید—Google Ads API قوانین و محدودیت‌های محصول اصلی Google Ads را به ارث می‌برد.

  6. پست های وبلاگ گاهی اوقات مرجع خوبی برای عیب یابی برنامه شما خواهند بود.

پس از بررسی خطا، زمان تعیین علت اصلی است.

مکان یابی علت

برای تعیین علت خطا، پیام استثنا را بررسی کنید. پس از مشاهده پاسخ، درخواست را برای علت احتمالی بررسی کنید. برخی از پیام‌های خطای Google Ads API شامل یک fieldPathElements در فیلد location GoogleAdsError است که نشان می‌دهد در کجای درخواست خطا رخ داده است. به عنوان مثال:

{
  "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 منبع باز و رایگان که در درجه اول برای توسعه جاوا استفاده می شود، اما دارای پلاگین هایی برای زبان های دیگر) برای کمک به شما در اشکال زدایی استفاده می کنیم. این به شما امکان می دهد نقاط شکست را تعیین کنید و خط به خط کد خود را طی کنید.

دوبار بررسی کنید تا مطمئن شوید درخواست با ورودی های برنامه شما مطابقت دارد (مثلاً نام کمپین ممکن است به درخواست شما وارد نشود). مطمئن شوید که یک فیلد ماسک ارسال می‌کنید که با به‌روزرسانی‌هایی که می‌خواهید انجام دهید مطابقت دارد - API Google Ads از به‌روزرسانی‌های پراکنده پشتیبانی می‌کند. حذف یک فیلد از ماسک فیلد در یک درخواست جهش نشان می دهد که API باید آن را به حال خود رها کند. اگر برنامه شما یک شی را بازیابی می کند، تغییری ایجاد می کند و آن را پس می فرستد، ممکن است در حال نوشتن به فیلدی باشید که از به روز رسانی پشتیبانی نمی کند. شرح فیلد را در مستندات مرجع بررسی کنید تا ببینید آیا محدودیتی در زمان یا به روز رسانی فیلد وجود دارد یا خیر.

چگونه می توان کمک گرفت

شناسایی و حل مشکل همیشه به تنهایی امکان پذیر نیست. پرسیدن در انجمن، سؤال شما را در معرض هزاران توسعه‌دهنده قرار می‌دهد که ممکن است مجبور شده‌اند با همین موضوع دست و پنجه نرم کنند.

سعی کنید تا جایی که می توانید اطلاعاتی را در سوالات خود بگنجانید. موارد توصیه شده عبارتند از:

  • درخواست و پاسخ JSON پاکسازی شده اطمینان حاصل کنید که اطلاعات حساس مانند توکن توسعه دهنده یا AuthToken خود را حذف کرده اید.
  • قطعه کد. اگر مشکل زبان خاصی دارید یا برای کار با API درخواست کمک می‌کنید، یک قطعه کد برای کمک به توضیح کاری که انجام می‌دهید اضافه کنید.
  • RequestId. این به اعضای تیم روابط توسعه‌دهنده Google امکان می‌دهد در صورت درخواست شما در برابر محیط تولید، محل درخواست شما را پیدا کنند. توصیه می‌کنیم درخواستId را که به‌عنوان یک ویژگی در استثناهایی که خطاهای پاسخ را محصور می‌کنند و همچنین زمینه‌های بیشتری نسبت به requestId به تنهایی در فهرست‌های خود ثبت کنید.
  • اطلاعات اضافی، مانند نسخه زمان اجرا/مترجم و پلتفرم نیز می تواند هنگام عیب یابی مفید باشد.

رفع مشکل

اکنون که مشکل را کشف کرده اید و راه حلی برای آن ارائه کرده اید، زمان آن رسیده است که تغییر خود را انجام دهید و اصلاح را در برابر یک حساب آزمایشی (ترجیح داده شده) یا تولید آزمایش کنید (اگر این اشکال فقط برای داده های یک حساب تولید خاص اعمال می شود).

اشتراک گذاری را در نظر بگیرید

اگر سوالی در انجمن در مورد خطایی که قبلاً در آنجا ظاهر نشده بود ارسال کرده اید و راه حل را پیدا کرده اید، آن را به موضوع اضافه کنید. دفعه بعد که یک توسعه‌دهنده همین مشکل را داشته باشد، می‌تواند فوراً آن را حل کند.

مراحل بعدی

اکنون که این مشکل را حل کرده اید، آیا در وهله اول راهی برای بهبود کد خود برای جلوگیری از این مشکل متوجه شدید؟

ایجاد یک مجموعه خوب از تست های واحد به بهبود کیفیت و قابلیت اطمینان کد به میزان قابل توجهی کمک می کند. همچنین روند آزمایش تغییرات جدید را سرعت می بخشد تا اطمینان حاصل شود که عملکرد قبلی را خراب نمی کنند. یک استراتژی خوب رسیدگی به خطا نیز در به نمایش گذاشتن تمام داده های لازم برای عیب یابی کلیدی است.