thewizarodofoz / google-ad-manager-api

A modern wrapper around Google's Ad Manager API.
18 stars 16 forks source link
google google-ad-manager google-api-client google-api-client-library google-apis

Langauge

Google Ad Manager Node.js API

A modern wrapper around Google's Ad Manager API.

Features

npm i --save google-ad-manager-api

Usage

Step #1

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();

Step #2:

Create a DFP client:

import {DFP} from 'google-ad-manager-api';
const dfp = new DFP({networkCode: '...', apiVersion: 'v201805'});

Step #3

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);

Step #4

Invoke service methods:

const res = await lineItemService.getLineItemsByStatement({
    filterStatement: {
        query: "WHERE name LIKE 'prebid%'"
    }
});

console.log(res.results[0].id);

Notes