Google предоставляет клиентскую библиотеку Node.js для взаимодействия с API Ad Manager.
Предварительное условие
Для использования клиентской библиотеки Node.js необходимо установить Node.js. Дополнительную информацию см. в разделе «Загрузка Node.js®» .
Установите клиентскую библиотеку.
Для начала создайте новый проект в выбранной вами IDE или добавьте зависимость к существующему проекту. Google публикует артефакты клиентской библиотеки в npm как @google-ads/admanager .
package.json
"dependencies": {
"@google-ads/admanager": "^0.4.0"
}
Командная строка
npm install @google-ads/admanager
Настройка учетных данных
Для аутентификации клиентская библиотека Node.js использует OAuth2 и учетные данные приложения по умолчанию (ADC). Инструкции по созданию и настройке учетных данных ADC см. в разделе «Аутентификация» .
Сделайте свой первый запрос
Каждый сервис имеет объект ServiceClient с методами для каждого REST-метода. Примеры каждого метода можно найти в репозитории GitHub googleapis/google-cloud-node . Следующий пример считывает объект Network :
// Resource name of the Network
const name = 'networks/NETWORK_CODE'
// Imports the Admanager library
const {NetworkServiceClient} = require('@google-ads/admanager').v1;
// Instantiates a client
const admanagerClient = new NetworkServiceClient();
async function callGetNetwork() {
// Construct request
const request = {
name,
};
// Run request
const response = await admanagerClient.getNetwork(request);
console.log(response);
}
callGetNetwork();
Регистрируйте HTTP-запросы и ответы.
Клиентская библиотека Node.js поддерживает логирование HTTP-запросов и ответов. По умолчанию логирование отключено.
Чтобы включить вывод логов по умолчанию в стандартный поток вывода, установите переменную среды GOOGLE_SDK_NODE_LOGGING в список имен пакетов Google API, разделенных запятыми. Вы можете включить логирование для всех Google API, установив значение переменной равным all . Список всех доступных имен пакетов клиентских библиотек см. в разделе «Клиентские библиотеки Google Cloud Node.js».
Node.js
// Enable logging for the Google Ad Manager API
process.env.GOOGLE_SDK_NODE_LOGGING = 'admanager';
// Enable logging for the Google Ad Manager and pubsub APIs.
process.env.GOOGLE_SDK_NODE_LOGGING = 'admanager,pubsub';
// Enable logging for all Google APIs
process.env.GOOGLE_SDK_NODE_LOGGING = 'all';
Linux или macOS
# Enable logging for the Google Ad Manager API.
export GOOGLE_SDK_NODE_LOGGING=admanager
# Enable logging for the Google Ad Manager and pubsub APIs.
export GOOGLE_SDK_NODE_LOGGING=admanager,pubsub
# Enable logging for all Google APIs
export GOOGLE_SDK_NODE_LOGGING=all
Windows
# Enable logging for the Google Ad Manager API.
set GOOGLE_SDK_NODE_LOGGING=admanager
# Enable logging for the Google Ad Manager and pubsub APIs.
set GOOGLE_SDK_NODE_LOGGING=admanager,pubsub
# Enable logging for all Google APIs
set GOOGLE_SDK_NODE_LOGGING=all
В качестве альтернативы вы можете изменить систему логирования или перехватывать события логирования. Для получения дополнительной информации см. Google Logging Tools .
Обработка ошибок
В клиентской библиотеке Node.js все ошибки API Ad Manager генерируют исключение типа GaxiosError .
Ошибки API Ad Manager включают сообщение об ошибке и уникальное значение requestId , которое вы можете предоставить команде поддержки API. Для получения помощи в устранении неполадок см. раздел «Связаться со службой поддержки API» . В следующем примере извлекаются значение requestId и сообщение об ошибке:
const admanagerClient = new NetworkServiceClient();
try {
const network = admanagerClient.getNetwork(
{ name: 'networks/NETWORK_CODE' }
);
console.log(network);
} catch(e) {
if (e instanceof GaxiosError) {
// Load the error
const apiError = JSON.parse(e.message).error;
const requestInfoType = 'type.googleapis.com/google.rpc.RequestInfo';
const requestInfo = apiError.details.find(detail => detail['@type'] === requestInfoType);
console.error(apiError.status + ' - ' + apiError.message);
console.error('RequestId: ' + requestInfo.requestId);
} else {
throw e;
}
}