JSON मैपिंग

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

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

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

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

POST /v19/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 के तौर पर दिखाया जाता है. यह JSON ऐरे में होता है, क्योंकि यह अनुरोध searchStream का इस्तेमाल करता है. साथ ही, इसमें कैमेल केस आइडेंटिफ़ायर adGroupCriterion का इस्तेमाल किया जाता है:

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