@google-ads/admanager
Version:
Google Ad Manager API client for Node.js
1,116 lines • 52.9 kB
JavaScript
"use strict";
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **
Object.defineProperty(exports, "__esModule", { value: true });
exports.AdUnitServiceClient = void 0;
const jsonProtos = require("../../protos/protos.json");
const google_gax_1 = require("google-gax");
/**
* Client JSON configuration object, loaded from
* `src/v1/ad_unit_service_client_config.json`.
* This file defines retry strategy and timeouts for all API methods in this library.
*/
const gapicConfig = require("./ad_unit_service_client_config.json");
const version = require('../../../package.json').version;
/**
* Provides methods for handling AdUnit objects.
* @class
* @memberof v1
*/
class AdUnitServiceClient {
_terminated = false;
_opts;
_providedCustomServicePath;
_gaxModule;
_gaxGrpc;
_protos;
_defaults;
_universeDomain;
_servicePath;
_log = google_gax_1.loggingUtils.log('admanager');
auth;
descriptors = {
page: {},
stream: {},
longrunning: {},
batching: {},
};
warn;
innerApiCalls;
pathTemplates;
adUnitServiceStub;
/**
* Construct an instance of AdUnitServiceClient.
*
* @param {object} [options] - The configuration object.
* The options accepted by the constructor are described in detail
* in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance).
* The common options are:
* @param {object} [options.credentials] - Credentials object.
* @param {string} [options.credentials.client_email]
* @param {string} [options.credentials.private_key]
* @param {string} [options.email] - Account email address. Required when
* using a .pem or .p12 keyFilename.
* @param {string} [options.keyFilename] - Full path to the a .json, .pem, or
* .p12 key downloaded from the Google Developers Console. If you provide
* a path to a JSON file, the projectId option below is not necessary.
* NOTE: .pem and .p12 require you to specify options.email as well.
* @param {number} [options.port] - The port on which to connect to
* the remote host.
* @param {string} [options.projectId] - The project ID from the Google
* Developer's Console, e.g. 'grape-spaceship-123'. We will also check
* the environment variable GCLOUD_PROJECT for your project ID. If your
* app is running in an environment which supports
* {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials},
* your project ID will be detected automatically.
* @param {string} [options.apiEndpoint] - The domain name of the
* API remote host.
* @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
* Follows the structure of {@link gapicConfig}.
* @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode.
* For more information, please check the
* {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}.
* @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you
* need to avoid loading the default gRPC version and want to use the fallback
* HTTP implementation. Load only fallback version and pass it to the constructor:
* ```
* const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC
* const client = new AdUnitServiceClient({fallback: true}, gax);
* ```
*/
constructor(opts, gaxInstance) {
// Ensure that options include all the required fields.
const staticMembers = this.constructor;
if (opts?.universe_domain &&
opts?.universeDomain &&
opts?.universe_domain !== opts?.universeDomain) {
throw new Error('Please set either universe_domain or universeDomain, but not both.');
}
const universeDomainEnvVar = typeof process === 'object' && typeof process.env === 'object'
? process.env['GOOGLE_CLOUD_UNIVERSE_DOMAIN']
: undefined;
this._universeDomain =
opts?.universeDomain ??
opts?.universe_domain ??
universeDomainEnvVar ??
'googleapis.com';
this._servicePath = 'admanager.' + this._universeDomain;
const servicePath = opts?.servicePath || opts?.apiEndpoint || this._servicePath;
this._providedCustomServicePath = !!(opts?.servicePath || opts?.apiEndpoint);
const port = opts?.port || staticMembers.port;
const clientConfig = opts?.clientConfig ?? {};
// Implicitly enable HTTP transport for the APIs that use REST as transport (e.g. Google Cloud Compute).
if (!opts) {
opts = { fallback: true };
}
else {
opts.fallback = opts.fallback ?? true;
}
const fallback = opts?.fallback ??
(typeof window !== 'undefined' && typeof window?.fetch === 'function');
opts = Object.assign({ servicePath, port, clientConfig, fallback }, opts);
// Request numeric enum values if REST transport is used.
opts.numericEnums = true;
// If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case.
if (servicePath !== this._servicePath && !('scopes' in opts)) {
opts['scopes'] = staticMembers.scopes;
}
// Load google-gax module synchronously if needed
if (!gaxInstance) {
gaxInstance = require('google-gax');
}
// Choose either gRPC or proto-over-HTTP implementation of google-gax.
this._gaxModule = opts.fallback ? gaxInstance.fallback : gaxInstance;
// Create a `gaxGrpc` object, with any grpc-specific options sent to the client.
this._gaxGrpc = new this._gaxModule.GrpcClient(opts);
// Save options to use in initialize() method.
this._opts = opts;
// Save the auth object to the client, for use by other methods.
this.auth = this._gaxGrpc.auth;
// Set useJWTAccessWithScope on the auth object.
this.auth.useJWTAccessWithScope = true;
// Set defaultServicePath on the auth object.
this.auth.defaultServicePath = this._servicePath;
// Set the default scopes in auth client if needed.
if (servicePath === this._servicePath) {
this.auth.defaultScopes = staticMembers.scopes;
}
// Determine the client header string.
const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`];
if (typeof process === 'object' && 'versions' in process) {
clientHeader.push(`gl-node/${process.versions.node}`);
}
else {
clientHeader.push(`gl-web/${this._gaxModule.version}`);
}
if (!opts.fallback) {
clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`);
}
else {
clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`);
}
if (opts.libName && opts.libVersion) {
clientHeader.push(`${opts.libName}/${opts.libVersion}`);
}
// Load the applicable protos.
this._protos = this._gaxGrpc.loadProtoJSON(jsonProtos);
// This API contains "path templates"; forward-slash-separated
// identifiers to uniquely identify resources within the API.
// Create useful helper objects for these.
this.pathTemplates = {
adUnitPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/adUnits/{ad_unit}'),
companyPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/companies/{company}'),
contactPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/contacts/{contact}'),
customFieldPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/customFields/{custom_field}'),
customTargetingKeyPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/customTargetingKeys/{custom_targeting_key}'),
customTargetingValuePathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/customTargetingKeys/{custom_targeting_key}/customTargetingValues/{custom_targeting_value}'),
entitySignalsMappingPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/entitySignalsMappings/{entity_signals_mapping}'),
labelPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/labels/{label}'),
networkPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}'),
orderPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/orders/{order}'),
placementPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/placements/{placement}'),
reportPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/reports/{report}'),
rolePathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/roles/{role}'),
taxonomyCategoryPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/taxonomyCategories/{taxonomy_category}'),
teamPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/teams/{team}'),
userPathTemplate: new this._gaxModule.PathTemplate('networks/{network_code}/users/{user}'),
};
// Some of the methods on this service return "paged" results,
// (e.g. 50 results at a time, with tokens to get subsequent
// pages). Denote the keys used for pagination and results.
this.descriptors.page = {
listAdUnits: new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'adUnits'),
listAdUnitSizes: new this._gaxModule.PageDescriptor('pageToken', 'nextPageToken', 'adUnitSizes'),
};
// Put together the default options sent with requests.
this._defaults = this._gaxGrpc.constructSettings('google.ads.admanager.v1.AdUnitService', gapicConfig, opts.clientConfig || {}, { 'x-goog-api-client': clientHeader.join(' ') });
// Set up a dictionary of "inner API calls"; the core implementation
// of calling the API is handled in `google-gax`, with this code
// merely providing the destination and request information.
this.innerApiCalls = {};
// Add a warn function to the client constructor so it can be easily tested.
this.warn = this._gaxModule.warn;
}
/**
* Initialize the client.
* Performs asynchronous operations (such as authentication) and prepares the client.
* This function will be called automatically when any class method is called for the
* first time, but if you need to initialize it before calling an actual method,
* feel free to call initialize() directly.
*
* You can await on this method if you want to make sure the client is initialized.
*
* @returns {Promise} A promise that resolves to an authenticated service stub.
*/
initialize() {
// If the client stub promise is already initialized, return immediately.
if (this.adUnitServiceStub) {
return this.adUnitServiceStub;
}
// Put together the "service stub" for
// google.ads.admanager.v1.AdUnitService.
this.adUnitServiceStub = this._gaxGrpc.createStub(this._opts.fallback
? this._protos.lookupService('google.ads.admanager.v1.AdUnitService')
: // eslint-disable-next-line @typescript-eslint/no-explicit-any
this._protos.google.ads.admanager.v1.AdUnitService, this._opts, this._providedCustomServicePath);
// Iterate over each of the methods that the service provides
// and create an API call method for each.
const adUnitServiceStubMethods = [
'getAdUnit',
'listAdUnits',
'listAdUnitSizes',
];
for (const methodName of adUnitServiceStubMethods) {
const callPromise = this.adUnitServiceStub.then(stub => (...args) => {
if (this._terminated) {
return Promise.reject('The client has already been closed.');
}
const func = stub[methodName];
return func.apply(stub, args);
}, (err) => () => {
throw err;
});
const descriptor = this.descriptors.page[methodName] || undefined;
const apiCall = this._gaxModule.createApiCall(callPromise, this._defaults[methodName], descriptor, this._opts.fallback);
this.innerApiCalls[methodName] = apiCall;
}
return this.adUnitServiceStub;
}
/**
* The DNS address for this API service.
* @deprecated Use the apiEndpoint method of the client instance.
* @returns {string} The DNS address for this service.
*/
static get servicePath() {
if (typeof process === 'object' &&
typeof process.emitWarning === 'function') {
process.emitWarning('Static servicePath is deprecated, please use the instance method instead.', 'DeprecationWarning');
}
return 'admanager.googleapis.com';
}
/**
* The DNS address for this API service - same as servicePath.
* @deprecated Use the apiEndpoint method of the client instance.
* @returns {string} The DNS address for this service.
*/
static get apiEndpoint() {
if (typeof process === 'object' &&
typeof process.emitWarning === 'function') {
process.emitWarning('Static apiEndpoint is deprecated, please use the instance method instead.', 'DeprecationWarning');
}
return 'admanager.googleapis.com';
}
/**
* The DNS address for this API service.
* @returns {string} The DNS address for this service.
*/
get apiEndpoint() {
return this._servicePath;
}
get universeDomain() {
return this._universeDomain;
}
/**
* The port for this API service.
* @returns {number} The default port for this service.
*/
static get port() {
return 443;
}
/**
* The scopes needed to make gRPC calls for every method defined
* in this service.
* @returns {string[]} List of default scopes.
*/
static get scopes() {
return [];
}
/**
* Return the project ID used by this class.
* @returns {Promise} A promise that resolves to string containing the project ID.
*/
getProjectId(callback) {
if (callback) {
this.auth.getProjectId(callback);
return;
}
return this.auth.getProjectId();
}
getAdUnit(request, optionsOrCallback, callback) {
request = request || {};
let options;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
}
else {
options = optionsOrCallback;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
name: request.name ?? '',
});
this.initialize().catch(err => {
throw err;
});
this._log.info('getAdUnit request %j', request);
const wrappedCallback = callback
? (error, response, options, rawResponse) => {
this._log.info('getAdUnit response %j', response);
callback(error, response, options, rawResponse); // We verified callback above.
}
: undefined;
return this.innerApiCalls
.getAdUnit(request, options, wrappedCallback)
?.then(([response, options, rawResponse]) => {
this._log.info('getAdUnit response %j', response);
return [response, options, rawResponse];
});
}
listAdUnits(request, optionsOrCallback, callback) {
request = request || {};
let options;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
}
else {
options = optionsOrCallback;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
this.initialize().catch(err => {
throw err;
});
const wrappedCallback = callback
? (error, values, nextPageRequest, rawResponse) => {
this._log.info('listAdUnits values %j', values);
callback(error, values, nextPageRequest, rawResponse); // We verified callback above.
}
: undefined;
this._log.info('listAdUnits request %j', request);
return this.innerApiCalls
.listAdUnits(request, options, wrappedCallback)
?.then(([response, input, output]) => {
this._log.info('listAdUnits values %j', response);
return [response, input, output];
});
}
/**
* Equivalent to `listAdUnits`, but returns a NodeJS Stream object.
* @param {Object} request
* The request object that will be sent.
* @param {string} request.parent
* Required. The parent, which owns this collection of AdUnits.
* Format: `networks/{network_code}`
* @param {number} [request.pageSize]
* Optional. The maximum number of AdUnits to return. The service may return
* fewer than this value. If unspecified, at most 50 ad units will be
* returned. The maximum value is 1000; values above 1000 will be coerced to
* 1000.
* @param {string} [request.pageToken]
* Optional. A page token, received from a previous `ListAdUnits` call.
* Provide this to retrieve the subsequent page.
*
* When paginating, all other parameters provided to `ListAdUnits` must match
* the call that provided the page token.
* @param {string} [request.filter]
* Optional. Expression to filter the response.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters
* @param {string} [request.orderBy]
* Optional. Expression to specify sorting order.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters#order
* @param {number} [request.skip]
* Optional. Number of individual resources to skip while paginating.
* @param {object} [options]
* Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
* @returns {Stream}
* An object stream which emits an object representing {@link protos.google.ads.admanager.v1.AdUnit|AdUnit} on 'data' event.
* The client library will perform auto-pagination by default: it will call the API as many
* times as needed. Note that it can affect your quota.
* We recommend using `listAdUnitsAsync()`
* method described below for async iteration which you can stop as needed.
* Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
* for more details and examples.
*/
listAdUnitsStream(request, options) {
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
const defaultCallSettings = this._defaults['listAdUnits'];
const callSettings = defaultCallSettings.merge(options);
this.initialize().catch(err => {
throw err;
});
this._log.info('listAdUnits stream %j', request);
return this.descriptors.page.listAdUnits.createStream(this.innerApiCalls.listAdUnits, request, callSettings);
}
/**
* Equivalent to `listAdUnits`, but returns an iterable object.
*
* `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
* @param {Object} request
* The request object that will be sent.
* @param {string} request.parent
* Required. The parent, which owns this collection of AdUnits.
* Format: `networks/{network_code}`
* @param {number} [request.pageSize]
* Optional. The maximum number of AdUnits to return. The service may return
* fewer than this value. If unspecified, at most 50 ad units will be
* returned. The maximum value is 1000; values above 1000 will be coerced to
* 1000.
* @param {string} [request.pageToken]
* Optional. A page token, received from a previous `ListAdUnits` call.
* Provide this to retrieve the subsequent page.
*
* When paginating, all other parameters provided to `ListAdUnits` must match
* the call that provided the page token.
* @param {string} [request.filter]
* Optional. Expression to filter the response.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters
* @param {string} [request.orderBy]
* Optional. Expression to specify sorting order.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters#order
* @param {number} [request.skip]
* Optional. Number of individual resources to skip while paginating.
* @param {object} [options]
* Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
* @returns {Object}
* An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
* When you iterate the returned iterable, each element will be an object representing
* {@link protos.google.ads.admanager.v1.AdUnit|AdUnit}. The API will be called under the hood as needed, once per the page,
* so you can stop the iteration when you don't need more results.
* Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
* for more details and examples.
* @example <caption>include:samples/generated/v1/ad_unit_service.list_ad_units.js</caption>
* region_tag:admanager_v1_generated_AdUnitService_ListAdUnits_async
*/
listAdUnitsAsync(request, options) {
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
const defaultCallSettings = this._defaults['listAdUnits'];
const callSettings = defaultCallSettings.merge(options);
this.initialize().catch(err => {
throw err;
});
this._log.info('listAdUnits iterate %j', request);
return this.descriptors.page.listAdUnits.asyncIterate(this.innerApiCalls['listAdUnits'], request, callSettings);
}
listAdUnitSizes(request, optionsOrCallback, callback) {
request = request || {};
let options;
if (typeof optionsOrCallback === 'function' && callback === undefined) {
callback = optionsOrCallback;
options = {};
}
else {
options = optionsOrCallback;
}
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
this.initialize().catch(err => {
throw err;
});
const wrappedCallback = callback
? (error, values, nextPageRequest, rawResponse) => {
this._log.info('listAdUnitSizes values %j', values);
callback(error, values, nextPageRequest, rawResponse); // We verified callback above.
}
: undefined;
this._log.info('listAdUnitSizes request %j', request);
return this.innerApiCalls
.listAdUnitSizes(request, options, wrappedCallback)
?.then(([response, input, output]) => {
this._log.info('listAdUnitSizes values %j', response);
return [response, input, output];
});
}
/**
* Equivalent to `listAdUnitSizes`, but returns a NodeJS Stream object.
* @param {Object} request
* The request object that will be sent.
* @param {string} request.parent
* Required. The parent, which owns this collection of AdUnitSizes.
* Format: `networks/{network_code}`
* @param {number} [request.pageSize]
* Optional. The maximum number of AdUnitSizes to return. The service may
* return fewer than this value. If unspecified, at most 50 ad unit sizes will
* be returned. The maximum value is 1000; values above 1000 will be coerced
* to 1000.
* @param {string} [request.pageToken]
* Optional. A page token, received from a previous `ListAdUnitSizes` call.
* Provide this to retrieve the subsequent page.
*
* When paginating, all other parameters provided to `ListAdUnitSizes` must
* match the call that provided the page token.
* @param {string} [request.filter]
* Optional. Expression to filter the response.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters
* @param {string} [request.orderBy]
* Optional. Expression to specify sorting order.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters#order
* @param {number} [request.skip]
* Optional. Number of individual resources to skip while paginating.
* @param {object} [options]
* Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
* @returns {Stream}
* An object stream which emits an object representing {@link protos.google.ads.admanager.v1.AdUnitSize|AdUnitSize} on 'data' event.
* The client library will perform auto-pagination by default: it will call the API as many
* times as needed. Note that it can affect your quota.
* We recommend using `listAdUnitSizesAsync()`
* method described below for async iteration which you can stop as needed.
* Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
* for more details and examples.
*/
listAdUnitSizesStream(request, options) {
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
const defaultCallSettings = this._defaults['listAdUnitSizes'];
const callSettings = defaultCallSettings.merge(options);
this.initialize().catch(err => {
throw err;
});
this._log.info('listAdUnitSizes stream %j', request);
return this.descriptors.page.listAdUnitSizes.createStream(this.innerApiCalls.listAdUnitSizes, request, callSettings);
}
/**
* Equivalent to `listAdUnitSizes`, but returns an iterable object.
*
* `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
* @param {Object} request
* The request object that will be sent.
* @param {string} request.parent
* Required. The parent, which owns this collection of AdUnitSizes.
* Format: `networks/{network_code}`
* @param {number} [request.pageSize]
* Optional. The maximum number of AdUnitSizes to return. The service may
* return fewer than this value. If unspecified, at most 50 ad unit sizes will
* be returned. The maximum value is 1000; values above 1000 will be coerced
* to 1000.
* @param {string} [request.pageToken]
* Optional. A page token, received from a previous `ListAdUnitSizes` call.
* Provide this to retrieve the subsequent page.
*
* When paginating, all other parameters provided to `ListAdUnitSizes` must
* match the call that provided the page token.
* @param {string} [request.filter]
* Optional. Expression to filter the response.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters
* @param {string} [request.orderBy]
* Optional. Expression to specify sorting order.
* See syntax details at
* https://developers.google.com/ad-manager/api/beta/filters#order
* @param {number} [request.skip]
* Optional. Number of individual resources to skip while paginating.
* @param {object} [options]
* Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
* @returns {Object}
* An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
* When you iterate the returned iterable, each element will be an object representing
* {@link protos.google.ads.admanager.v1.AdUnitSize|AdUnitSize}. The API will be called under the hood as needed, once per the page,
* so you can stop the iteration when you don't need more results.
* Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
* for more details and examples.
* @example <caption>include:samples/generated/v1/ad_unit_service.list_ad_unit_sizes.js</caption>
* region_tag:admanager_v1_generated_AdUnitService_ListAdUnitSizes_async
*/
listAdUnitSizesAsync(request, options) {
request = request || {};
options = options || {};
options.otherArgs = options.otherArgs || {};
options.otherArgs.headers = options.otherArgs.headers || {};
options.otherArgs.headers['x-goog-request-params'] =
this._gaxModule.routingHeader.fromParams({
parent: request.parent ?? '',
});
const defaultCallSettings = this._defaults['listAdUnitSizes'];
const callSettings = defaultCallSettings.merge(options);
this.initialize().catch(err => {
throw err;
});
this._log.info('listAdUnitSizes iterate %j', request);
return this.descriptors.page.listAdUnitSizes.asyncIterate(this.innerApiCalls['listAdUnitSizes'], request, callSettings);
}
// --------------------
// -- Path templates --
// --------------------
/**
* Return a fully-qualified adUnit resource name string.
*
* @param {string} network_code
* @param {string} ad_unit
* @returns {string} Resource name string.
*/
adUnitPath(networkCode, adUnit) {
return this.pathTemplates.adUnitPathTemplate.render({
network_code: networkCode,
ad_unit: adUnit,
});
}
/**
* Parse the network_code from AdUnit resource.
*
* @param {string} adUnitName
* A fully-qualified path representing AdUnit resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromAdUnitName(adUnitName) {
return this.pathTemplates.adUnitPathTemplate.match(adUnitName).network_code;
}
/**
* Parse the ad_unit from AdUnit resource.
*
* @param {string} adUnitName
* A fully-qualified path representing AdUnit resource.
* @returns {string} A string representing the ad_unit.
*/
matchAdUnitFromAdUnitName(adUnitName) {
return this.pathTemplates.adUnitPathTemplate.match(adUnitName).ad_unit;
}
/**
* Return a fully-qualified company resource name string.
*
* @param {string} network_code
* @param {string} company
* @returns {string} Resource name string.
*/
companyPath(networkCode, company) {
return this.pathTemplates.companyPathTemplate.render({
network_code: networkCode,
company: company,
});
}
/**
* Parse the network_code from Company resource.
*
* @param {string} companyName
* A fully-qualified path representing Company resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromCompanyName(companyName) {
return this.pathTemplates.companyPathTemplate.match(companyName)
.network_code;
}
/**
* Parse the company from Company resource.
*
* @param {string} companyName
* A fully-qualified path representing Company resource.
* @returns {string} A string representing the company.
*/
matchCompanyFromCompanyName(companyName) {
return this.pathTemplates.companyPathTemplate.match(companyName).company;
}
/**
* Return a fully-qualified contact resource name string.
*
* @param {string} network_code
* @param {string} contact
* @returns {string} Resource name string.
*/
contactPath(networkCode, contact) {
return this.pathTemplates.contactPathTemplate.render({
network_code: networkCode,
contact: contact,
});
}
/**
* Parse the network_code from Contact resource.
*
* @param {string} contactName
* A fully-qualified path representing Contact resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromContactName(contactName) {
return this.pathTemplates.contactPathTemplate.match(contactName)
.network_code;
}
/**
* Parse the contact from Contact resource.
*
* @param {string} contactName
* A fully-qualified path representing Contact resource.
* @returns {string} A string representing the contact.
*/
matchContactFromContactName(contactName) {
return this.pathTemplates.contactPathTemplate.match(contactName).contact;
}
/**
* Return a fully-qualified customField resource name string.
*
* @param {string} network_code
* @param {string} custom_field
* @returns {string} Resource name string.
*/
customFieldPath(networkCode, customField) {
return this.pathTemplates.customFieldPathTemplate.render({
network_code: networkCode,
custom_field: customField,
});
}
/**
* Parse the network_code from CustomField resource.
*
* @param {string} customFieldName
* A fully-qualified path representing CustomField resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromCustomFieldName(customFieldName) {
return this.pathTemplates.customFieldPathTemplate.match(customFieldName)
.network_code;
}
/**
* Parse the custom_field from CustomField resource.
*
* @param {string} customFieldName
* A fully-qualified path representing CustomField resource.
* @returns {string} A string representing the custom_field.
*/
matchCustomFieldFromCustomFieldName(customFieldName) {
return this.pathTemplates.customFieldPathTemplate.match(customFieldName)
.custom_field;
}
/**
* Return a fully-qualified customTargetingKey resource name string.
*
* @param {string} network_code
* @param {string} custom_targeting_key
* @returns {string} Resource name string.
*/
customTargetingKeyPath(networkCode, customTargetingKey) {
return this.pathTemplates.customTargetingKeyPathTemplate.render({
network_code: networkCode,
custom_targeting_key: customTargetingKey,
});
}
/**
* Parse the network_code from CustomTargetingKey resource.
*
* @param {string} customTargetingKeyName
* A fully-qualified path representing CustomTargetingKey resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromCustomTargetingKeyName(customTargetingKeyName) {
return this.pathTemplates.customTargetingKeyPathTemplate.match(customTargetingKeyName).network_code;
}
/**
* Parse the custom_targeting_key from CustomTargetingKey resource.
*
* @param {string} customTargetingKeyName
* A fully-qualified path representing CustomTargetingKey resource.
* @returns {string} A string representing the custom_targeting_key.
*/
matchCustomTargetingKeyFromCustomTargetingKeyName(customTargetingKeyName) {
return this.pathTemplates.customTargetingKeyPathTemplate.match(customTargetingKeyName).custom_targeting_key;
}
/**
* Return a fully-qualified customTargetingValue resource name string.
*
* @param {string} network_code
* @param {string} custom_targeting_key
* @param {string} custom_targeting_value
* @returns {string} Resource name string.
*/
customTargetingValuePath(networkCode, customTargetingKey, customTargetingValue) {
return this.pathTemplates.customTargetingValuePathTemplate.render({
network_code: networkCode,
custom_targeting_key: customTargetingKey,
custom_targeting_value: customTargetingValue,
});
}
/**
* Parse the network_code from CustomTargetingValue resource.
*
* @param {string} customTargetingValueName
* A fully-qualified path representing CustomTargetingValue resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromCustomTargetingValueName(customTargetingValueName) {
return this.pathTemplates.customTargetingValuePathTemplate.match(customTargetingValueName).network_code;
}
/**
* Parse the custom_targeting_key from CustomTargetingValue resource.
*
* @param {string} customTargetingValueName
* A fully-qualified path representing CustomTargetingValue resource.
* @returns {string} A string representing the custom_targeting_key.
*/
matchCustomTargetingKeyFromCustomTargetingValueName(customTargetingValueName) {
return this.pathTemplates.customTargetingValuePathTemplate.match(customTargetingValueName).custom_targeting_key;
}
/**
* Parse the custom_targeting_value from CustomTargetingValue resource.
*
* @param {string} customTargetingValueName
* A fully-qualified path representing CustomTargetingValue resource.
* @returns {string} A string representing the custom_targeting_value.
*/
matchCustomTargetingValueFromCustomTargetingValueName(customTargetingValueName) {
return this.pathTemplates.customTargetingValuePathTemplate.match(customTargetingValueName).custom_targeting_value;
}
/**
* Return a fully-qualified entitySignalsMapping resource name string.
*
* @param {string} network_code
* @param {string} entity_signals_mapping
* @returns {string} Resource name string.
*/
entitySignalsMappingPath(networkCode, entitySignalsMapping) {
return this.pathTemplates.entitySignalsMappingPathTemplate.render({
network_code: networkCode,
entity_signals_mapping: entitySignalsMapping,
});
}
/**
* Parse the network_code from EntitySignalsMapping resource.
*
* @param {string} entitySignalsMappingName
* A fully-qualified path representing EntitySignalsMapping resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromEntitySignalsMappingName(entitySignalsMappingName) {
return this.pathTemplates.entitySignalsMappingPathTemplate.match(entitySignalsMappingName).network_code;
}
/**
* Parse the entity_signals_mapping from EntitySignalsMapping resource.
*
* @param {string} entitySignalsMappingName
* A fully-qualified path representing EntitySignalsMapping resource.
* @returns {string} A string representing the entity_signals_mapping.
*/
matchEntitySignalsMappingFromEntitySignalsMappingName(entitySignalsMappingName) {
return this.pathTemplates.entitySignalsMappingPathTemplate.match(entitySignalsMappingName).entity_signals_mapping;
}
/**
* Return a fully-qualified label resource name string.
*
* @param {string} network_code
* @param {string} label
* @returns {string} Resource name string.
*/
labelPath(networkCode, label) {
return this.pathTemplates.labelPathTemplate.render({
network_code: networkCode,
label: label,
});
}
/**
* Parse the network_code from Label resource.
*
* @param {string} labelName
* A fully-qualified path representing Label resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromLabelName(labelName) {
return this.pathTemplates.labelPathTemplate.match(labelName).network_code;
}
/**
* Parse the label from Label resource.
*
* @param {string} labelName
* A fully-qualified path representing Label resource.
* @returns {string} A string representing the label.
*/
matchLabelFromLabelName(labelName) {
return this.pathTemplates.labelPathTemplate.match(labelName).label;
}
/**
* Return a fully-qualified network resource name string.
*
* @param {string} network_code
* @returns {string} Resource name string.
*/
networkPath(networkCode) {
return this.pathTemplates.networkPathTemplate.render({
network_code: networkCode,
});
}
/**
* Parse the network_code from Network resource.
*
* @param {string} networkName
* A fully-qualified path representing Network resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromNetworkName(networkName) {
return this.pathTemplates.networkPathTemplate.match(networkName)
.network_code;
}
/**
* Return a fully-qualified order resource name string.
*
* @param {string} network_code
* @param {string} order
* @returns {string} Resource name string.
*/
orderPath(networkCode, order) {
return this.pathTemplates.orderPathTemplate.render({
network_code: networkCode,
order: order,
});
}
/**
* Parse the network_code from Order resource.
*
* @param {string} orderName
* A fully-qualified path representing Order resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromOrderName(orderName) {
return this.pathTemplates.orderPathTemplate.match(orderName).network_code;
}
/**
* Parse the order from Order resource.
*
* @param {string} orderName
* A fully-qualified path representing Order resource.
* @returns {string} A string representing the order.
*/
matchOrderFromOrderName(orderName) {
return this.pathTemplates.orderPathTemplate.match(orderName).order;
}
/**
* Return a fully-qualified placement resource name string.
*
* @param {string} network_code
* @param {string} placement
* @returns {string} Resource name string.
*/
placementPath(networkCode, placement) {
return this.pathTemplates.placementPathTemplate.render({
network_code: networkCode,
placement: placement,
});
}
/**
* Parse the network_code from Placement resource.
*
* @param {string} placementName
* A fully-qualified path representing Placement resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromPlacementName(placementName) {
return this.pathTemplates.placementPathTemplate.match(placementName)
.network_code;
}
/**
* Parse the placement from Placement resource.
*
* @param {string} placementName
* A fully-qualified path representing Placement resource.
* @returns {string} A string representing the placement.
*/
matchPlacementFromPlacementName(placementName) {
return this.pathTemplates.placementPathTemplate.match(placementName)
.placement;
}
/**
* Return a fully-qualified report resource name string.
*
* @param {string} network_code
* @param {string} report
* @returns {string} Resource name string.
*/
reportPath(networkCode, report) {
return this.pathTemplates.reportPathTemplate.render({
network_code: networkCode,
report: report,
});
}
/**
* Parse the network_code from Report resource.
*
* @param {string} reportName
* A fully-qualified path representing Report resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromReportName(reportName) {
return this.pathTemplates.reportPathTemplate.match(reportName).network_code;
}
/**
* Parse the report from Report resource.
*
* @param {string} reportName
* A fully-qualified path representing Report resource.
* @returns {string} A string representing the report.
*/
matchReportFromReportName(reportName) {
return this.pathTemplates.reportPathTemplate.match(reportName).report;
}
/**
* Return a fully-qualified role resource name string.
*
* @param {string} network_code
* @param {string} role
* @returns {string} Resource name string.
*/
rolePath(networkCode, role) {
return this.pathTemplates.rolePathTemplate.render({
network_code: networkCode,
role: role,
});
}
/**
* Parse the network_code from Role resource.
*
* @param {string} roleName
* A fully-qualified path representing Role resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromRoleName(roleName) {
return this.pathTemplates.rolePathTemplate.match(roleName).network_code;
}
/**
* Parse the role from Role resource.
*
* @param {string} roleName
* A fully-qualified path representing Role resource.
* @returns {string} A string representing the role.
*/
matchRoleFromRoleName(roleName) {
return this.pathTemplates.rolePathTemplate.match(roleName).role;
}
/**
* Return a fully-qualified taxonomyCategory resource name string.
*
* @param {string} network_code
* @param {string} taxonomy_category
* @returns {string} Resource name string.
*/
taxonomyCategoryPath(networkCode, taxonomyCategory) {
return this.pathTemplates.taxonomyCategoryPathTemplate.render({
network_code: networkCode,
taxonomy_category: taxonomyCategory,
});
}
/**
* Parse the network_code from TaxonomyCategory resource.
*
* @param {string} taxonomyCategoryName
* A fully-qualified path representing TaxonomyCategory resource.
* @returns {string} A string representing the network_code.
*/
matchNetworkCodeFromTaxonomyCategoryName(taxonomyCategoryName) {
return this.pathTemplates.taxonomyCategoryPathTemplate.match(taxonomyCategoryName).network_code;
}
/**
* Parse the taxonomy_category from TaxonomyCategory resource.
*
* @param {string} taxonomyCategoryName
* A fully-qualified path representing TaxonomyCategory resource.
* @returns {string} A string representing the taxonomy_category.
*/
matchTaxonomyCategoryFromTaxonomyCategoryName(taxonomyCategoryName) {
return this.pathTemplates.tax