JSON मैपिंग

Google Ads API के REST इंटरफ़ेस का इस्तेमाल करते समय, आपको JSON और Google Ads API की .proto की जानकारी देने वाली फ़ाइलों में बताए गए एक ही तरह के संसाधनों को शामिल किया जाता है. JSON एन्कोडिंग स्कीम, प्रोटोकॉल बफ़र के JSON गाइड में JSON मैपिंग सेक्शन में बताई गई कैननिकल एन्कोडिंग स्कीम के मुताबिक बनाई जाती है.

आम तौर पर, सभी लेवल के सभी टॉप-लेवल के मैसेज, एक JSON ऑब्जेक्ट होते हैं. ज़्यादातर म्यूटेट अनुरोधों में एक operations कलेक्शन होता है, जिसमें कई create, update या delete कार्रवाइयां होती हैं. इसी तरह, search रिस्पॉन्स, ऐसे JSON ऑब्जेक्ट होते हैं जिनमें आपकी क्वेरी के नतीजे सेट वाली results ऐरे होती है.

JSON में, आइडेंटिफ़ायर को स्नेक_केस (प्रोटोकॉल बफ़र) से lowerCamelCase में बदला जाता है. Google Ads क्वेरी लैंग्वेज क्वेरी भेजने के लिए, search या searchStream का इस्तेमाल करते समय, इस नियम के बारे में एक अहम चेतावनी है. क्वेरी लैंग्वेज में ही स्नेप केस का इस्तेमाल होता है, चाहे आप किसी भी इंटरफ़ेस का इस्तेमाल करें. REST में मौजूद किसी क्वेरी के नतीजे, सामान्य JSON ऑब्जेक्ट के तौर पर दिखाए जाते हैं और उनके आइडेंटिफ़ायर लोअरकेसमेल केस में दिखाए जाते हैं.

उदाहरण के लिए, किसी खाते के चालू कीवर्ड की सूची फ़ेच करने के लिए, क्वेरी में अपने-आप ही स्नेक केस का इस्तेमाल होता है (ad_group_criterion, न कि adGroupCriterion):

POST /v16/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "query": "SELECT ad_group_criterion.keyword.text
            FROM ad_group_criterion
            WHERE ad_group_criterion.type = 'KEYWORD'
            AND ad_group_criterion.status = 'ENABLED'"
}

हालांकि, रिस्पॉन्स को ऑब्जेक्ट के JSON के तौर पर दिखाया जाता है. यह अनुरोध searchStream का इस्तेमाल करके किया जाता है. इसके लिए, यह JSON ऐरे में रैप होता है. इसके बजाय, यह कैमल केस आइडेंटिफ़ायर adGroupCriterion का इस्तेमाल करता है:

[
  {
    "results": [
      {
        "adGroupCriterion": {
          "resourceName": "customers/1842689525/adGroupCriteria/55771861891~10003060",
          "keyword": {
            "text": "pay per click"
          }
        }
      },
      ...
    ]
  }
]