A modern wrapper around Google's Ad Manager API.
npm i --save google-ad-manager-api
Obtain an access token in whatever way you like, for example using Google Auth Library's JSON Web Tokens mechanism:
const {auth} = require('google-auth-library');
const keys = {
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "...",
"client_email": "...",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "..."
};
const client = auth.fromJSON(keys);
client.scopes = ['https://www.googleapis.com/auth/dfp'];
await client.authorize();
Create a DFP client:
import {DFP} from 'google-ad-manager-api';
const dfp = new DFP({networkCode: '...', apiVersion: 'v201805'});
Use the client to create a service, and pass the auth token from step #1:
const lineItemService = await dfp.getService('LineItemService');
lineItemService.setToken(client.credentials.access_token);
Or even shorter (pass the token directly to getService
:
const lineItemService = await dfp.getService('LineItemService', client.credentials.access_token);
Invoke service methods:
const res = await lineItemService.getLineItemsByStatement({
filterStatement: {
query: "WHERE name LIKE 'prebid%'"
}
});
console.log(res.results[0].id);
rval
field for each method invocation.
To make things easier for us, this package will return the content of that field.
For example, invocation of LineItemService.getLineItemsByStatement
will return a LineItemPage
object directly. service.setToken
.