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

वीडियो: साल 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 के मुकाबले ज़्यादा संदर्भ शामिल करें.
  • समस्या हल करने के लिए, रनटाइम/इंटरप्रेटर वर्शन और प्लैटफ़ॉर्म जैसी अतिरिक्त जानकारी से भी मदद मिल सकती है.

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

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

शेयर करें

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

अगले चरण

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

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