समस्या का हल

गलत एनवायरमेंट सेटअप, आपके सॉफ़्टवेयर में मौजूद किसी बग या उपयोगकर्ता के अमान्य इनपुट की वजह से गड़बड़ियां हो सकती हैं. गड़बड़ी की वजह चाहे जो भी हो, आपको समस्या हल करनी होगी. इसके लिए, आपको अपना कोड ठीक करना होगा या उपयोगकर्ता की गड़बड़ी को हैंडल करने के लिए लॉजिक जोड़ना होगा. इस गाइड में, 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.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 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": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

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

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

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

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

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

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

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

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

अगले चरण

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

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