समस्या का हल

वीडियो: 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 से जुड़ी कुछ गड़बड़ियों के मैसेज में, location फ़ील्ड में fieldPathElements शामिल होता है. यह 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 फ़ॉर्मैट में अनुरोध और जवाब को सुरक्षित किया गया है. पक्का करें कि आपने डेवलपर टोकन या AuthToken जैसी संवेदनशील जानकारी हटा दी हो.
  • कोड स्निपेट. अगर आपको किसी भाषा से जुड़ी समस्या आ रही है या आपको एपीआई के साथ काम करने में मदद चाहिए, तो कोड का एक स्निपेट शामिल करें. इससे हमें यह समझने में मदद मिलेगी कि आपको किस तरह की समस्या आ रही है.
  • RequestId. इससे Google की डेवलपर रिलेशन टीम के सदस्यों को, प्रोडक्शन एनवायरमेंट के ख़िलाफ़ किए गए आपके अनुरोध का पता लगाने में मदद मिलती है. हमारा सुझाव है कि आप अपने लॉग में उस requestId को रजिस्टर करें जो जवाब की गड़बड़ियों को शामिल करने वाले अपवादों में एक प्रॉपर्टी के तौर पर शामिल है. साथ ही, सिर्फ़ requestId के मुकाबले ज़्यादा कॉन्टेक्स्ट भी शामिल करें.
  • समस्या हल करने के दौरान, रनटाइम या इंटरप्रेटर वर्शन और प्लैटफ़ॉर्म जैसी अतिरिक्त जानकारी भी काम आ सकती है.

समस्या ठीक करें

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

अगले चरण

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

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