Google proporciona una biblioteca cliente de Node.js para interactuar con la API de Ad Manager.
Requisitos
Para usar la biblioteca cliente de Node.js, debes tener instalado Node.js. Si deseas obtener más información, consulta Descarga Node.js®.
Instala la biblioteca cliente
Para comenzar, crea un proyecto nuevo en el IDE que prefieras o agrega la dependencia a un proyecto existente. Google publica artefactos de bibliotecas cliente en npm como @google-ads/admanager
.
package.json
"dependencies": {
"@google-ads/admanager": "^0.4.0"
}
Línea de comandos
npm install @google-ads/admanager
Configura las credenciales
Para autenticarse, la biblioteca cliente de Node.js usa OAuth2 y las credenciales predeterminadas de la aplicación (ADC). Para crear y configurar tus credenciales de ADC, consulta Autenticación.
Realiza tu primera solicitud
Cada servicio tiene un objeto ServiceClient
con métodos para cada método de REST.
Para ver ejemplos de cada método, consulta el repositorio de GitHub googleapis/google-cloud-node
.
En el siguiente ejemplo, se lee un objeto 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();
Registra las solicitudes y respuestas HTTP
La biblioteca cliente de Node.js admite el registro de solicitudes y respuestas HTTP. De forma predeterminada, la biblioteca cliente inhabilita el registro.
Para habilitar el registro predeterminado en la salida estándar, configura la variable de entorno GOOGLE_SDK_NODE_LOGGING
en una lista separada por comas de nombres de paquetes de la API de Google.
Puedes habilitar el registro para todas las APIs de Google si configuras el valor de la variable como all
. Para conocer todos los nombres de paquetes de bibliotecas cliente disponibles, consulta Bibliotecas cliente de Google Cloud para 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 o 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
Como alternativa, puedes cambiar el backend de registro o conectar eventos de registro. Para obtener más información, consulta Herramientas de registro de Google.
Soluciona errores
En la biblioteca cliente de Node.js, todos los errores de la API de Ad Manager arrojan una excepción de tipo GaxiosError.
Los errores de la API de Ad Manager incluyen un mensaje de error y un valor requestId
único que puedes proporcionar al equipo de asistencia al cliente de la API. Para obtener ayuda con la solución de problemas, consulta Comunícate con el equipo de asistencia de la API. En el siguiente ejemplo, se extraen el valor requestId
y el mensaje de error:
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;
}
}