Ánh xạ JSON

Khi sử dụng giao diện REST của Google Ads API, bạn đang làm việc với các biểu diễn JSON của cùng một tài nguyên và loại được xác định trong các tệp mô tả.proto của Google Ads API. Lược đồ mã hoá JSON tuân theo lược đồ mã hoá chính tắc được mô tả trong phần Ánh xạ JSON của Hướng dẫn về ngôn ngữ cho bộ đệm giao thức.

Nhìn chung, tất cả các thông báo cấp cao nhất đến và đi từ các dịch vụ đều là các đối tượng JSON riêng lẻ. Hầu hết các yêu cầu thay đổi tài nguyên đều chứa một mảng operations chứa nhiều thao tác create, update hoặc delete. Tương tự, các phản hồi search là các đối tượng JSON chứa một mảng results với tập kết quả của truy vấn.

Các mã nhận dạng được chuyển đổi từ snake_case (trong vùng đệm giao thức) thành lowerCamelCase trong JSON. Một lưu ý đáng chú ý đối với quy tắc này là khi sử dụng search hoặc searchStream để gửi các truy vấn bằng Ngôn ngữ truy vấn của Google Ads. Bản thân ngôn ngữ truy vấn sử dụng kiểu viết con rắn (viết thường chữ cái đầu tiên và thay dấu cách bằng dấu gạch dưới), bất kể bạn đang sử dụng giao diện nào. Tuy nhiên, kết quả của một truy vấn trong REST được trả về dưới dạng các đối tượng JSON thông thường và có mã nhận dạng ở dạng lowerCamelCase.

Ví dụ: một truy vấn để tìm nạp danh sách từ khoá đang hoạt động trong một tài khoản sử dụng kiểu viết con rắn (viết thường chữ cái đầu tiên và thay dấu cách bằng dấu gạch dưới) bên trong chính truy vấn đó (ad_group_criterion, không phải 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'"
}

Tuy nhiên, phản hồi là một biểu diễn JSON của các đối tượng (được gói trong một mảng JSON vì yêu cầu này sử dụng searchStream) và sử dụng mã nhận dạng camelCase adGroupCriterion thay thế:

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