تحديد المشاكل وحلّها

الفيديو: مشاهدة المحادثة حول كيفية التعامل مع الأخطاء في ورشة العمل لعام 2019

يمكن أن تنتج الأخطاء عن إعداد بيئة غير صحيح، أو حدوث خطأ في برنامجك، أو إدخال غير صالح من المستخدم. بغض النظر عن المصدر، سوف تحتاج إلى استكشاف المشكلة وإصلاحها وإصلاح التعليمات البرمجية الخاصة بك أو إضافة منطق للتعامل مع خطأ المستخدم. يناقش هذا الدليل بعض أفضل الممارسات عند استكشاف الأخطاء وإصلاحها من Google Ads API.

ضمان الاتصال

  1. تأكَّد من إمكانية وصولك إلى Google Ads 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. راجع وثائق الأخطاء الشائعة، التي تغطي الأخطاء الأكثر شيوعًا. فهو يصف رسالة الخطأ ومراجع واجهة برمجة التطبيقات ذات الصلة وكيفية تجنُّب الخطأ أو معالجته.

  2. إذا لم تشير مستندات الأخطاء الشائعة إلى الخطأ على وجه التحديد، يمكنك مراجعة المستندات المرجعية والبحث عن سلسلة الخطأ.

  3. يمكنك البحث في قنوات الدعم لتتمكّن من الوصول إلى مطوّرين آخرين يشاركون تجاربهم مع واجهة برمجة التطبيقات. ربما واجه شخص آخر المشكلة التي تواجهها وحلها.

  4. إذا واجهت أي أخطاء غير موثَّقة، يُرجى لفت انتباهنا إلى ذلك في المنتدى.

  5. انتقِل إلى مركز مساعدة "إعلانات Google" للحصول على مساعدة في تحديد وحلّ المشاكل المتعلقة بالتحقّق من الصحة أو حدود الحساب، لأنّ Google Ads API تكتسِب القواعد والقيود المفروضة على منتج "إعلانات Google" الأساسي.

  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" } ]
      }
    }
  ]
}

عند تحديد مشكلة وحلّها، قد يكون السبب أنّ التطبيق يقدّم معلومات خاطئة إلى واجهة برمجة التطبيقات. ننصحك بشدة باستخدام بيئة تطوير تفاعلية (IDE) مثل Eclipse (بيئة تطوير برامج (IDE) مجانية ومفتوحة المصدر تُستخدم بشكل أساسي لتطوير Java، ولكنها تتضمن مكوّنات إضافية للغات الأخرى) لمساعدتك في تصحيح الأخطاء. حيث تمكّنك من تعيين نقاط التوقف والتنقل عبر التعليمات البرمجية سطرًا تلو الآخر.

تحقّق جيدًا من أنّ الطلب يتطابق مع إدخالات تطبيقك (على سبيل المثال، قد لا يكون اسم الحملة مناسبًا للطلب). تأكَّد من إرسال قناع حقل يتطابق مع التعديلات التي تريد إجراؤها، لأنّ Google Ads API تتيح التحديثات المتفرقة. يشير إغفال حقل من قناع الحقل في طلب التبديل إلى أنه يجب على واجهة برمجة التطبيقات أن تتركه وشأنه. إذا استرد التطبيق كائنًا وأجرى تغييرًا وإعادة إرساله، فقد تكتب في حقل لا يتيح التحديث. راجِع وصف الحقل في المستندات المرجعية لمعرفة ما إذا كانت هناك أي قيود مفروضة على موعد تعديل الحقل أو ما إذا كان بالإمكان تعديله.

كيفية الحصول على مساعدة

ليس من الممكن دائمًا تحديد المشكلة وحلّها بنفسك. يؤدي السؤال في المنتدى إلى عرض سؤالك لآلاف المطورين الذين ربما اضطروا إلى التعامل مع المشكلة نفسها.

حاول تضمين أكبر قدر ممكن من المعلومات في استعلاماتك. وتشمل العناصر المقترَحة ما يلي:

  • طلب واستجابة JSON تم تصحيحهما. احرص على إزالة المعلومات الحساسة مثل الرمز المميز للمطوِّر أو AuthToken
  • مقتطفات الرمز. إذا كنت تواجه مشكلة متعلقة باللغة أو تطلب المساعدة في التعامل مع واجهة برمجة التطبيقات، يمكنك تضمين مقتطف رمز للمساعدة في توضيح ما تفعله.
  • رقم تعريف الطلب ويتيح ذلك لأعضاء فريق علاقات المطوّرين في Google تحديد موقع طلبك إذا تم تقديمه وفقًا لبيئة الإنتاج. ننصحك بتسجيل رقم تعريف الطلب المضمّن في سجلّاتك في الاستثناءات التي تتضمّن أخطاء الاستجابة، بالإضافة إلى سياق إضافي مقارنةً بمعرّف الطلب وحده.
  • يمكن أن تكون المعلومات الإضافية، مثل إصدار وقت التشغيل/الترجمة الفورية والنظام الأساسي، مفيدة أيضًا عند استكشاف الأخطاء وإصلاحها.

حلّ المشكلة

والآن بعد أن اكتشفت المشكلة والتوصل إلى حل، حان الوقت لإجراء التغيير واختبار الإصلاح مقابل حساب اختباري (مفضل) أو إنتاج (إذا كان الخطأ ينطبق فقط على البيانات في حساب إنتاج معين).

ننصحك بمشاركة المحتوى

إذا كنت قد نشرت سؤالاً في المنتدى بشأن خطأ لم يظهر في هناك من قبل ووجدت الحل، ففكر في إضافته إلى سلسلة الرسائل. في المرة القادمة التي يواجه فيها المطوّر نفس المشكلة، سيتمكن من حلها على الفور.

الخطوات التالية

الآن بعد أن نجحت في حل هذه المشكلة، هل لاحظت أي طرق لتحسين التعليمات البرمجية لتجنب ذلك في المقام الأول؟

يساعد إنشاء مجموعة جيدة من اختبارات الوحدات على تحسين جودة الرمز وموثوقيته بشكل كبير. كما أنه يسرّع عملية اختبار التغييرات الجديدة للتأكد من أنها لم تعطّل الوظائف السابقة. تعد الاستراتيجية الجيدة للتعامل مع الأخطاء عاملاً أساسيًا في عرض جميع البيانات الضرورية لاستكشاف الأخطاء وإصلاحها.