انواع خطا

ما خطاها را به دسته‌های کلی زیر دسته‌بندی کرده‌ایم:

  • احراز هویت
  • قابل امتحان مجدد
  • اعتبار سنجی
  • مرتبط با همگام سازی

اگرچه این دسته‌بندی‌ها همه خطاهای احتمالی را در بر نمی‌گیرند، و برخی ممکن است در بیش از یک دسته قرار گیرند، با این وجود می‌توانند به عنوان نقطه شروعی برای ساختاردهی مدیریت خطای برنامه شما باشند. برای جزئیات بیشتر در مورد یک خطای خاص به خطاهای رایج مراجعه کنید.

خطاهای احراز هویت

احراز هویت به این اشاره دارد که آیا کاربر به برنامه شما اجازه دسترسی به Google Ads از طرف او را داده است یا خیر. احراز هویت از طریق اعتبارنامه های تولید شده توسط جریان OAuth2 مدیریت می شود.

رایج‌ترین دلیلی که خطای احراز هویت از عواملی خارج از کنترل شما ایجاد می‌شود این است که کاربر احراز هویت شده مجوزی را که به برنامه شما برای اقدام از جانب خود داده است، لغو کرده است. برای مثال، اگر برنامه شما حساب‌های Google Ads جداگانه را برای مشتریان مستقل مدیریت کند و هنگام مدیریت حساب آن مشتری، به‌صورت جداگانه به‌عنوان هر مشتری احراز هویت می‌کند، مشتری می‌تواند در هر زمانی دسترسی برنامه شما را لغو کند. بسته به زمانی که دسترسی شما لغو شده است، API ممکن است مستقیماً یک خطای AuthenticationError.OAUTH_TOKEN_REVOKED را برگرداند، یا اشیاء اعتبار داخلی در کتابخانه‌های سرویس گیرنده ممکن است یک استثنا لغو نشانه ایجاد کنند. در هر صورت، اگر برنامه شما یک رابط کاربری برای مشتریان شما دارد، می‌تواند از آنها بخواهد که جریان OAuth2 را مجدداً راه‌اندازی کنند تا مجوز برنامه شما برای اقدام از طرف آن‌ها دوباره برقرار شود.

خطاهای قابل امتحان مجدد

برخی از خطاها، مانند TRANSIENT_ERROR یا INTERNAL_ERROR ، می تواند نشان دهنده یک مشکل موقتی باشد که ممکن است با تلاش مجدد درخواست پس از یک مکث کوتاه برطرف شود.

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

برای درخواست‌هایی که در قسمت پشتی شروع می‌شوند، برنامه شما باید به‌طور خودکار درخواست را تا حداکثر تعداد تکرار مجدد امتحان کند.

وقتی درخواست‌ها را دوباره امتحان می‌کنید، از یک خط‌مشی عقب‌نشینی نمایی استفاده کنید. برای مثال، اگر ابتدا 5 ثانیه قبل از اولین تلاش مجدد مکث کنید، می توانید 10 ثانیه بعد از دومین و 20 ثانیه بعد از تلاش مجدد سوم مکث کنید. عقب نشینی نمایی کمک می کند تا مطمئن شوید که API را خیلی تهاجمی فراخوانی نمی کنید.

خطاهای اعتبارسنجی

خطاهای اعتبارسنجی نشان می دهد که ورودی یک عملیات قابل قبول نیست. به عنوان مثال، PolicyViolationError ، DateError ، DateRangeError ، StringLengthError ، و UrlFieldError .

خطاهای اعتبارسنجی معمولاً در درخواست‌های آغاز شده توسط کاربر رخ می‌دهد، جایی که کاربر ورودی نامعتبری را وارد کرده است. در این موارد، شما باید یک پیغام خطای مناسب را بر اساس خطای API خاصی که دریافت کرده اید به کاربر ارائه دهید. همچنین می‌توانید قبل از برقراری تماس API، ورودی کاربر را برای اشتباهات رایج تأیید کنید، برنامه‌تان را پاسخگوتر کنید و استفاده از API را کارآمدتر کنید. برای درخواست‌های پشتیبان، برنامه شما می‌تواند عملیات ناموفق را به صفی اضافه کند تا اپراتور انسانی آن را بررسی کند.

بسیاری از برنامه های Google Ads یک پایگاه داده محلی برای ذخیره اشیاء Google Ads خود دارند. یکی از چالش‌های این رویکرد این است که پایگاه داده محلی ممکن است با اشیاء واقعی در Google Ads هماهنگ نباشد. به عنوان مثال، یک کاربر ممکن است یک گروه تبلیغاتی را مستقیماً در Google Ads حذف کند، اما برنامه و پایگاه داده محلی از این تغییر بی‌اطلاع هستند و به صدور فراخوان‌های API ادامه می‌دهند که گویی گروه تبلیغاتی وجود دارد. این مشکلات همگام‌سازی می‌تواند به صورت خطاهای مختلفی مانند DUPLICATE_CAMPAIGN_NAME ، DUPLICATE_ADGROUP_NAME ، AD_NOT_UNDER_ADGROUP ، CANNOT_OPERATE_ON_REMOVED_ADGROUPAD ، و بسیاری دیگر ظاهر شود.

برای درخواست‌های آغاز شده توسط کاربر، یک استراتژی این است که کاربر را در مورد مشکل احتمالی همگام‌سازی آگاه کنید، فوراً کاری را راه‌اندازی کنید که کلاس مربوطه از اشیاء Google Ads را بازیابی می‌کند و پایگاه داده محلی را به‌روزرسانی می‌کند، سپس از کاربر می‌خواهد رابط کاربری را به‌روزرسانی کند.

برای درخواست‌های بک‌اند، برخی از خطاها اطلاعات کافی برای برنامه شما فراهم می‌کنند تا به‌طور خودکار و تدریجی پایگاه داده محلی شما را تصحیح کند. برای مثال، CANNOT_OPERATE_ON_REMOVED_ADGROUPAD باید باعث شود برنامه شما آن تبلیغ را به عنوان حذف شده در پایگاه داده محلی شما علامت گذاری کند. خطاهایی که نمی‌توانید به این روش مدیریت کنید، می‌تواند باعث شود برنامه شما کار همگام‌سازی کامل‌تری را راه‌اندازی کند یا به صفی برای بازبینی اپراتور انسانی اضافه شود.