Google fornisce una libreria client Node.js per interagire con l'API Ad Manager.
Prerequisito
Per utilizzare la libreria client Node.js, devi aver installato Node.js. Per ulteriori informazioni, vedi Scaricare Node.js®.
installa la libreria client
Per iniziare, crea un nuovo progetto nell'IDE che preferisci o aggiungi la
dipendenza a un progetto esistente. Google pubblica gli artefatti della libreria client su
npm come
@google-ads/admanager
.
package.json
"dependencies": {
"@google-ads/admanager": "^0.4.0"
}
Riga di comando
npm install @google-ads/admanager
Configurare le credenziali
Per l'autenticazione, la libreria client Node.js utilizza OAuth2 e le Credenziali predefinite dell'applicazione (ADC). Per creare e configurare le credenziali ADC, consulta la sezione Autenticazione.
Effettua la tua prima richiesta
Ogni servizio ha un oggetto ServiceClient
con metodi per ogni metodo REST.
Per esempi di ciascun metodo, consulta il repository GitHub
googleapis/google-cloud-node
.
L'esempio seguente legge un oggetto
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();
Registrare le richieste e le risposte HTTP
La libreria client Node.js supporta la registrazione delle richieste e delle risposte HTTP. Per impostazione predefinita, la libreria client disattiva la registrazione.
Per attivare la registrazione predefinita nell'output standard, imposta la variabile di ambiente
GOOGLE_SDK_NODE_LOGGING
su un elenco separato da virgole di nomi di pacchetti API di Google.
Puoi attivare la registrazione per tutte le API di Google impostando il valore della variabile su
all
. Per tutti i nomi dei pacchetti delle librerie client disponibili, consulta
Librerie client 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 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
In alternativa, puoi modificare il backend di logging o agganciare gli eventi di log. Per saperne di più, consulta Strumenti di logging di Google.
Gestisci gli errori
Nella libreria client Node.js, tutti gli errori dell'API Ad Manager generano un'eccezione di tipo GaxiosError.
Gli errori dell'API Ad Manager includono un messaggio di errore e un valore requestId
univoco
che puoi fornire al team di assistenza API. Per assistenza con la
risoluzione dei problemi, consulta Contattare l'assistenza API. L'esempio
seguente estrae il valore requestId
e il messaggio di errore:
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;
}
}