
npm install google-ad-manager-api``bash`
npm i --save google-ad-manager-api
ts
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();
`$3
Create a DFP client:
`ts
import {DFP} from 'google-ad-manager-api';
const dfp = new DFP({networkCode: '...', apiVersion: 'v201805'});
`$3
Use the client to create a service, and pass the auth token from step #1:
`ts
const lineItemService = await dfp.getService('LineItemService');
lineItemService.setToken(client.credentials.access_token);
`
Or even shorter (pass the token directly to getService:
`ts
const lineItemService = await dfp.getService('LineItemService', client.credentials.access_token);
`$3
Invoke service methods:
`ts
const res = await lineItemService.getLineItemsByStatement({
filterStatement: {
query: "WHERE name LIKE 'prebid%'"
}
});console.log(res.results[0].id);
`Notes
* The Ad Manager API returns an 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.
* Google auth tokens have expiration dates and they need to be updated or refreshed in some way. Because authentication management is outside the scope of this package, make sure to always pass the new tokens to the services instances using service.setToken`.