JSON ম্যাপিং

Search Ads 360 Reporting API-এর REST ইন্টারফেস ব্যবহার করার সময়, আপনি Search Ads 360 Reporting API-এর .proto ডেসক্রিপ্টর ফাইলে একই রিসোর্স ও ধরনের JSON প্রতিনিধিত্বের সাথে কাজ করছেন। JSON এনকোডিং স্কিম, প্রোটোকল বাফারের ভাষা নির্দেশিকা-এর JSON ম্যাপিং বিভাগে বর্ণিত ক্যানোনিকাল এনকোডিং স্কিম অনুসরণ করে।

সাধারণত, পরিষেবা থেকে পাঠানো এবং পাওয়া সব টপ-লেভেল মেসেজ সিঙ্গল JSON অবজেক্ট হয়। search উত্তর হল JSON অবজেক্ট যাতে আপনার কোয়েরির ফলাফল সেট সহ results অ্যারে থাকে।

JSON-এ শনাক্তকারীকে snake_case (প্রোটোকল বাফার) থেকে lowerCamelCase-এ পরিবর্তন করা হয়। এই নিয়মের একটি উল্লেখযোগ্য ব্যতিক্রম হল, Search Ads 360 কোয়েরি ল্যাঙ্গুয়েজ কোয়েরি পাঠানোর জন্য search বা searchStream ব্যবহার করার সময়। আপনি যে ইন্টারফেস ব্যবহার করছেন তা নির্বিশেষে, কোয়েরি ভাষাটি নিজেই স্নেক কেস ব্যবহার করে। তবে, REST-এ কোয়েরির ফলাফল সাধারণ JSON অবজেক্ট হিসেবে ফেরত পাঠানো হয় এবং সেগুলির আইডেন্টিফায়ার lowerCamelCase-এ থাকে।

যেমন, কোনও অ্যাকাউন্টে অ্যাক্টিভ কীওয়ার্ডের তালিকা পাওয়ার জন্য কোয়েরি কোয়েরির মধ্যেই স্নেক কেস ব্যবহার করে (ad_group_criterion, adGroupCriterion নয়):

POST /v0/customers/CUSTOMER_ID/searchAds360:searchStream HTTP/1.1
Host: searchads360.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 উপস্থাপনা (যেহেতু এই অনুরোধে searchStream ব্যবহার করা হয়েছে তাই এটি JSON অ্যারেতে মোড়ানো) এবং এর পরিবর্তে camelCase শনাক্তকারী adGroupCriterion ব্যবহার করে:

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