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

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

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

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

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

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

अगले चरण

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

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