Node.js

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. Para obtener más información, consulta Descarga Node.js®.

Instala la biblioteca cliente

Para comenzar, crea un proyecto nuevo en el IDE que elijas o agrega la dependencia a un proyecto existente. Google publica artefactos de la biblioteca 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 REST. Para ver ejemplos de cada método, consulta el repositorio de GitHub googleapis/google-cloud-node. En el siguiente ejemplo, se lee un Network objeto:

// 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 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 en all. Para obtener todos los nombres de paquetes de la biblioteca 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 generan 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 de la API. Para obtener ayuda con la solución de problemas, consulta Cómo comunicarte con la 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;
  }
}