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 Query Language কোয়েরি পাঠানোর জন্য search বা searchStream ব্যবহার করার সময়। আপনি যে ইন্টারফেসই ব্যবহার করুন না কেন, কোয়েরি ভাষা নিজেই স্নেক কেস ব্যবহার করে। তবে, REST-এ কোয়েরির ফলাফল সাধারণ JSON অবজেক্ট হিসেবে দেখানো হয় এবং সেগুলির আইডেন্টিফায়ার lowerCamelCase-এ থাকে।

যেমন, কোনও অ্যাকাউন্টে অ্যাক্টিভ কীওয়ার্ডের তালিকা নিয়ে আসার জন্য কোয়েরি কোয়েরির মধ্যেই স্নেক কেস ব্যবহার করে (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"
          }
        }
      },
      ...
    ]
  }
]