समस्या का हल

गड़बड़ियां, एनवायरमेंट के गलत सेटअप, आपके सॉफ़्टवेयर में मौजूद गड़बड़ी या उपयोगकर्ता के अमान्य इनपुट की वजह से हो सकती हैं. समस्या की वजह चाहे जो भी हो, आपको उसे हल करना होगा. इसके लिए, आपको अपने कोड को ठीक करना होगा या उपयोगकर्ता की गड़बड़ी को ठीक करने के लिए लॉजिक जोड़ना होगा. इस गाइड में, 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 से जुड़ी गड़बड़ी के कुछ मैसेज में, GoogleAdsError के location फ़ील्ड में fieldPathElements शामिल होता है. इससे पता चलता है कि अनुरोध में गड़बड़ी कहां हुई. उदाहरण के लिए:

{
  "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 Developer Relations टीम के सदस्यों को आपके अनुरोध का पता लगाने में मदद मिलती है. ऐसा तब होता है, जब अनुरोध प्रोडक्शन एनवायरमेंट के लिए किया गया हो. हमारा सुझाव है कि आप रिस्पॉन्स हेडर में शामिल request-id या रिस्पॉन्स से जुड़ी गड़बड़ियों को शामिल करने वाले अपवादों को लॉग करें. साथ ही, सिर्फ़ request-id के बजाय ज़्यादा जानकारी दें.
  • समस्या हल करते समय, रनटाइम या इंटरप्रेटर वर्शन और प्लैटफ़ॉर्म जैसी अतिरिक्त जानकारी भी काम आ सकती है.

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

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

अगले चरण

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

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