JSON マッピング

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

通常、サービスとの間のすべての上位レベルのメッセージは単一の JSON オブジェクトです。ほとんどの ミューテーション リクエストには、createupdatedelete オペレーションを多く含む operations 配列が含まれています。同様に、search レスポンスは、クエリの結果セットを含む results 配列を含む JSON オブジェクトです。

ID は、JSON で snake_case(プロトコル バッファ内)から lowerCamelCase に変換されます。このルールには、search または searchStream を使用して Google Ads Query Language クエリを送信するときに注意すべき点があります。使用しているインターフェースに関係なく、クエリ言語自体にはスネークケースが使用されます。ただし、REST クエリの結果は、通常の JSON オブジェクトとして返され、lowerCamelCase に識別子が含まれます。

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

POST /v16/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 表現(このリクエストは searchStream を使用しているため、JSON 配列でラップされています)であり、代わりにキャメルケース識別子 adGroupCriterion を使用しています。

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