Google предоставляет клиентскую библиотеку Node.js для взаимодействия с Ad Manager API.
Подготовка
Чтобы использовать клиентскую библиотеку Node.js, необходимо установить Node.js. Подробнее о том, как скачать Node.js®…
Установите клиентскую библиотеку
Чтобы начать работу, создайте новый проект в выбранной вами IDE или добавьте зависимость в существующий проект. Google публикует артефакты клиентской библиотеки в npm как @google-ads/admanager.
package.json
"dependencies": {
"@google-ads/admanager": "^0.15.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 список названий пакетов API Google, разделенных запятыми.
Чтобы включить ведение журналов для всех API Google, задайте для переменной значение
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…
Обработка ошибок
В клиентской библиотеке Node.js все ошибки Ad Manager API вызывают исключение типа GaxiosError.
Ошибки Ad Manager API содержат сообщение об ошибке и уникальное значение 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;
}
}