JSON マッピング

Search Ads 360 Reporting API の REST インターフェースを使用する場合、Search Ads 360 Reporting API の .proto 記述子ファイルで定義されているものと同じリソースとタイプの JSON 表現を操作することになります。JSON エンコード スキームは、プロトコル バッファ言語ガイドJSON マッピング セクションで説明されている正規のエンコード スキームに従っています。

一般に、サービスとの間のトップレベル メッセージはすべて単一の JSON オブジェクトです。search レスポンスは、クエリの結果セットを含む results 配列を含む JSON オブジェクトです。

識別子は、プロトコル バッファ内の snake_case から JSON 内の lowerCamelCase に変換されます。このルールの注意点の一つは、search または searchStream を使用して検索広告 360 のクエリ言語クエリを送信する場合です。使用しているインターフェースに関係なく、クエリ言語自体でスネークケースが使用されます。ただし、REST でのクエリの結果は通常の JSON オブジェクトとして返され、識別子は lowerCamelCase になります。

たとえば、アカウント内のアクティブなキーワードのリストを取得するクエリでは、クエリ自体の内部でスネークケースを使用します(adGroupCriterion ではなく ad_group_criterion)。

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 配列でラップ)であり、代わりにキャメルケース ID adGroupCriterion を使用します。

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