समस्या का हल

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

  5. अपने ऐप्लिकेशन की गड़बड़ियों को ठीक करने के लिए, ब्लॉग पोस्ट भी काम के रेफ़रंस साबित हो सकती हैं.

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

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

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

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

ऐसा हमेशा नहीं होता कि समस्या की पहचान की जा सके और उसे खुद ही हल किया जा सके. सहायता पाने के लिए, सहायता टीम से संपर्क किया जा सकता है.

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

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

समस्या ठीक करना

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

अगले चरण

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

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