समस्या का हल

वीडियो: गड़बड़ी को मैनेज करने के बारे में 2019 के वर्कशॉप में दी गई जानकारी देखें

गड़बड़ियां, एनवायरमेंट के गलत सेटअप, आपके सॉफ़्टवेयर में किसी गड़बड़ी या उपयोगकर्ता के अमान्य इनपुट की वजह से हो सकती हैं. सोर्स चाहे जो भी हो, आपको समस्या हल करनी होगी. इसके लिए, अपने कोड को ठीक करें या उपयोगकर्ता की गड़बड़ी को मैनेज करने के लिए लॉजिक जोड़ें. इस गाइड में, Google Ads API से जुड़ी गड़बड़ियों को हल करने के सबसे सही तरीकों के बारे में बताया गया है.

इंटरनेट कनेक्शन की पुष्टि करना

  1. पक्का करें कि आपके पास Google Ads API का ऐक्सेस हो और आपने इसे सही तरीके से सेट अप किया हो. अगर आपके रिस्पॉन्स में कोई एचटीटीपी गड़बड़ी दिखती है, तो पक्का करें कि आपने उन गड़बड़ियों को ध्यान से ठीक कर लिया है. साथ ही, यह भी पक्का करें कि आपने उन सेवाओं को ऐक्सेस किया है जिनका इस्तेमाल आपको अपने कोड से करना है.

  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 Ads सहायता केंद्र पर जाएं. Google Ads API, Google Ads के मुख्य प्रॉडक्ट के नियमों और सीमाओं को इनहेरिट करता है.

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

किसी समस्या को हल करते समय, हो सकता है कि आपका ऐप्लिकेशन एपीआई को गलत जानकारी दे रहा हो. हमारा सुझाव है कि डीबग करने में मदद पाने के लिए, Eclipse जैसे इंटरैक्टिव डेवलपमेंट एनवायरमेंट (आईडीई) का इस्तेमाल करें. यह एक मुफ़्त और ओपन सोर्स आईडीई है. इसका इस्तेमाल मुख्य रूप से Java डेवलप करने के लिए किया जाता है. हालांकि, इसमें दूसरी भाषाओं के लिए प्लग इन भी मौजूद हैं. इसकी मदद से, ब्रेकपॉइंट सेट किए जा सकते हैं और कोड को लाइन-दर-लाइन देखा जा सकता है.

पक्का करें कि अनुरोध, आपके आवेदन के इनपुट से मेल खाता हो. उदाहरण के लिए, हो सकता है कि अनुरोध में कैंपेन का नाम न हो. पक्का करें कि आपने ऐसा फ़ील्ड मास्क भेजा हो जो उन अपडेट से मेल खाता हो जिन्हें आपको करना है. Google Ads API, कम अपडेट के साथ काम करता है. डेटा में बदलाव करने के अनुरोध में, फ़ील्ड मास्क से किसी फ़ील्ड को हटाने का मतलब है कि एपीआई को उस फ़ील्ड में कोई बदलाव नहीं करना चाहिए. अगर आपका ऐप्लिकेशन किसी ऑब्जेक्ट को वापस लाता है, उसमें बदलाव करता है, और उसे वापस भेजता है, तो हो सकता है कि आप किसी ऐसे फ़ील्ड में लिख रहे हों जिसमें अपडेट करने की सुविधा उपलब्ध न हो. रेफ़रंस दस्तावेज़ में फ़ील्ड का ब्यौरा देखें. इससे आपको यह पता चलेगा कि फ़ील्ड को कब अपडेट किया जा सकता है या नहीं.

सहायता कैसे मिल सकती है

यह ज़रूरी नहीं है कि समस्या की पहचान करके, उसे खुद ही हल किया जा सके. फ़ोरम पर सवाल पूछने से, आपका सवाल उन हज़ारों डेवलपर तक पहुंच जाता है जिन्हें शायद इसी समस्या का सामना करना पड़ा हो.

अपनी क्वेरी में ज़्यादा से ज़्यादा जानकारी शामिल करें. सुझाए गए आइटम में ये शामिल हैं:

  • साफ़ किया गया JSON अनुरोध और रिस्पॉन्स. अपने डेवलपर टोकन या AuthToken जैसी संवेदनशील जानकारी को ज़रूर हटाएं.
  • कोड स्निपेट. अगर आपको किसी भाषा से जुड़ी समस्या आ रही है या एपीआई के साथ काम करने में मदद चाहिए, तो कोड का एक स्निपेट शामिल करें. इससे हमें यह समझने में मदद मिलेगी कि आप क्या कर रहे हैं.
  • RequestId. इससे Google Developer Relations टीम के सदस्यों को, प्रोडक्शन एनवायरमेंट के लिए किए गए अनुरोध को ढूंढने में मदद मिलती है. हमारा सुझाव है कि आप अपने लॉग में, उन अपवादों में शामिल requestId को रजिस्टर करें जो रिस्पॉन्स से जुड़ी गड़बड़ियों के साथ-साथ, सिर्फ़ requestId के अलावा ज़्यादा जानकारी भी शामिल करते हैं.
  • समस्या हल करते समय, रनटाइम/इंटरप्रेटर वर्शन और प्लैटफ़ॉर्म जैसी अतिरिक्त जानकारी भी काम की हो सकती है.

समस्या को हल करना

अब आपने समस्या का पता लगा लिया है और उसका समाधान भी ढूंढ लिया है. अब समय आ गया है कि आप बदलाव करें और टेस्ट खाते (इसका सुझाव दिया जाता है) या प्रोडक्शन खाते (अगर गड़बड़ी सिर्फ़ किसी खास प्रोडक्शन खाते के डेटा पर लागू होती है) में, ठीक किए गए डेटा की जांच करें.

शेयर करने के बारे में सोचें

अगर आपने फ़ोरम में किसी ऐसी गड़बड़ी के बारे में सवाल पोस्ट किया है जो पहले कभी नहीं दिखी थी और आपको उसका समाधान मिल गया है, तो उसे थ्रेड में जोड़ें. अगली बार जब किसी डेवलपर को यह समस्या होगी, तो वह इसे तुरंत हल कर पाएगा.

अगले चरण

अब जब आपने इस समस्या को हल कर लिया है, तो क्या आपको कोड को बेहतर बनाने का कोई तरीका मिला, ताकि इस समस्या से पहले से बचा जा सके?

यूनिट टेस्ट का अच्छा सेट बनाने से, कोड की क्वालिटी और भरोसेमंदता को बेहतर बनाने में काफ़ी मदद मिलती है. इससे नए बदलावों की जांच करने की प्रोसेस भी तेज़ हो जाती है, ताकि यह पक्का किया जा सके कि उनसे पिछले फ़ंक्शन पर कोई असर न पड़ा हो. गड़बड़ी को ठीक करने के लिए ज़रूरी डेटा दिखाने के लिए, गड़बड़ी को मैनेज करने की अच्छी रणनीति भी अहम है.