SOAP API Менеджера рекламы – это устаревший API для чтения и записи данных Менеджера рекламы, а также создания отчетов. Если вы можете выполнить миграцию, мы рекомендуем использовать API Менеджера рекламы (бета). Однако версии SOAP API Менеджера рекламы поддерживаются в течение обычного жизненного цикла. Дополнительную информацию см. в Графике прекращения поддержки SOAP API Менеджера рекламы.
В следующем руководстве описаны различия между API SOAP Менеджера рекламы и API Менеджера рекламы (бета-версия).
Учиться
Стандартные методы обслуживания SOAP API Менеджера рекламы имеют эквивалентные концепции в API Менеджера рекламы. В API Менеджера рекламы также есть методы для чтения отдельных объектов. В следующей таблице показан пример сопоставления методов Order
:
SOAP-метод | REST-методы |
---|---|
getOrdersByStatement | networks.orders.get networks.orders.list |
Аутентификация
Для аутентификации с помощью API Менеджера рекламы (бета-версия) вы можете использовать существующие учетные данные SOAP API Менеджера рекламы или создать новые. В любом случае вам необходимо сначала включить API Менеджера рекламы в своем проекте Google Cloud. Дополнительные сведения см. в разделе Аутентификация .
Если вы используете клиентскую библиотеку, настройте учетные данные приложения по умолчанию, задав для переменной среды GOOGLE_APPLICATION_CREDENTIALS
путь к файлу ключей вашей учетной записи службы. Дополнительные сведения см. в разделе Как работают учетные данные приложения по умолчанию .
Если вы используете учетные данные установленного приложения, создайте файл JSON в следующем формате и вместо этого задайте для переменной среды его путь:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "REFRESH_TOKEN",
"type": "authorized_user"
}
Замените следующие значения:
-
CLIENT_ID
: ваш новый или существующий идентификатор клиента. -
CLIENT_SECRET
: ваш новый или существующий секрет клиента. REFRESH_TOKEN
: ваш новый или существующий токен обновления.
Линукс или МакОС
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Окна
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Понимание различий в фильтрах
Язык запросов API Менеджера рекламы (бета-версия) поддерживает все функции языка запросов издателя (PQL), но существуют значительные синтаксические различия.
Этот пример перечисления объектов Order
иллюстрирует основные изменения, такие как удаление переменных привязки, операторов, чувствительных к регистру, и замена предложений ORDER BY
и LIMIT
отдельными полями:
API SOAP Менеджера рекламы
<filterStatement>
<query>WHERE name like "PG_%" and lastModifiedDateTime >= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
<values>
<key>lastModifiedDateTime</key>
<value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
<value>
<date>
<year>2024</year>
<month>1</month>
<day>1</day>
</date>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<timeZoneId>America/New_York</timeZoneId>
</value>
</value>
</values>
</filterStatement>
API Менеджера рекламы (бета)
Формат JSON
{
"filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
"pageSize": 500,
"orderBy": "name"
}
URL-адрес закодирован
GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"
API Менеджера рекламы (бета-версия) поддерживает все возможности PQL, но имеет следующие синтаксические отличия от API SOAP Менеджера рекламы:
В API Менеджера рекламы (бета-версия) операторы
AND
иOR
чувствительны к регистру . Строчные буквыand
иor
рассматриваются как обычные строки поиска. Это функция API Менеджера рекламы (бета-версия) для поиска по полям.Используйте операторы верхнего регистра
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = false
Нижний регистр рассматривается как буквальный
// Matches unarchived Orders where order.notes has the value 'lorem ipsum' // and any field in the order has the literal value 'and'. notes = "lorem ipsum" and archived = false
Символ
*
является подстановочным знаком для сопоставления строк. API Менеджера рекламы (бета-версия) не поддерживает операторlike
.Менеджер рекламы SOAP API PQL
// Matches orders where displayName starts with the string 'PG_' displayName like "PG_%"
API Менеджера рекламы (бета)
// Matches orders where displayName starts with the string 'PG_' displayName = "PG_*"
Имена полей должны находиться слева от оператора сравнения:
Действительный фильтр
updateTime > "2024-01-01T00:00:00Z"
Неверный фильтр
"2024-01-01T00:00:00Z" < updateTime
API Менеджера рекламы (бета-версия) не поддерживает переменные привязки. Все значения должны быть встроенными.
Строковые литералы, содержащие пробелы, должны быть заключены в двойные кавычки, например,
"Foo bar"
. Вы не можете использовать одинарные кавычки для заключения строковых литералов.
Удалить порядок по пунктам
В API Менеджера рекламы (бета-версия) указывать порядок сортировки необязательно. Если вы хотите указать порядок сортировки для вашего набора результатов, удалите предложение PQL ORDER BY
и установите вместо него поле orderBy
:
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
Миграция со смещений на токены нумерации страниц
API Менеджера рекламы (бета-версия) использует токены нумерации страниц вместо предложений LIMIT
и OFFSET
для постраничного просмотра больших наборов результатов.
API Менеджера рекламы (бета-версия) использует параметр pageSize
для управления размером страницы. В отличие от предложения LIMIT
в SOAP API Менеджера рекламы, отсутствие размера страницы не возвращает весь набор результатов. Вместо этого метод list использует размер страницы по умолчанию 50
. В следующем примере в качестве параметров URL задаются pageSize
и pageToken
:
# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50
# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
В отличие от SOAP API Менеджера рекламы, API Менеджера рекламы (бета-версия) может возвращать меньше результатов, чем запрошенный размер страницы, даже если есть дополнительные страницы. Используйте поле nextPageToken
, чтобы определить, есть ли дополнительные результаты.
Хотя для нумерации страниц смещение не требуется, вы можете использовать поле skip
для многопоточности. При многопоточности используйте токен нумерации страниц с первой страницы, чтобы гарантировать, что вы читаете из одного и того же набора результатов:
# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50