JSON मैपिंग

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

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

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

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

POST /v26/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_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 का इस्तेमाल किया जाता है. साथ ही, इसमें camelCase आइडेंटिफ़ायर adGroupCriterion का इस्तेमाल किया जाता है:

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