При использовании REST-интерфейса Google Ads API вы работаете с JSON-представлениями тех же ресурсов и типов, которые определены в файлах дескрипторов.proto Google Ads API. Схема кодирования JSON соответствует канонической схеме кодирования, описанной в разделе Сопоставление JSON руководства по языку для буферов протокола.
Как правило, все сообщения верхнего уровня, отправляемые сервисам и получаемые от них, представляют собой отдельные объекты JSON.
Большинство запросов mutate содержат массив operations, в котором, в свою очередь, много операций create, update или delete. Аналогично, ответы search представляют собой объекты JSON, содержащие массив results с набором результатов вашего запроса.
Идентификаторы преобразуются из змеиного регистра (в буферах протокола) в верблюжий регистр с маленькой буквы в JSON. Однако при использовании search или searchStream для отправки запросов на языке запросов Google Рекламы это правило не действует. В самом языке запросов используется змеиный регистр, независимо от того, какой интерфейс вы используете. Однако результаты запроса в 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" } } }, ... ] } ]