الفيديو: يمكنك الاطّلاع على محاضرة حول معالجة الأخطاء من ورشة العمل لعام 2019
يمكن أن تحدث الأخطاء بسبب إعداد غير صحيح للبيئة أو خطأ في البرنامج أو إدخال غير صالح من المستخدم. بغض النظر عن المصدر، عليك تحديد المشكلة وحلّها، إما عن طريق إصلاح الرمز أو إضافة منطق للتعامل مع خطأ المستخدم. يتناول هذا الدليل بعض أفضل الممارسات عند تحديد المشاكل وحلّها في Google Ads API.
ضمان الاتصال
تأكَّد من إمكانية الوصول إلى Google Ads API ومن صحة عملية الإعداد. إذا كان الردّ يعرض أي أخطاء HTTP، احرص على معالجتها بعناية والتأكّد من أنّك تصل إلى الخدمات التي تريد استخدامها من الرمز.
يتم تضمين بيانات الاعتماد في طلبك لكي تتمكّن الخدمات من مصادقتك. تعرَّف على بنية طلبات Google Ads API وردودها، خاصةً إذا كنت ستتعامل مع الطلبات بدون استخدام مكتبات برامج العميل. يتم شحن كل مكتبة برامج مع تعليمات محددة حول كيفية تضمين بيانات الاعتماد في ملف الإعداد (يُرجى الرجوع إلى ملف README الخاص بمكتبة البرامج).
تأكَّد من استخدام بيانات الاعتماد الصحيحة. سيرشدك دليل البدء السريع خلال عملية الحصول على المجموعة الصحيحة التي تحتاج إليها. على سبيل المثال، يعرض خطأ الرد التالي أنّ المستخدم أرسل بيانات اعتماد مصادقة غير صالحة:
{ "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" }
}
]
}
تُصدر جميع مكتبات البرامج لدينا استثناءات تتضمّن الأخطاء في الرد. ويُعدّ تسجيل هذه الاستثناءات وطباعة الرسائل في سجلّ أو شاشة لتحديد المشاكل وحلّها طريقة رائعة للبدء. ويوفّر دمج هذه المعلومات مع الأحداث الأخرى المسجّلة في تطبيقك نظرة عامة جيدة على ما قد يؤدي إلى حدوث المشكلة. بعد تحديد الخطأ في السجلّات، عليك معرفة معناه.
البحث عن الخطأ
يمكنك الرجوع إلى مستندات الأخطاء الشائعة التي تتناول الأخطاء الأكثر شيوعًا. وتصف رسالة الخطأ ومراجع واجهة برمجة التطبيقات ذات الصلة وكيفية تجنُّب الخطأ أو التعامل معه.
إذا لم تذكر مستندات الأخطاء الشائعة الخطأ تحديدًا، يُرجى الرجوع إلى المستندات المرجعية والبحث عن سلسلة الخطأ.
يمكنك البحث في قنوات الدعم للوصول إلى مطوّرين آخرين يشاركون تجاربهم مع واجهة برمجة التطبيقات. من المحتمل أنّ مستخدمًا آخر واجه المشكلة نفسها وتمكّن من حلّها.
انتقِل إلى مركز مساعدة "إعلانات Google" للحصول على مساعدة في تحديد المشاكل وحلّها المتعلّقة بالتحقّق من الصحة أو حدود الحساب، إذ إنّ Google Ads API تلتزم بقواعد منتج "إعلانات Google" الأساسي وقيوده.
في بعض الأحيان، تكون مشاركات المدونة مرجعًا جيدًا عند تحديد المشاكل وحلّها في تطبيقك.
إذا واجهت أي أخطاء غير موثّقة، يُرجى التواصل مع فريق الدعم.
بعد البحث عن الخطأ، حان الوقت لتحديد السبب الأساسي.
تحديد السبب
راجِع رسالة الاستثناء لتحديد سبب الخطأ. بعد الاطّلاع على الردّ، تحقَّق من الطلب لمعرفة السبب المحتمل. تتضمّن بعض رسائل الخطأ في 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 (وهي بيئة تطوير تفاعلية مجانية ومفتوحة المصدر تُستخدم بشكل أساسي لتطوير Java، ولكنها تتضمّن مكوّنات إضافية للغات أخرى) لمساعدتك في تصحيح الأخطاء. يتيح لك ضبط نقاط توقّف وتتبُّع الرمز سطرًا سطرًا.
تحقَّق جيدًا للتأكّد من أنّ الطلب يتطابق مع مدخلات تطبيقك (على سبيل المثال، قد لا يصل اسم الحملة إلى الطلب). تأكَّد من إرسال قناع حقل يتطابق مع التعديلات التي تريد إجراؤها، لأنّ واجهة Google Ads API تتيح إجراء تعديلات متفرّقة. يشير حذف حقل من قناع الحقل في طلب تغيير إلى أنّ واجهة برمجة التطبيقات يجب ألّا تعدّله. إذا كان تطبيقك يسترد عنصرًا ويجري تغييرًا ويرسله مرة أخرى، قد تكون بصدد الكتابة إلى حقل لا يتيح التعديل. راجِع وصف الحقل في المستندات المرجعية لمعرفة ما إذا كانت هناك أي قيود على وقت أو إمكانية تعديل الحقل.
كيفية الحصول على مساعدة
قد لا يكون من الممكن دائمًا تحديد المشكلة وحلّها بنفسك. يمكنك التواصل مع فريق الدعم للحصول على المساعدة.
حاوِل تضمين أكبر قدر ممكن من المعلومات في طلبات البحث. تشمل العناصر المقترَحة ما يلي:
- طلب واستجابة JSON تم تنظيفهما احرص على إزالة المعلومات الحساسة، مثل رمز الدخول عبر OAuth.
- مقتطفات الرمز إذا كنت تواجه مشكلة خاصة بلغة معيّنة أو تطلب المساعدة في استخدام واجهة برمجة التطبيقات، أدرِج مقتطفًا من الرمز للمساعدة في توضيح ما تفعله.
- RequestId. يتيح ذلك لأعضاء فريق علاقات المطوّرين في Google تحديد موقع طلبك إذا تم تقديمه ضد بيئة التشغيل الفعلي. ننصحك بتسجيل رقم التعريف requestId في سجلّاتك، مع تضمينه كسمة في الاستثناءات التي تتضمّن أخطاء الردود، بالإضافة إلى توفير سياق أكبر من رقم التعريف requestId وحده.
- يمكن أن تكون المعلومات الإضافية، مثل وقت التشغيل أو إصدار المترجم والمنصة، مفيدة أيضًا عند تحديد المشاكل وحلّها.
حلّ المشكلة
بعد أن حدّدت المشكلة وتوصّلت إلى حلّ، حان الوقت لإجراء التغيير واختبار الإصلاح على حساب تجريبي (يُفضّل ذلك) أو على حساب فعلي (إذا كانت المشكلة تنطبق فقط على البيانات في حساب فعلي معيّن).
الخطوات التالية
بعد حلّ هذه المشكلة، هل لاحظت أي طرق لتحسين الرمز البرمجي لتجنُّبها في المقام الأول؟
يساعد إنشاء مجموعة جيدة من اختبارات الوحدات في تحسين جودة الرمز البرمجي وموثوقيته بشكل كبير. كما أنّها تسرّع عملية اختبار التغييرات الجديدة للتأكّد من أنّها لم تؤدِّ إلى إيقاف الوظائف السابقة. من المهم أيضًا اتّباع استراتيجية جيدة للتعامل مع الأخطاء من أجل عرض جميع البيانات اللازمة لتحديد المشاكل وحلّها.