| Index: generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
|
| diff --git a/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart b/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
|
| index a2ecdc8738ba49f2e631c22ef4cc0629bd9d8c3c..34f4e2b5568562d86ac196f099c1c30e4722a885 100644
|
| --- a/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
|
| +++ b/generated/googleapis_beta/lib/adexchangebuyer2/v2beta1.dart
|
| @@ -38,6 +38,7 @@ class AccountsResourceApi {
|
|
|
| AccountsClientsResourceApi get clients => new AccountsClientsResourceApi(_requester);
|
| AccountsCreativesResourceApi get creatives => new AccountsCreativesResourceApi(_requester);
|
| + AccountsFilterSetsResourceApi get filterSets => new AccountsFilterSetsResourceApi(_requester);
|
|
|
| AccountsResourceApi(commons.ApiRequester client) :
|
| _requester = client;
|
| @@ -515,10 +516,6 @@ class AccountsClientsUsersResourceApi {
|
| * to list all the client users for all the clients
|
| * of a given sponsor buyer.
|
| *
|
| - * [pageSize] - Requested page size. The server may return fewer clients than
|
| - * requested.
|
| - * If unspecified, the server will pick an appropriate default.
|
| - *
|
| * [pageToken] - A token identifying a page of results the server should
|
| * return.
|
| * Typically, this is the value of
|
| @@ -526,6 +523,10 @@ class AccountsClientsUsersResourceApi {
|
| * returned from the previous call to the
|
| * accounts.clients.users.list method.
|
| *
|
| + * [pageSize] - Requested page size. The server may return fewer clients than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| * Completes with a [ListClientUsersResponse].
|
| *
|
| * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| @@ -534,7 +535,7 @@ class AccountsClientsUsersResourceApi {
|
| * If the used [http.Client] completes with an error when making a REST call,
|
| * this method will complete with the same error.
|
| */
|
| - async.Future<ListClientUsersResponse> list(core.String accountId, core.String clientAccountId, {core.int pageSize, core.String pageToken}) {
|
| + async.Future<ListClientUsersResponse> list(core.String accountId, core.String clientAccountId, {core.String pageToken, core.int pageSize}) {
|
| var _url = null;
|
| var _queryParams = new core.Map();
|
| var _uploadMedia = null;
|
| @@ -548,12 +549,12 @@ class AccountsClientsUsersResourceApi {
|
| if (clientAccountId == null) {
|
| throw new core.ArgumentError("Parameter clientAccountId is required.");
|
| }
|
| - if (pageSize != null) {
|
| - _queryParams["pageSize"] = ["${pageSize}"];
|
| - }
|
| if (pageToken != null) {
|
| _queryParams["pageToken"] = [pageToken];
|
| }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
|
|
| _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/clients/' + commons.Escaper.ecapeVariable('$clientAccountId') + '/users';
|
|
|
| @@ -1165,1157 +1166,3404 @@ class AccountsCreativesDealAssociationsResourceApi {
|
| }
|
|
|
|
|
| +class AccountsFilterSetsResourceApi {
|
| + final commons.ApiRequester _requester;
|
|
|
| -/** A request for associating a deal and a creative. */
|
| -class AddDealAssociationRequest {
|
| - /** The association between a creative and a deal that should be added. */
|
| - CreativeDealAssociation association;
|
| + AccountsFilterSetsBidMetricsResourceApi get bidMetrics => new AccountsFilterSetsBidMetricsResourceApi(_requester);
|
| + AccountsFilterSetsBidResponseErrorsResourceApi get bidResponseErrors => new AccountsFilterSetsBidResponseErrorsResourceApi(_requester);
|
| + AccountsFilterSetsBidResponsesWithoutBidsResourceApi get bidResponsesWithoutBids => new AccountsFilterSetsBidResponsesWithoutBidsResourceApi(_requester);
|
| + AccountsFilterSetsFilteredBidRequestsResourceApi get filteredBidRequests => new AccountsFilterSetsFilteredBidRequestsResourceApi(_requester);
|
| + AccountsFilterSetsFilteredBidsResourceApi get filteredBids => new AccountsFilterSetsFilteredBidsResourceApi(_requester);
|
| + AccountsFilterSetsFilteredImpressionsResourceApi get filteredImpressions => new AccountsFilterSetsFilteredImpressionsResourceApi(_requester);
|
| + AccountsFilterSetsImpressionMetricsResourceApi get impressionMetrics => new AccountsFilterSetsImpressionMetricsResourceApi(_requester);
|
| + AccountsFilterSetsLosingBidsResourceApi get losingBids => new AccountsFilterSetsLosingBidsResourceApi(_requester);
|
|
|
| - AddDealAssociationRequest();
|
| + AccountsFilterSetsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
|
|
| - AddDealAssociationRequest.fromJson(core.Map _json) {
|
| - if (_json.containsKey("association")) {
|
| - association = new CreativeDealAssociation.fromJson(_json["association"]);
|
| - }
|
| - }
|
| + /**
|
| + * Creates the specified filter set for the account with the given account ID.
|
| + *
|
| + * [request] - The metadata request object.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [isTransient] - Whether the filter set is transient, or should be persisted
|
| + * indefinitely.
|
| + * By default, filter sets are not transient.
|
| + * If transient, it will be available for at least 1 hour after creation.
|
| + *
|
| + * Completes with a [FilterSet].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<FilterSet> create(FilterSet request, core.String accountId, {core.bool isTransient}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (association != null) {
|
| - _json["association"] = (association).toJson();
|
| + if (request != null) {
|
| + _body = convert.JSON.encode((request).toJson());
|
| + }
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (isTransient != null) {
|
| + _queryParams["isTransient"] = ["${isTransient}"];
|
| }
|
| - return _json;
|
| - }
|
| -}
|
| -
|
| -/** @OutputOnly The app type the restriction applies to for mobile device. */
|
| -class AppContext {
|
| - /** The app types this restriction applies to. */
|
| - core.List<core.String> appTypes;
|
|
|
| - AppContext();
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets';
|
|
|
| - AppContext.fromJson(core.Map _json) {
|
| - if (_json.containsKey("appTypes")) {
|
| - appTypes = _json["appTypes"];
|
| - }
|
| + var _response = _requester.request(_url,
|
| + "POST",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new FilterSet.fromJson(data));
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (appTypes != null) {
|
| - _json["appTypes"] = appTypes;
|
| + /**
|
| + * Deletes the requested filter set from the account with the given account
|
| + * ID.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to delete.
|
| + *
|
| + * Completes with a [Empty].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<Empty> delete(core.String accountId, core.String filterSetId) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| }
|
| - return _json;
|
| - }
|
| -}
|
|
|
| -/** @OutputOnly The auction type the restriction applies to. */
|
| -class AuctionContext {
|
| - /** The auction types this restriction applies to. */
|
| - core.List<core.String> auctionTypes;
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId');
|
|
|
| - AuctionContext();
|
| + var _response = _requester.request(_url,
|
| + "DELETE",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new Empty.fromJson(data));
|
| + }
|
|
|
| - AuctionContext.fromJson(core.Map _json) {
|
| - if (_json.containsKey("auctionTypes")) {
|
| - auctionTypes = _json["auctionTypes"];
|
| + /**
|
| + * Retrieves the requested filter set for the account with the given account
|
| + * ID.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to get.
|
| + *
|
| + * Completes with a [FilterSet].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<FilterSet> get(core.String accountId, core.String filterSetId) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId');
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new FilterSet.fromJson(data));
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (auctionTypes != null) {
|
| - _json["auctionTypes"] = auctionTypes;
|
| + /**
|
| + * Lists all filter sets for the account with the given account ID.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListFilterSetsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.rtbBreakout.filterSets.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListFilterSetsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListFilterSetsResponse> list(core.String accountId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| }
|
| - return _json;
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListFilterSetsResponse.fromJson(data));
|
| }
|
| +
|
| }
|
|
|
| -/**
|
| - * A client resource represents a client buyer—an agency,
|
| - * a brand, or an advertiser customer of the sponsor buyer.
|
| - * Users associated with the client buyer have restricted access to
|
| - * the Ad Exchange Marketplace and certain other sections
|
| - * of the Ad Exchange Buyer UI based on the role
|
| - * granted to the client buyer.
|
| - * All fields are required unless otherwise specified.
|
| - */
|
| -class Client {
|
| - /**
|
| - * The globally-unique numerical ID of the client.
|
| - * The value of this field is ignored in create and update operations.
|
| - */
|
| - core.String clientAccountId;
|
| - /**
|
| - * Name used to represent this client to publishers.
|
| - * You may have multiple clients that map to the same entity,
|
| - * but for each client the combination of `clientName` and entity
|
| - * must be unique.
|
| - * You can specify this field as empty.
|
| - */
|
| - core.String clientName;
|
| +
|
| +class AccountsFilterSetsBidMetricsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsBidMetricsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| /**
|
| - * Numerical identifier of the client entity.
|
| - * The entity can be an advertiser, a brand, or an agency.
|
| - * This identifier is unique among all the entities with the same type.
|
| + * Lists all metrics that are measured in terms of number of bids.
|
| *
|
| - * A list of all known advertisers with their identifiers is available in the
|
| - * [advertisers.txt](https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt)
|
| - * file.
|
| + * Request parameters:
|
| *
|
| - * A list of all known brands with their identifiers is available in the
|
| - * [brands.txt](https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt)
|
| - * file.
|
| + * [accountId] - Account ID of the buyer.
|
| *
|
| - * A list of all known agencies with their identifiers is available in the
|
| - * [agencies.txt](https://storage.googleapis.com/adx-rtb-dictionaries/agencies.txt)
|
| - * file.
|
| - */
|
| - core.String entityId;
|
| - /**
|
| - * The name of the entity. This field is automatically fetched based on
|
| - * the type and ID.
|
| - * The value of this field is ignored in create and update operations.
|
| - */
|
| - core.String entityName;
|
| - /**
|
| - * The type of the client entity: `ADVERTISER`, `BRAND`, or `AGENCY`.
|
| - * Possible string values are:
|
| - * - "ENTITY_TYPE_UNSPECIFIED" : A placeholder for an undefined client entity
|
| - * type. Should not be used.
|
| - * - "ADVERTISER" : An advertiser.
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListBidMetricsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.bidMetrics.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListBidMetricsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListBidMetricsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/bidMetrics';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListBidMetricsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsBidResponseErrorsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsBidResponseErrorsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all errors that occurred in bid responses, with the number of bid
|
| + * responses affected for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListBidResponseErrorsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.bidResponseErrors.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListBidResponseErrorsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListBidResponseErrorsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/bidResponseErrors';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListBidResponseErrorsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsBidResponsesWithoutBidsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsBidResponsesWithoutBidsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all reasons for which bid responses were considered to have no
|
| + * applicable bids, with the number of bid responses affected for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListBidResponsesWithoutBidsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.bidResponsesWithoutBids.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListBidResponsesWithoutBidsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListBidResponsesWithoutBidsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/bidResponsesWithoutBids';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListBidResponsesWithoutBidsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredBidRequestsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredBidRequestsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all reasons that caused a bid request not to be sent for an
|
| + * impression, with the number of bid requests not sent for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListFilteredBidRequestsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredBidRequests.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListFilteredBidRequestsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListFilteredBidRequestsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredBidRequests';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListFilteredBidRequestsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredBidsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredBidsCreativesResourceApi get creatives => new AccountsFilterSetsFilteredBidsCreativesResourceApi(_requester);
|
| + AccountsFilterSetsFilteredBidsDetailsResourceApi get details => new AccountsFilterSetsFilteredBidsDetailsResourceApi(_requester);
|
| +
|
| + AccountsFilterSetsFilteredBidsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all reasons for which bids were filtered, with the number of bids
|
| + * filtered for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListFilteredBidsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredBids.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListFilteredBidsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListFilteredBidsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredBids';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListFilteredBidsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredBidsCreativesResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredBidsCreativesDetailsResourceApi get details => new AccountsFilterSetsFilteredBidsCreativesDetailsResourceApi(_requester);
|
| +
|
| + AccountsFilterSetsFilteredBidsCreativesResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all creatives associated with a specific reason for which bids were
|
| + * filtered, with the number of bids filtered for each creative.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [creativeStatusId] - The ID of the creative status for which to retrieve a
|
| + * breakdown by
|
| + * creative.
|
| + * See
|
| + * [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListCreativeStatusBreakdownByCreativeResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredBids.creatives.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListCreativeStatusBreakdownByCreativeResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListCreativeStatusBreakdownByCreativeResponse> list(core.String accountId, core.String filterSetId, core.int creativeStatusId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (creativeStatusId == null) {
|
| + throw new core.ArgumentError("Parameter creativeStatusId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredBids/' + commons.Escaper.ecapeVariable('$creativeStatusId') + '/creatives';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListCreativeStatusBreakdownByCreativeResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredBidsCreativesDetailsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredBidsCreativesDetailsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all details associated with a specific reason for which bids were
|
| + * filtered and a specific creative that was filtered for that reason, with
|
| + * the number of bids filtered for each detail.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [creativeStatusId] - The ID of the creative status for which to retrieve a
|
| + * breakdown by detail.
|
| + * See
|
| + * [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).
|
| + *
|
| + * [creativeId] - The creative ID for which to retrieve a breakdown by detail.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListCreativeStatusAndCreativeBreakdownByDetailResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredBids.creatives.details.list
|
| + * method.
|
| + *
|
| + * Completes with a [ListCreativeStatusAndCreativeBreakdownByDetailResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListCreativeStatusAndCreativeBreakdownByDetailResponse> list(core.String accountId, core.String filterSetId, core.int creativeStatusId, core.String creativeId, {core.int pageSize, core.String pageToken}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (creativeStatusId == null) {
|
| + throw new core.ArgumentError("Parameter creativeStatusId is required.");
|
| + }
|
| + if (creativeId == null) {
|
| + throw new core.ArgumentError("Parameter creativeId is required.");
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredBids/' + commons.Escaper.ecapeVariable('$creativeStatusId') + '/creatives/' + commons.Escaper.ecapeVariable('$creativeId') + '/details';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListCreativeStatusAndCreativeBreakdownByDetailResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredBidsDetailsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredBidsDetailsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all details associated with a specific reason for which bids were
|
| + * filtered, with the number of bids filtered for each detail.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [creativeStatusId] - The ID of the creative status for which to retrieve a
|
| + * breakdown by detail.
|
| + * See
|
| + * [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListCreativeStatusBreakdownByDetailResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredBids.details.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListCreativeStatusBreakdownByDetailResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListCreativeStatusBreakdownByDetailResponse> list(core.String accountId, core.String filterSetId, core.int creativeStatusId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (creativeStatusId == null) {
|
| + throw new core.ArgumentError("Parameter creativeStatusId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredBids/' + commons.Escaper.ecapeVariable('$creativeStatusId') + '/details';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListCreativeStatusBreakdownByDetailResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsFilteredImpressionsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsFilteredImpressionsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all reasons that caused an impression to be filtered (i.e. not
|
| + * considered as an inventory match), with the number of impressions that were
|
| + * filtered for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListFilteredImpressionsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.filteredImpressions.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListFilteredImpressionsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListFilteredImpressionsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/filteredImpressions';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListFilteredImpressionsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsImpressionMetricsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsImpressionMetricsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * Lists all metrics that are measured in terms of number of impressions.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListImpressionMetricsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.impressionMetrics.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListImpressionMetricsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListImpressionMetricsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/impressionMetrics';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListImpressionMetricsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +class AccountsFilterSetsLosingBidsResourceApi {
|
| + final commons.ApiRequester _requester;
|
| +
|
| + AccountsFilterSetsLosingBidsResourceApi(commons.ApiRequester client) :
|
| + _requester = client;
|
| +
|
| + /**
|
| + * List all reasons for which bids lost in the auction, with the number of
|
| + * bids that lost for each reason.
|
| + *
|
| + * Request parameters:
|
| + *
|
| + * [accountId] - Account ID of the buyer.
|
| + *
|
| + * [filterSetId] - The ID of the filter set to apply.
|
| + *
|
| + * [pageToken] - A token identifying a page of results the server should
|
| + * return.
|
| + * Typically, this is the value of
|
| + * ListLosingBidsResponse.nextPageToken
|
| + * returned from the previous call to the
|
| + * accounts.filterSets.losingBids.list
|
| + * method.
|
| + *
|
| + * [pageSize] - Requested page size. The server may return fewer than
|
| + * requested.
|
| + * If unspecified, the server will pick an appropriate default.
|
| + *
|
| + * Completes with a [ListLosingBidsResponse].
|
| + *
|
| + * Completes with a [commons.ApiRequestError] if the API endpoint returned an
|
| + * error.
|
| + *
|
| + * If the used [http.Client] completes with an error when making a REST call,
|
| + * this method will complete with the same error.
|
| + */
|
| + async.Future<ListLosingBidsResponse> list(core.String accountId, core.String filterSetId, {core.String pageToken, core.int pageSize}) {
|
| + var _url = null;
|
| + var _queryParams = new core.Map();
|
| + var _uploadMedia = null;
|
| + var _uploadOptions = null;
|
| + var _downloadOptions = commons.DownloadOptions.Metadata;
|
| + var _body = null;
|
| +
|
| + if (accountId == null) {
|
| + throw new core.ArgumentError("Parameter accountId is required.");
|
| + }
|
| + if (filterSetId == null) {
|
| + throw new core.ArgumentError("Parameter filterSetId is required.");
|
| + }
|
| + if (pageToken != null) {
|
| + _queryParams["pageToken"] = [pageToken];
|
| + }
|
| + if (pageSize != null) {
|
| + _queryParams["pageSize"] = ["${pageSize}"];
|
| + }
|
| +
|
| + _url = 'v2beta1/accounts/' + commons.Escaper.ecapeVariable('$accountId') + '/filterSets/' + commons.Escaper.ecapeVariable('$filterSetId') + '/losingBids';
|
| +
|
| + var _response = _requester.request(_url,
|
| + "GET",
|
| + body: _body,
|
| + queryParams: _queryParams,
|
| + uploadOptions: _uploadOptions,
|
| + uploadMedia: _uploadMedia,
|
| + downloadOptions: _downloadOptions);
|
| + return _response.then((data) => new ListLosingBidsResponse.fromJson(data));
|
| + }
|
| +
|
| +}
|
| +
|
| +
|
| +
|
| +/**
|
| + * An absolute date range, specified by its start date and end date.
|
| + * The supported range of dates begins 30 days before today and ends today.
|
| + * Validity checked upon filter set creation. If a filter set with an absolute
|
| + * date range is run at a later date more than 30 days after start_date, it will
|
| + * fail.
|
| + */
|
| +class AbsoluteDateRange {
|
| + /**
|
| + * The end date of the range (inclusive).
|
| + * Must be within the 30 days leading up to current date, and must be equal to
|
| + * or after start_date.
|
| + */
|
| + Date endDate;
|
| + /**
|
| + * The start date of the range (inclusive).
|
| + * Must be within the 30 days leading up to current date, and must be equal to
|
| + * or before end_date.
|
| + */
|
| + Date startDate;
|
| +
|
| + AbsoluteDateRange();
|
| +
|
| + AbsoluteDateRange.fromJson(core.Map _json) {
|
| + if (_json.containsKey("endDate")) {
|
| + endDate = new Date.fromJson(_json["endDate"]);
|
| + }
|
| + if (_json.containsKey("startDate")) {
|
| + startDate = new Date.fromJson(_json["startDate"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (endDate != null) {
|
| + _json["endDate"] = (endDate).toJson();
|
| + }
|
| + if (startDate != null) {
|
| + _json["startDate"] = (startDate).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** A request for associating a deal and a creative. */
|
| +class AddDealAssociationRequest {
|
| + /** The association between a creative and a deal that should be added. */
|
| + CreativeDealAssociation association;
|
| +
|
| + AddDealAssociationRequest();
|
| +
|
| + AddDealAssociationRequest.fromJson(core.Map _json) {
|
| + if (_json.containsKey("association")) {
|
| + association = new CreativeDealAssociation.fromJson(_json["association"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (association != null) {
|
| + _json["association"] = (association).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** @OutputOnly The app type the restriction applies to for mobile device. */
|
| +class AppContext {
|
| + /** The app types this restriction applies to. */
|
| + core.List<core.String> appTypes;
|
| +
|
| + AppContext();
|
| +
|
| + AppContext.fromJson(core.Map _json) {
|
| + if (_json.containsKey("appTypes")) {
|
| + appTypes = _json["appTypes"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (appTypes != null) {
|
| + _json["appTypes"] = appTypes;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** @OutputOnly The auction type the restriction applies to. */
|
| +class AuctionContext {
|
| + /** The auction types this restriction applies to. */
|
| + core.List<core.String> auctionTypes;
|
| +
|
| + AuctionContext();
|
| +
|
| + AuctionContext.fromJson(core.Map _json) {
|
| + if (_json.containsKey("auctionTypes")) {
|
| + auctionTypes = _json["auctionTypes"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (auctionTypes != null) {
|
| + _json["auctionTypes"] = auctionTypes;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * The set of metrics that are measured in numbers of bids, representing how
|
| + * many bids with the specified dimension values were considered eligible at
|
| + * each stage of the bidding funnel;
|
| + */
|
| +class BidMetricsRow {
|
| + /** The number of bids that Ad Exchange received from the buyer. */
|
| + MetricValue bids;
|
| + /** The number of bids that were permitted to compete in the auction. */
|
| + MetricValue bidsInAuction;
|
| + /** The number of bids for which the buyer was billed. */
|
| + MetricValue billedImpressions;
|
| + /** The number of bids that won an impression. */
|
| + MetricValue impressionsWon;
|
| + /**
|
| + * The values of all dimensions associated with metric values in this row.
|
| + */
|
| + RowDimensions rowDimensions;
|
| + /**
|
| + * The number of bids for which the corresponding impression was viewable (as
|
| + * defined by Active View).
|
| + */
|
| + MetricValue viewableImpressions;
|
| +
|
| + BidMetricsRow();
|
| +
|
| + BidMetricsRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bids")) {
|
| + bids = new MetricValue.fromJson(_json["bids"]);
|
| + }
|
| + if (_json.containsKey("bidsInAuction")) {
|
| + bidsInAuction = new MetricValue.fromJson(_json["bidsInAuction"]);
|
| + }
|
| + if (_json.containsKey("billedImpressions")) {
|
| + billedImpressions = new MetricValue.fromJson(_json["billedImpressions"]);
|
| + }
|
| + if (_json.containsKey("impressionsWon")) {
|
| + impressionsWon = new MetricValue.fromJson(_json["impressionsWon"]);
|
| + }
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| + }
|
| + if (_json.containsKey("viewableImpressions")) {
|
| + viewableImpressions = new MetricValue.fromJson(_json["viewableImpressions"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bids != null) {
|
| + _json["bids"] = (bids).toJson();
|
| + }
|
| + if (bidsInAuction != null) {
|
| + _json["bidsInAuction"] = (bidsInAuction).toJson();
|
| + }
|
| + if (billedImpressions != null) {
|
| + _json["billedImpressions"] = (billedImpressions).toJson();
|
| + }
|
| + if (impressionsWon != null) {
|
| + _json["impressionsWon"] = (impressionsWon).toJson();
|
| + }
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| + }
|
| + if (viewableImpressions != null) {
|
| + _json["viewableImpressions"] = (viewableImpressions).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * The number of impressions with the specified dimension values that were
|
| + * considered to have no applicable bids, as described by the specified status.
|
| + */
|
| +class BidResponseWithoutBidsStatusRow {
|
| + /**
|
| + * The number of impressions for which there was a bid response with the
|
| + * specified status.
|
| + */
|
| + MetricValue impressionCount;
|
| + /**
|
| + * The values of all dimensions associated with metric values in this row.
|
| + */
|
| + RowDimensions rowDimensions;
|
| + /**
|
| + * The status that caused the bid response to be considered to have no
|
| + * applicable bids.
|
| + * Possible string values are:
|
| + * - "STATUS_UNSPECIFIED" : A placeholder for an undefined status.
|
| + * This value will never be returned in responses.
|
| + * - "RESPONSES_WITHOUT_BIDS" : The response had no bids.
|
| + * - "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT" : The response had no bids for the
|
| + * specified account, though it may have
|
| + * included bids on behalf of other accounts.
|
| + * - "RESPONSES_WITHOUT_BIDS_FOR_DEAL" : The response had no bids for the
|
| + * specified deal, though it may have
|
| + * included bids on other deals on behalf of the account to which the deal
|
| + * belongs.
|
| + */
|
| + core.String status;
|
| +
|
| + BidResponseWithoutBidsStatusRow();
|
| +
|
| + BidResponseWithoutBidsStatusRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("impressionCount")) {
|
| + impressionCount = new MetricValue.fromJson(_json["impressionCount"]);
|
| + }
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| + }
|
| + if (_json.containsKey("status")) {
|
| + status = _json["status"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (impressionCount != null) {
|
| + _json["impressionCount"] = (impressionCount).toJson();
|
| + }
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| + }
|
| + if (status != null) {
|
| + _json["status"] = status;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * The number of impressions with the specified dimension values where the
|
| + * corresponding bid request or bid response was not successful, as described by
|
| + * the specified callout status.
|
| + */
|
| +class CalloutStatusRow {
|
| + /**
|
| + * The ID of the callout status.
|
| + * See
|
| + * [callout-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/callout-status-codes).
|
| + */
|
| + core.int calloutStatusId;
|
| + /**
|
| + * The number of impressions for which there was a bid request or bid response
|
| + * with the specified callout status.
|
| + */
|
| + MetricValue impressionCount;
|
| + /**
|
| + * The values of all dimensions associated with metric values in this row.
|
| + */
|
| + RowDimensions rowDimensions;
|
| +
|
| + CalloutStatusRow();
|
| +
|
| + CalloutStatusRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("calloutStatusId")) {
|
| + calloutStatusId = _json["calloutStatusId"];
|
| + }
|
| + if (_json.containsKey("impressionCount")) {
|
| + impressionCount = new MetricValue.fromJson(_json["impressionCount"]);
|
| + }
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (calloutStatusId != null) {
|
| + _json["calloutStatusId"] = calloutStatusId;
|
| + }
|
| + if (impressionCount != null) {
|
| + _json["impressionCount"] = (impressionCount).toJson();
|
| + }
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * A client resource represents a client buyer—an agency,
|
| + * a brand, or an advertiser customer of the sponsor buyer.
|
| + * Users associated with the client buyer have restricted access to
|
| + * the Ad Exchange Marketplace and certain other sections
|
| + * of the Ad Exchange Buyer UI based on the role
|
| + * granted to the client buyer.
|
| + * All fields are required unless otherwise specified.
|
| + */
|
| +class Client {
|
| + /**
|
| + * The globally-unique numerical ID of the client.
|
| + * The value of this field is ignored in create and update operations.
|
| + */
|
| + core.String clientAccountId;
|
| + /**
|
| + * Name used to represent this client to publishers.
|
| + * You may have multiple clients that map to the same entity,
|
| + * but for each client the combination of `clientName` and entity
|
| + * must be unique.
|
| + * You can specify this field as empty.
|
| + */
|
| + core.String clientName;
|
| + /**
|
| + * Numerical identifier of the client entity.
|
| + * The entity can be an advertiser, a brand, or an agency.
|
| + * This identifier is unique among all the entities with the same type.
|
| + *
|
| + * A list of all known advertisers with their identifiers is available in the
|
| + * [advertisers.txt](https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt)
|
| + * file.
|
| + *
|
| + * A list of all known brands with their identifiers is available in the
|
| + * [brands.txt](https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt)
|
| + * file.
|
| + *
|
| + * A list of all known agencies with their identifiers is available in the
|
| + * [agencies.txt](https://storage.googleapis.com/adx-rtb-dictionaries/agencies.txt)
|
| + * file.
|
| + */
|
| + core.String entityId;
|
| + /**
|
| + * The name of the entity. This field is automatically fetched based on
|
| + * the type and ID.
|
| + * The value of this field is ignored in create and update operations.
|
| + */
|
| + core.String entityName;
|
| + /**
|
| + * The type of the client entity: `ADVERTISER`, `BRAND`, or `AGENCY`.
|
| + * Possible string values are:
|
| + * - "ENTITY_TYPE_UNSPECIFIED" : A placeholder for an undefined client entity
|
| + * type. Should not be used.
|
| + * - "ADVERTISER" : An advertiser.
|
| * - "BRAND" : A brand.
|
| * - "AGENCY" : An advertising agency.
|
| */
|
| - core.String entityType;
|
| + core.String entityType;
|
| + /**
|
| + * The role which is assigned to the client buyer. Each role implies a set of
|
| + * permissions granted to the client. Must be one of `CLIENT_DEAL_VIEWER`,
|
| + * `CLIENT_DEAL_NEGOTIATOR` or `CLIENT_DEAL_APPROVER`.
|
| + * Possible string values are:
|
| + * - "CLIENT_ROLE_UNSPECIFIED" : A placeholder for an undefined client role.
|
| + * - "CLIENT_DEAL_VIEWER" : Users associated with this client can see
|
| + * publisher deal offers
|
| + * in the Marketplace.
|
| + * They can neither negotiate proposals nor approve deals.
|
| + * If this client is visible to publishers, they can send deal proposals
|
| + * to this client.
|
| + * - "CLIENT_DEAL_NEGOTIATOR" : Users associated with this client can respond
|
| + * to deal proposals
|
| + * sent to them by publishers. They can also initiate deal proposals
|
| + * of their own.
|
| + * - "CLIENT_DEAL_APPROVER" : Users associated with this client can approve
|
| + * eligible deals
|
| + * on your behalf. Some deals may still explicitly require publisher
|
| + * finalization. If this role is not selected, the sponsor buyer
|
| + * will need to manually approve each of their deals.
|
| + */
|
| + core.String role;
|
| + /**
|
| + * The status of the client buyer.
|
| + * Possible string values are:
|
| + * - "CLIENT_STATUS_UNSPECIFIED" : A placeholder for an undefined client
|
| + * status.
|
| + * - "DISABLED" : A client that is currently disabled.
|
| + * - "ACTIVE" : A client that is currently active.
|
| + */
|
| + core.String status;
|
| + /** Whether the client buyer will be visible to sellers. */
|
| + core.bool visibleToSeller;
|
| +
|
| + Client();
|
| +
|
| + Client.fromJson(core.Map _json) {
|
| + if (_json.containsKey("clientAccountId")) {
|
| + clientAccountId = _json["clientAccountId"];
|
| + }
|
| + if (_json.containsKey("clientName")) {
|
| + clientName = _json["clientName"];
|
| + }
|
| + if (_json.containsKey("entityId")) {
|
| + entityId = _json["entityId"];
|
| + }
|
| + if (_json.containsKey("entityName")) {
|
| + entityName = _json["entityName"];
|
| + }
|
| + if (_json.containsKey("entityType")) {
|
| + entityType = _json["entityType"];
|
| + }
|
| + if (_json.containsKey("role")) {
|
| + role = _json["role"];
|
| + }
|
| + if (_json.containsKey("status")) {
|
| + status = _json["status"];
|
| + }
|
| + if (_json.containsKey("visibleToSeller")) {
|
| + visibleToSeller = _json["visibleToSeller"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (clientAccountId != null) {
|
| + _json["clientAccountId"] = clientAccountId;
|
| + }
|
| + if (clientName != null) {
|
| + _json["clientName"] = clientName;
|
| + }
|
| + if (entityId != null) {
|
| + _json["entityId"] = entityId;
|
| + }
|
| + if (entityName != null) {
|
| + _json["entityName"] = entityName;
|
| + }
|
| + if (entityType != null) {
|
| + _json["entityType"] = entityType;
|
| + }
|
| + if (role != null) {
|
| + _json["role"] = role;
|
| + }
|
| + if (status != null) {
|
| + _json["status"] = status;
|
| + }
|
| + if (visibleToSeller != null) {
|
| + _json["visibleToSeller"] = visibleToSeller;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * A client user is created under a client buyer and has restricted access to
|
| + * the Ad Exchange Marketplace and certain other sections
|
| + * of the Ad Exchange Buyer UI based on the role
|
| + * granted to the associated client buyer.
|
| + *
|
| + * The only way a new client user can be created is via accepting an
|
| + * email invitation
|
| + * (see the
|
| + * accounts.clients.invitations.create
|
| + * method).
|
| + *
|
| + * All fields are required unless otherwise specified.
|
| + */
|
| +class ClientUser {
|
| + /**
|
| + * Numerical account ID of the client buyer
|
| + * with which the user is associated; the
|
| + * buyer must be a client of the current sponsor buyer.
|
| + * The value of this field is ignored in an update operation.
|
| + */
|
| + core.String clientAccountId;
|
| + /**
|
| + * User's email address. The value of this field
|
| + * is ignored in an update operation.
|
| + */
|
| + core.String email;
|
| + /**
|
| + * The status of the client user.
|
| + * Possible string values are:
|
| + * - "USER_STATUS_UNSPECIFIED" : A placeholder for an undefined user status.
|
| + * - "PENDING" : A user who was already created but hasn't accepted the
|
| + * invitation yet.
|
| + * - "ACTIVE" : A user that is currently active.
|
| + * - "DISABLED" : A user that is currently disabled.
|
| + */
|
| + core.String status;
|
| + /**
|
| + * The unique numerical ID of the client user
|
| + * that has accepted an invitation.
|
| + * The value of this field is ignored in an update operation.
|
| + */
|
| + core.String userId;
|
| +
|
| + ClientUser();
|
| +
|
| + ClientUser.fromJson(core.Map _json) {
|
| + if (_json.containsKey("clientAccountId")) {
|
| + clientAccountId = _json["clientAccountId"];
|
| + }
|
| + if (_json.containsKey("email")) {
|
| + email = _json["email"];
|
| + }
|
| + if (_json.containsKey("status")) {
|
| + status = _json["status"];
|
| + }
|
| + if (_json.containsKey("userId")) {
|
| + userId = _json["userId"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (clientAccountId != null) {
|
| + _json["clientAccountId"] = clientAccountId;
|
| + }
|
| + if (email != null) {
|
| + _json["email"] = email;
|
| + }
|
| + if (status != null) {
|
| + _json["status"] = status;
|
| + }
|
| + if (userId != null) {
|
| + _json["userId"] = userId;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * An invitation for a new client user to get access to the Ad Exchange
|
| + * Buyer UI.
|
| + * All fields are required unless otherwise specified.
|
| + */
|
| +class ClientUserInvitation {
|
| + /**
|
| + * Numerical account ID of the client buyer
|
| + * that the invited user is associated with.
|
| + * The value of this field is ignored in create operations.
|
| + */
|
| + core.String clientAccountId;
|
| + /**
|
| + * The email address to which the invitation is sent. Email
|
| + * addresses should be unique among all client users under each sponsor
|
| + * buyer.
|
| + */
|
| + core.String email;
|
| + /**
|
| + * The unique numerical ID of the invitation that is sent to the user.
|
| + * The value of this field is ignored in create operations.
|
| + */
|
| + core.String invitationId;
|
| +
|
| + ClientUserInvitation();
|
| +
|
| + ClientUserInvitation.fromJson(core.Map _json) {
|
| + if (_json.containsKey("clientAccountId")) {
|
| + clientAccountId = _json["clientAccountId"];
|
| + }
|
| + if (_json.containsKey("email")) {
|
| + email = _json["email"];
|
| + }
|
| + if (_json.containsKey("invitationId")) {
|
| + invitationId = _json["invitationId"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (clientAccountId != null) {
|
| + _json["clientAccountId"] = clientAccountId;
|
| + }
|
| + if (email != null) {
|
| + _json["email"] = email;
|
| + }
|
| + if (invitationId != null) {
|
| + _json["invitationId"] = invitationId;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** @OutputOnly Shows any corrections that were applied to this creative. */
|
| +class Correction {
|
| + /** The contexts for the correction. */
|
| + core.List<ServingContext> contexts;
|
| + /** Additional details about what was corrected. */
|
| + core.List<core.String> details;
|
| + /**
|
| + * The type of correction that was applied to the creative.
|
| + * Possible string values are:
|
| + * - "CORRECTION_TYPE_UNSPECIFIED" : The correction type is unknown. Refer to
|
| + * the details for more information.
|
| + * - "VENDOR_IDS_ADDED" : The ad's declared vendors did not match the vendors
|
| + * that were detected.
|
| + * The detected vendors were added.
|
| + * - "SSL_ATTRIBUTE_REMOVED" : The ad had the SSL attribute declared but was
|
| + * not SSL-compliant.
|
| + * The SSL attribute was removed.
|
| + * - "FLASH_FREE_ATTRIBUTE_REMOVED" : The ad was declared as Flash-free but
|
| + * contained Flash, so the Flash-free
|
| + * attribute was removed.
|
| + * - "FLASH_FREE_ATTRIBUTE_ADDED" : The ad was not declared as Flash-free but
|
| + * it did not reference any flash
|
| + * content, so the Flash-free attribute was added.
|
| + * - "REQUIRED_ATTRIBUTE_ADDED" : The ad did not declare a required creative
|
| + * attribute.
|
| + * The attribute was added.
|
| + * - "REQUIRED_VENDOR_ADDED" : The ad did not declare a required technology
|
| + * vendor.
|
| + * The technology vendor was added.
|
| + * - "SSL_ATTRIBUTE_ADDED" : The ad did not declare the SSL attribute but was
|
| + * SSL-compliant, so the
|
| + * SSL attribute was added.
|
| + * - "IN_BANNER_VIDEO_ATTRIBUTE_ADDED" : Properties consistent with In-banner
|
| + * video were found, so an
|
| + * In-Banner Video attribute was added.
|
| + * - "MRAID_ATTRIBUTE_ADDED" : The ad makes calls to the MRAID API so the
|
| + * MRAID attribute was added.
|
| + * - "FLASH_ATTRIBUTE_REMOVED" : The ad unnecessarily declared the Flash
|
| + * attribute, so the Flash attribute
|
| + * was removed.
|
| + * - "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" : The ad contains video content.
|
| + */
|
| + core.String type;
|
| +
|
| + Correction();
|
| +
|
| + Correction.fromJson(core.Map _json) {
|
| + if (_json.containsKey("contexts")) {
|
| + contexts = _json["contexts"].map((value) => new ServingContext.fromJson(value)).toList();
|
| + }
|
| + if (_json.containsKey("details")) {
|
| + details = _json["details"];
|
| + }
|
| + if (_json.containsKey("type")) {
|
| + type = _json["type"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (contexts != null) {
|
| + _json["contexts"] = contexts.map((value) => (value).toJson()).toList();
|
| + }
|
| + if (details != null) {
|
| + _json["details"] = details;
|
| + }
|
| + if (type != null) {
|
| + _json["type"] = type;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** A creative and its classification data. */
|
| +class Creative {
|
| + /**
|
| + * The account that this creative belongs to.
|
| + * Can be used to filter the response of the
|
| + * creatives.list
|
| + * method.
|
| + */
|
| + core.String accountId;
|
| + /** The link to AdChoices destination page. */
|
| + core.String adChoicesDestinationUrl;
|
| + /** The name of the company being advertised in the creative. */
|
| + core.String advertiserName;
|
| + /** The agency ID for this creative. */
|
| + core.String agencyId;
|
| + /** @OutputOnly The last update timestamp of the creative via API. */
|
| + core.String apiUpdateTime;
|
| + /**
|
| + * All attributes for the ads that may be shown from this creative.
|
| + * Can be used to filter the response of the
|
| + * creatives.list
|
| + * method.
|
| + */
|
| + core.List<core.String> attributes;
|
| + /** The set of destination URLs for the creative. */
|
| + core.List<core.String> clickThroughUrls;
|
| + /** @OutputOnly Shows any corrections that were applied to this creative. */
|
| + core.List<Correction> corrections;
|
| + /**
|
| + * The buyer-defined creative ID of this creative.
|
| + * Can be used to filter the response of the
|
| + * creatives.list
|
| + * method.
|
| + */
|
| + core.String creativeId;
|
| + /**
|
| + * @OutputOnly The top-level deals status of this creative.
|
| + * If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
|
| + * serving_restrictions will also exist. Note
|
| + * that this may be nuanced with other contextual restrictions, in which case,
|
| + * it may be preferable to read from serving_restrictions directly.
|
| + * Can be used to filter the response of the
|
| + * creatives.list
|
| + * method.
|
| + * Possible string values are:
|
| + * - "STATUS_UNSPECIFIED" : The status is unknown.
|
| + * - "NOT_CHECKED" : The creative has not been checked.
|
| + * - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved.
|
| + * See serving_restrictions for details.
|
| + * - "APPROVED" : The creative has been approved.
|
| + * - "DISAPPROVED" : The creative has been disapproved.
|
| + */
|
| + core.String dealsStatus;
|
| + /** @OutputOnly Detected advertiser IDs, if any. */
|
| + core.List<core.String> detectedAdvertiserIds;
|
| + /**
|
| + * @OutputOnly
|
| + * The detected domains for this creative.
|
| + */
|
| + core.List<core.String> detectedDomains;
|
| + /**
|
| + * @OutputOnly
|
| + * The detected languages for this creative. The order is arbitrary. The codes
|
| + * are 2 or 5 characters and are documented at
|
| + * https://developers.google.com/adwords/api/docs/appendix/languagecodes.
|
| + */
|
| + core.List<core.String> detectedLanguages;
|
| + /**
|
| + * @OutputOnly Detected product categories, if any.
|
| + * See the ad-product-categories.txt file in the technical documentation
|
| + * for a list of IDs.
|
| + */
|
| + core.List<core.int> detectedProductCategories;
|
| + /**
|
| + * @OutputOnly Detected sensitive categories, if any.
|
| + * See the ad-sensitive-categories.txt file in the technical documentation for
|
| + * a list of IDs. You should use these IDs along with the
|
| + * excluded-sensitive-category field in the bid request to filter your bids.
|
| + */
|
| + core.List<core.int> detectedSensitiveCategories;
|
| + /** @OutputOnly The filtering stats for this creative. */
|
| + FilteringStats filteringStats;
|
| + /** An HTML creative. */
|
| + HtmlContent html;
|
| + /** The set of URLs to be called to record an impression. */
|
| + core.List<core.String> impressionTrackingUrls;
|
| + /** A native creative. */
|
| + NativeContent native;
|
| + /**
|
| + * @OutputOnly The top-level open auction status of this creative.
|
| + * If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
|
| + * serving_restrictions will also exist. Note
|
| + * that this may be nuanced with other contextual restrictions, in which case,
|
| + * it may be preferable to read from serving_restrictions directly.
|
| + * Can be used to filter the response of the
|
| + * creatives.list
|
| + * method.
|
| + * Possible string values are:
|
| + * - "STATUS_UNSPECIFIED" : The status is unknown.
|
| + * - "NOT_CHECKED" : The creative has not been checked.
|
| + * - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved.
|
| + * See serving_restrictions for details.
|
| + * - "APPROVED" : The creative has been approved.
|
| + * - "DISAPPROVED" : The creative has been disapproved.
|
| + */
|
| + core.String openAuctionStatus;
|
| + /**
|
| + * All restricted categories for the ads that may be shown from this creative.
|
| + */
|
| + core.List<core.String> restrictedCategories;
|
| + /**
|
| + * @OutputOnly The granular status of this ad in specific contexts.
|
| + * A context here relates to where something ultimately serves (for example,
|
| + * a physical location, a platform, an HTTPS vs HTTP request, or the type
|
| + * of auction).
|
| + */
|
| + core.List<ServingRestriction> servingRestrictions;
|
| + /**
|
| + * All vendor IDs for the ads that may be shown from this creative.
|
| + * See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
|
| + * for possible values.
|
| + */
|
| + core.List<core.int> vendorIds;
|
| + /** @OutputOnly The version of this creative. */
|
| + core.int version;
|
| + /** A video creative. */
|
| + VideoContent video;
|
| +
|
| + Creative();
|
| +
|
| + Creative.fromJson(core.Map _json) {
|
| + if (_json.containsKey("accountId")) {
|
| + accountId = _json["accountId"];
|
| + }
|
| + if (_json.containsKey("adChoicesDestinationUrl")) {
|
| + adChoicesDestinationUrl = _json["adChoicesDestinationUrl"];
|
| + }
|
| + if (_json.containsKey("advertiserName")) {
|
| + advertiserName = _json["advertiserName"];
|
| + }
|
| + if (_json.containsKey("agencyId")) {
|
| + agencyId = _json["agencyId"];
|
| + }
|
| + if (_json.containsKey("apiUpdateTime")) {
|
| + apiUpdateTime = _json["apiUpdateTime"];
|
| + }
|
| + if (_json.containsKey("attributes")) {
|
| + attributes = _json["attributes"];
|
| + }
|
| + if (_json.containsKey("clickThroughUrls")) {
|
| + clickThroughUrls = _json["clickThroughUrls"];
|
| + }
|
| + if (_json.containsKey("corrections")) {
|
| + corrections = _json["corrections"].map((value) => new Correction.fromJson(value)).toList();
|
| + }
|
| + if (_json.containsKey("creativeId")) {
|
| + creativeId = _json["creativeId"];
|
| + }
|
| + if (_json.containsKey("dealsStatus")) {
|
| + dealsStatus = _json["dealsStatus"];
|
| + }
|
| + if (_json.containsKey("detectedAdvertiserIds")) {
|
| + detectedAdvertiserIds = _json["detectedAdvertiserIds"];
|
| + }
|
| + if (_json.containsKey("detectedDomains")) {
|
| + detectedDomains = _json["detectedDomains"];
|
| + }
|
| + if (_json.containsKey("detectedLanguages")) {
|
| + detectedLanguages = _json["detectedLanguages"];
|
| + }
|
| + if (_json.containsKey("detectedProductCategories")) {
|
| + detectedProductCategories = _json["detectedProductCategories"];
|
| + }
|
| + if (_json.containsKey("detectedSensitiveCategories")) {
|
| + detectedSensitiveCategories = _json["detectedSensitiveCategories"];
|
| + }
|
| + if (_json.containsKey("filteringStats")) {
|
| + filteringStats = new FilteringStats.fromJson(_json["filteringStats"]);
|
| + }
|
| + if (_json.containsKey("html")) {
|
| + html = new HtmlContent.fromJson(_json["html"]);
|
| + }
|
| + if (_json.containsKey("impressionTrackingUrls")) {
|
| + impressionTrackingUrls = _json["impressionTrackingUrls"];
|
| + }
|
| + if (_json.containsKey("native")) {
|
| + native = new NativeContent.fromJson(_json["native"]);
|
| + }
|
| + if (_json.containsKey("openAuctionStatus")) {
|
| + openAuctionStatus = _json["openAuctionStatus"];
|
| + }
|
| + if (_json.containsKey("restrictedCategories")) {
|
| + restrictedCategories = _json["restrictedCategories"];
|
| + }
|
| + if (_json.containsKey("servingRestrictions")) {
|
| + servingRestrictions = _json["servingRestrictions"].map((value) => new ServingRestriction.fromJson(value)).toList();
|
| + }
|
| + if (_json.containsKey("vendorIds")) {
|
| + vendorIds = _json["vendorIds"];
|
| + }
|
| + if (_json.containsKey("version")) {
|
| + version = _json["version"];
|
| + }
|
| + if (_json.containsKey("video")) {
|
| + video = new VideoContent.fromJson(_json["video"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (accountId != null) {
|
| + _json["accountId"] = accountId;
|
| + }
|
| + if (adChoicesDestinationUrl != null) {
|
| + _json["adChoicesDestinationUrl"] = adChoicesDestinationUrl;
|
| + }
|
| + if (advertiserName != null) {
|
| + _json["advertiserName"] = advertiserName;
|
| + }
|
| + if (agencyId != null) {
|
| + _json["agencyId"] = agencyId;
|
| + }
|
| + if (apiUpdateTime != null) {
|
| + _json["apiUpdateTime"] = apiUpdateTime;
|
| + }
|
| + if (attributes != null) {
|
| + _json["attributes"] = attributes;
|
| + }
|
| + if (clickThroughUrls != null) {
|
| + _json["clickThroughUrls"] = clickThroughUrls;
|
| + }
|
| + if (corrections != null) {
|
| + _json["corrections"] = corrections.map((value) => (value).toJson()).toList();
|
| + }
|
| + if (creativeId != null) {
|
| + _json["creativeId"] = creativeId;
|
| + }
|
| + if (dealsStatus != null) {
|
| + _json["dealsStatus"] = dealsStatus;
|
| + }
|
| + if (detectedAdvertiserIds != null) {
|
| + _json["detectedAdvertiserIds"] = detectedAdvertiserIds;
|
| + }
|
| + if (detectedDomains != null) {
|
| + _json["detectedDomains"] = detectedDomains;
|
| + }
|
| + if (detectedLanguages != null) {
|
| + _json["detectedLanguages"] = detectedLanguages;
|
| + }
|
| + if (detectedProductCategories != null) {
|
| + _json["detectedProductCategories"] = detectedProductCategories;
|
| + }
|
| + if (detectedSensitiveCategories != null) {
|
| + _json["detectedSensitiveCategories"] = detectedSensitiveCategories;
|
| + }
|
| + if (filteringStats != null) {
|
| + _json["filteringStats"] = (filteringStats).toJson();
|
| + }
|
| + if (html != null) {
|
| + _json["html"] = (html).toJson();
|
| + }
|
| + if (impressionTrackingUrls != null) {
|
| + _json["impressionTrackingUrls"] = impressionTrackingUrls;
|
| + }
|
| + if (native != null) {
|
| + _json["native"] = (native).toJson();
|
| + }
|
| + if (openAuctionStatus != null) {
|
| + _json["openAuctionStatus"] = openAuctionStatus;
|
| + }
|
| + if (restrictedCategories != null) {
|
| + _json["restrictedCategories"] = restrictedCategories;
|
| + }
|
| + if (servingRestrictions != null) {
|
| + _json["servingRestrictions"] = servingRestrictions.map((value) => (value).toJson()).toList();
|
| + }
|
| + if (vendorIds != null) {
|
| + _json["vendorIds"] = vendorIds;
|
| + }
|
| + if (version != null) {
|
| + _json["version"] = version;
|
| + }
|
| + if (video != null) {
|
| + _json["video"] = (video).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** The association between a creative and a deal. */
|
| +class CreativeDealAssociation {
|
| + /** The account the creative belongs to. */
|
| + core.String accountId;
|
| + /** The ID of the creative associated with the deal. */
|
| + core.String creativeId;
|
| + /** The externalDealId for the deal associated with the creative. */
|
| + core.String dealsId;
|
| +
|
| + CreativeDealAssociation();
|
| +
|
| + CreativeDealAssociation.fromJson(core.Map _json) {
|
| + if (_json.containsKey("accountId")) {
|
| + accountId = _json["accountId"];
|
| + }
|
| + if (_json.containsKey("creativeId")) {
|
| + creativeId = _json["creativeId"];
|
| + }
|
| + if (_json.containsKey("dealsId")) {
|
| + dealsId = _json["dealsId"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (accountId != null) {
|
| + _json["accountId"] = accountId;
|
| + }
|
| + if (creativeId != null) {
|
| + _json["creativeId"] = creativeId;
|
| + }
|
| + if (dealsId != null) {
|
| + _json["dealsId"] = dealsId;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * The number of bids with the specified dimension values that did not win the
|
| + * auction (either were filtered pre-auction or lost the auction), as described
|
| + * by the specified creative status.
|
| + */
|
| +class CreativeStatusRow {
|
| + /** The number of bids with the specified status. */
|
| + MetricValue bidCount;
|
| + /**
|
| + * The ID of the creative status.
|
| + * See
|
| + * [creative-status-codes](https://developers.google.com/ad-exchange/rtb/downloads/creative-status-codes).
|
| + */
|
| + core.int creativeStatusId;
|
| + /**
|
| + * The values of all dimensions associated with metric values in this row.
|
| + */
|
| + RowDimensions rowDimensions;
|
| +
|
| + CreativeStatusRow();
|
| +
|
| + CreativeStatusRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bidCount")) {
|
| + bidCount = new MetricValue.fromJson(_json["bidCount"]);
|
| + }
|
| + if (_json.containsKey("creativeStatusId")) {
|
| + creativeStatusId = _json["creativeStatusId"];
|
| + }
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bidCount != null) {
|
| + _json["bidCount"] = (bidCount).toJson();
|
| + }
|
| + if (creativeStatusId != null) {
|
| + _json["creativeStatusId"] = creativeStatusId;
|
| + }
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Represents a whole calendar date, e.g. date of birth. The time of day and
|
| + * time zone are either specified elsewhere or are not significant. The date
|
| + * is relative to the Proleptic Gregorian Calendar. The day may be 0 to
|
| + * represent a year and month where the day is not significant, e.g. credit card
|
| + * expiration date. The year may be 0 to represent a month and day independent
|
| + * of year, e.g. anniversary date. Related types are google.type.TimeOfDay
|
| + * and `google.protobuf.Timestamp`.
|
| + */
|
| +class Date {
|
| + /**
|
| + * Day of month. Must be from 1 to 31 and valid for the year and month, or 0
|
| + * if specifying a year/month where the day is not significant.
|
| + */
|
| + core.int day;
|
| + /** Month of year. Must be from 1 to 12. */
|
| + core.int month;
|
| + /**
|
| + * Year of date. Must be from 1 to 9999, or 0 if specifying a date without
|
| + * a year.
|
| + */
|
| + core.int year;
|
| +
|
| + Date();
|
| +
|
| + Date.fromJson(core.Map _json) {
|
| + if (_json.containsKey("day")) {
|
| + day = _json["day"];
|
| + }
|
| + if (_json.containsKey("month")) {
|
| + month = _json["month"];
|
| + }
|
| + if (_json.containsKey("year")) {
|
| + year = _json["year"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (day != null) {
|
| + _json["day"] = day;
|
| + }
|
| + if (month != null) {
|
| + _json["month"] = month;
|
| + }
|
| + if (year != null) {
|
| + _json["year"] = year;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** @OutputOnly The reason and details for a disapproval. */
|
| +class Disapproval {
|
| + /** Additional details about the reason for disapproval. */
|
| + core.List<core.String> details;
|
| + /**
|
| + * The categorized reason for disapproval.
|
| + * Possible string values are:
|
| + * - "LENGTH_OF_IMAGE_ANIMATION" : The length of the image animation is longer
|
| + * than allowed.
|
| + * - "BROKEN_URL" : The click through URL doesn't work properly.
|
| + * - "MEDIA_NOT_FUNCTIONAL" : Something is wrong with the creative itself.
|
| + * - "INVALID_FOURTH_PARTY_CALL" : The ad makes a fourth party call to an
|
| + * unapproved vendor.
|
| + * - "INCORRECT_REMARKETING_DECLARATION" : The ad targets consumers using
|
| + * remarketing lists and/or collects
|
| + * data for subsequent use in retargeting, but does not correctly declare
|
| + * that use.
|
| + * - "LANDING_PAGE_ERROR" : Clicking on the ad leads to an error page.
|
| + * - "AD_SIZE_DOES_NOT_MATCH_AD_SLOT" : The ad size when rendered does not
|
| + * match the declaration.
|
| + * - "NO_BORDER" : Ads with a white background require a border, which was
|
| + * missing.
|
| + * - "FOURTH_PARTY_BROWSER_COOKIES" : The creative attempts to set cookies
|
| + * from a fourth party that is not
|
| + * certified.
|
| + * - "LSO_OBJECTS" : The creative sets an LSO object.
|
| + * - "BLANK_CREATIVE" : The ad serves a blank.
|
| + * - "DESTINATION_URLS_UNDECLARED" : The ad uses rotation, but not all
|
| + * destination URLs were declared.
|
| + * - "PROBLEM_WITH_CLICK_MACRO" : There is a problem with the way the click
|
| + * macro is used.
|
| + * - "INCORRECT_AD_TECHNOLOGY_DECLARATION" : The ad technology declaration is
|
| + * not accurate.
|
| + * - "INCORRECT_DESTINATION_URL_DECLARATION" : The actual destination URL does
|
| + * not match the declared destination URL.
|
| + * - "EXPANDABLE_INCORRECT_DIRECTION" : The declared expanding direction does
|
| + * not match the actual direction.
|
| + * - "EXPANDABLE_DIRECTION_NOT_SUPPORTED" : The ad does not expand in a
|
| + * supported direction.
|
| + * - "EXPANDABLE_INVALID_VENDOR" : The ad uses an expandable vendor that is
|
| + * not supported.
|
| + * - "EXPANDABLE_FUNCTIONALITY" : There was an issue with the expandable ad.
|
| + * - "VIDEO_INVALID_VENDOR" : The ad uses a video vendor that is not
|
| + * supported.
|
| + * - "VIDEO_UNSUPPORTED_LENGTH" : The length of the video ad is not supported.
|
| + * - "VIDEO_UNSUPPORTED_FORMAT" : The format of the video ad is not supported.
|
| + * - "VIDEO_FUNCTIONALITY" : There was an issue with the video ad.
|
| + * - "LANDING_PAGE_DISABLED" : The landing page does not conform to Ad
|
| + * Exchange policy.
|
| + * - "MALWARE_SUSPECTED" : The ad or the landing page may contain malware.
|
| + * - "ADULT_IMAGE_OR_VIDEO" : The ad contains adult images or video content.
|
| + * - "INACCURATE_AD_TEXT" : The ad contains text that is unclear or
|
| + * inaccurate.
|
| + * - "COUNTERFEIT_DESIGNER_GOODS" : The ad promotes counterfeit designer
|
| + * goods.
|
| + * - "POP_UP" : The ad causes a popup window to appear.
|
| + * - "INVALID_RTB_PROTOCOL_USAGE" : The creative does not follow policies set
|
| + * for the RTB protocol.
|
| + * - "RAW_IP_ADDRESS_IN_SNIPPET" : The ad contains a URL that uses a numeric
|
| + * IP address for the domain.
|
| + * - "UNACCEPTABLE_CONTENT_SOFTWARE" : The ad or landing page contains
|
| + * unacceptable content because it initiated
|
| + * a software or executable download.
|
| + * - "UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN" : The ad set an unauthorized
|
| + * cookie on a Google domain.
|
| + * - "UNDECLARED_FLASH_OBJECTS" : Flash content found when no flash was
|
| + * declared.
|
| + * - "INVALID_SSL_DECLARATION" : SSL support declared but not working
|
| + * correctly.
|
| + * - "DIRECT_DOWNLOAD_IN_AD" : Rich Media - Direct Download in Ad (ex. PDF
|
| + * download).
|
| + * - "MAXIMUM_DOWNLOAD_SIZE_EXCEEDED" : Maximum download size exceeded.
|
| + * - "DESTINATION_URL_SITE_NOT_CRAWLABLE" : Bad Destination URL: Site Not
|
| + * Crawlable.
|
| + * - "BAD_URL_LEGAL_DISAPPROVAL" : Bad URL: Legal disapproval.
|
| + * - "PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED" : Pharmaceuticals, Gambling,
|
| + * Alcohol not allowed and at least one was
|
| + * detected.
|
| + * - "DYNAMIC_DNS_AT_DESTINATION_URL" : Dynamic DNS at Destination URL.
|
| + * - "POOR_IMAGE_OR_VIDEO_QUALITY" : Poor Image / Video Quality.
|
| + * - "UNACCEPTABLE_IMAGE_CONTENT" : For example, Image Trick to Click.
|
| + * - "INCORRECT_IMAGE_LAYOUT" : Incorrect Image Layout.
|
| + * - "IRRELEVANT_IMAGE_OR_VIDEO" : Irrelevant Image / Video.
|
| + * - "DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK" : Broken back button.
|
| + * - "MISLEADING_CLAIMS_IN_AD" : Misleading/Inaccurate claims in ads.
|
| + * - "RESTRICTED_PRODUCTS" : Restricted Products.
|
| + * - "UNACCEPTABLE_CONTENT" : Unacceptable content. For example, malware.
|
| + * - "AUTOMATED_AD_CLICKING" : The ad automatically redirects to the
|
| + * destination site without a click,
|
| + * or reports a click when none were made.
|
| + * - "INVALID_URL_PROTOCOL" : The ad uses URL protocols that do not exist or
|
| + * are not allowed on AdX.
|
| + * - "UNDECLARED_RESTRICTED_CONTENT" : Restricted content (for example,
|
| + * alcohol) was found in the ad but not
|
| + * declared.
|
| + * - "INVALID_REMARKETING_LIST_USAGE" : Violation of the remarketing list
|
| + * policy.
|
| + * - "DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT" : The destination site's
|
| + * robot.txt file prevents it from being crawled.
|
| + * - "CLICK_TO_DOWNLOAD_NOT_AN_APP" : Click to download must link to an app.
|
| + * - "INACCURATE_REVIEW_EXTENSION" : A review extension must be an accurate
|
| + * review.
|
| + * - "SEXUALLY_EXPLICIT_CONTENT" : Sexually explicit content.
|
| + * - "GAINING_AN_UNFAIR_ADVANTAGE" : The ad tries to gain an unfair traffic
|
| + * advantage.
|
| + * - "GAMING_THE_GOOGLE_NETWORK" : The ad tries to circumvent Google's
|
| + * advertising systems.
|
| + * - "DANGEROUS_PRODUCTS_KNIVES" : The ad promotes dangerous knives.
|
| + * - "DANGEROUS_PRODUCTS_EXPLOSIVES" : The ad promotes explosives.
|
| + * - "DANGEROUS_PRODUCTS_GUNS" : The ad promotes guns & parts.
|
| + * - "DANGEROUS_PRODUCTS_DRUGS" : The ad promotes recreational drugs/services
|
| + * & related equipment.
|
| + * - "DANGEROUS_PRODUCTS_TOBACCO" : The ad promotes tobacco products/services
|
| + * & related equipment.
|
| + * - "DANGEROUS_PRODUCTS_WEAPONS" : The ad promotes weapons.
|
| + * - "UNCLEAR_OR_IRRELEVANT_AD" : The ad is unclear or irrelevant to the
|
| + * destination site.
|
| + * - "PROFESSIONAL_STANDARDS" : The ad does not meet professional standards.
|
| + * - "DYSFUNCTIONAL_PROMOTION" : The promotion is unnecessarily difficult to
|
| + * navigate.
|
| + * - "INVALID_INTEREST_BASED_AD" : Violation of Google's policy for
|
| + * interest-based ads.
|
| + * - "MISUSE_OF_PERSONAL_INFORMATION" : Misuse of personal information.
|
| + * - "OMISSION_OF_RELEVANT_INFORMATION" : Omission of relevant information.
|
| + * - "UNAVAILABLE_PROMOTIONS" : Unavailable promotions.
|
| + * - "MISLEADING_PROMOTIONS" : Misleading or unrealistic promotions.
|
| + * - "INAPPROPRIATE_CONTENT" : Offensive or inappropriate content.
|
| + * - "SENSITIVE_EVENTS" : Capitalizing on sensitive events.
|
| + * - "SHOCKING_CONTENT" : Shocking content.
|
| + * - "ENABLING_DISHONEST_BEHAVIOR" : Products & Services that enable dishonest
|
| + * behavior.
|
| + * - "TECHNICAL_REQUIREMENTS" : The ad does not meet technical requirements.
|
| + * - "RESTRICTED_POLITICAL_CONTENT" : Restricted political content.
|
| + * - "UNSUPPORTED_CONTENT" : Unsupported content.
|
| + * - "INVALID_BIDDING_METHOD" : Invalid bidding method.
|
| + * - "VIDEO_TOO_LONG" : Video length exceeds limits.
|
| + * - "VIOLATES_JAPANESE_PHARMACY_LAW" : Unacceptable content: Japanese
|
| + * healthcare.
|
| + * - "UNACCREDITED_PET_PHARMACY" : Online pharmacy ID required.
|
| + * - "ABORTION" : Unacceptable content: Abortion.
|
| + * - "CONTRACEPTIVES" : Unacceptable content: Birth control.
|
| + * - "NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA" : Restricted in China.
|
| + * - "KCDSP_REGISTRATION" : Unacceptable content: Korean healthcare.
|
| + * - "NOT_FAMILY_SAFE" : Non-family safe or adult content.
|
| + * - "CLINICAL_TRIAL_RECRUITMENT" : Clinical trial recruitment.
|
| + * - "MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED" : Maximum number of HTTP calls
|
| + * exceeded.
|
| + * - "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED" : Maximum number of cookies
|
| + * exceeded.
|
| + * - "PERSONAL_LOANS" : Financial service ad does not adhere to
|
| + * specifications.
|
| + * - "UNSUPPORTED_FLASH_CONTENT" : Flash content was found in an unsupported
|
| + * context.
|
| + */
|
| + core.String reason;
|
| +
|
| + Disapproval();
|
| +
|
| + Disapproval.fromJson(core.Map _json) {
|
| + if (_json.containsKey("details")) {
|
| + details = _json["details"];
|
| + }
|
| + if (_json.containsKey("reason")) {
|
| + reason = _json["reason"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (details != null) {
|
| + _json["details"] = details;
|
| + }
|
| + if (reason != null) {
|
| + _json["reason"] = reason;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * A generic empty message that you can re-use to avoid defining duplicated
|
| + * empty messages in your APIs. A typical example is to use it as the request
|
| + * or the response type of an API method. For instance:
|
| + *
|
| + * service Foo {
|
| + * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
| + * }
|
| + *
|
| + * The JSON representation for `Empty` is empty JSON object `{}`.
|
| + */
|
| +class Empty {
|
| +
|
| + Empty();
|
| +
|
| + Empty.fromJson(core.Map _json) {
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * A set of filters that is applied to a request for data.
|
| + * Within a filter set, an AND operation is performed across the filters
|
| + * represented by each field. An OR operation is performed across the filters
|
| + * represented by the multiple values of a repeated field. E.g.
|
| + * "format=VIDEO AND deal_id=12 AND (seller_network_id=34 OR
|
| + * seller_network_id=56)"
|
| + */
|
| +class FilterSet {
|
| /**
|
| - * The role which is assigned to the client buyer. Each role implies a set of
|
| - * permissions granted to the client. Must be one of `CLIENT_DEAL_VIEWER`,
|
| - * `CLIENT_DEAL_NEGOTIATOR` or `CLIENT_DEAL_APPROVER`.
|
| + * An absolute date range, defined by a start date and an end date.
|
| + * Interpreted relative to Pacific time zone.
|
| + */
|
| + AbsoluteDateRange absoluteDateRange;
|
| + /** The ID of the buyer account on which to filter; optional. */
|
| + core.String buyerAccountId;
|
| + /** The ID of the creative on which to filter; optional. */
|
| + core.String creativeId;
|
| + /** The ID of the deal on which to filter; optional. */
|
| + core.String dealId;
|
| + /**
|
| + * The environment on which to filter; optional.
|
| * Possible string values are:
|
| - * - "CLIENT_ROLE_UNSPECIFIED" : A placeholder for an undefined client role.
|
| - * - "CLIENT_DEAL_VIEWER" : Users associated with this client can see
|
| - * publisher deal offers
|
| - * in the Marketplace.
|
| - * They can neither negotiate proposals nor approve deals.
|
| - * If this client is visible to publishers, they can send deal proposals
|
| - * to this client.
|
| - * - "CLIENT_DEAL_NEGOTIATOR" : Users associated with this client can respond
|
| - * to deal proposals
|
| - * sent to them by publishers. They can also initiate deal proposals
|
| - * of their own.
|
| - * - "CLIENT_DEAL_APPROVER" : Users associated with this client can approve
|
| - * eligible deals
|
| - * on your behalf. Some deals may still explicitly require publisher
|
| - * finalization. If this role is not selected, the sponsor buyer
|
| - * will need to manually approve each of their deals.
|
| + * - "ENVIRONMENT_UNSPECIFIED" : A placeholder for an undefined environment;
|
| + * indicates that no environment
|
| + * filter will be applied.
|
| + * - "WEB" : The ad impression appears on the web.
|
| + * - "APP" : The ad impression appears in an app.
|
| + */
|
| + core.String environment;
|
| + /**
|
| + * The ID of the filter set; unique within the account of the filter set
|
| + * owner.
|
| + * The value of this field is ignored in create operations.
|
| + */
|
| + core.String filterSetId;
|
| + /**
|
| + * The format on which to filter; optional.
|
| + * Possible string values are:
|
| + * - "FORMAT_UNSPECIFIED" : A placeholder for an undefined format; indicates
|
| + * that no format filter
|
| + * will be applied.
|
| + * - "DISPLAY" : The ad impression is display format (i.e. an image).
|
| + * - "VIDEO" : The ad impression is video format.
|
| + */
|
| + core.String format;
|
| + /**
|
| + * The account ID of the buyer who owns this filter set.
|
| + * The value of this field is ignored in create operations.
|
| + */
|
| + core.String ownerAccountId;
|
| + /**
|
| + * The list of platforms on which to filter; may be empty. The filters
|
| + * represented by multiple platforms are ORed together (i.e. if non-empty,
|
| + * results must match any one of the platforms).
|
| */
|
| - core.String role;
|
| + core.List<core.String> platforms;
|
| /**
|
| - * The status of the client buyer.
|
| + * An open-ended realtime time range, defined by the aggregation start
|
| + * timestamp.
|
| + */
|
| + RealtimeTimeRange realtimeTimeRange;
|
| + /**
|
| + * A relative date range, defined by an offset from today and a duration.
|
| + * Interpreted relative to Pacific time zone.
|
| + */
|
| + RelativeDateRange relativeDateRange;
|
| + /**
|
| + * The list of IDs of the seller (publisher) networks on which to filter;
|
| + * may be empty. The filters represented by multiple seller network IDs are
|
| + * ORed together (i.e. if non-empty, results must match any one of the
|
| + * publisher networks).
|
| + * See
|
| + * [seller-network-ids](https://developers.google.com/ad-exchange/rtb/downloads/seller-network-ids)
|
| + * file for the set of existing seller network IDs.
|
| + */
|
| + core.List<core.int> sellerNetworkIds;
|
| + /**
|
| + * The granularity of time intervals if a time series breakdown is desired;
|
| + * optional.
|
| * Possible string values are:
|
| - * - "CLIENT_STATUS_UNSPECIFIED" : A placeholder for an undefined client
|
| - * status.
|
| - * - "DISABLED" : A client that is currently disabled.
|
| - * - "ACTIVE" : A client that is currently active.
|
| + * - "INTERVAL_UNSPECIFIED" : A placeholder for an unspecified interval; no
|
| + * time series is applied.
|
| + * All rows in response will contain data for the entire requested time range.
|
| + * - "HOURLY" : Indicates that data will be broken down by the hour.
|
| + * - "DAILY" : Indicates that data will be broken down by the day.
|
| */
|
| - core.String status;
|
| - /** Whether the client buyer will be visible to sellers. */
|
| - core.bool visibleToSeller;
|
| + core.String timeSeriesGranularity;
|
|
|
| - Client();
|
| + FilterSet();
|
|
|
| - Client.fromJson(core.Map _json) {
|
| - if (_json.containsKey("clientAccountId")) {
|
| - clientAccountId = _json["clientAccountId"];
|
| + FilterSet.fromJson(core.Map _json) {
|
| + if (_json.containsKey("absoluteDateRange")) {
|
| + absoluteDateRange = new AbsoluteDateRange.fromJson(_json["absoluteDateRange"]);
|
| }
|
| - if (_json.containsKey("clientName")) {
|
| - clientName = _json["clientName"];
|
| + if (_json.containsKey("buyerAccountId")) {
|
| + buyerAccountId = _json["buyerAccountId"];
|
| }
|
| - if (_json.containsKey("entityId")) {
|
| - entityId = _json["entityId"];
|
| + if (_json.containsKey("creativeId")) {
|
| + creativeId = _json["creativeId"];
|
| }
|
| - if (_json.containsKey("entityName")) {
|
| - entityName = _json["entityName"];
|
| + if (_json.containsKey("dealId")) {
|
| + dealId = _json["dealId"];
|
| }
|
| - if (_json.containsKey("entityType")) {
|
| - entityType = _json["entityType"];
|
| + if (_json.containsKey("environment")) {
|
| + environment = _json["environment"];
|
| }
|
| - if (_json.containsKey("role")) {
|
| - role = _json["role"];
|
| + if (_json.containsKey("filterSetId")) {
|
| + filterSetId = _json["filterSetId"];
|
| }
|
| - if (_json.containsKey("status")) {
|
| - status = _json["status"];
|
| + if (_json.containsKey("format")) {
|
| + format = _json["format"];
|
| }
|
| - if (_json.containsKey("visibleToSeller")) {
|
| - visibleToSeller = _json["visibleToSeller"];
|
| + if (_json.containsKey("ownerAccountId")) {
|
| + ownerAccountId = _json["ownerAccountId"];
|
| + }
|
| + if (_json.containsKey("platforms")) {
|
| + platforms = _json["platforms"];
|
| + }
|
| + if (_json.containsKey("realtimeTimeRange")) {
|
| + realtimeTimeRange = new RealtimeTimeRange.fromJson(_json["realtimeTimeRange"]);
|
| + }
|
| + if (_json.containsKey("relativeDateRange")) {
|
| + relativeDateRange = new RelativeDateRange.fromJson(_json["relativeDateRange"]);
|
| + }
|
| + if (_json.containsKey("sellerNetworkIds")) {
|
| + sellerNetworkIds = _json["sellerNetworkIds"];
|
| + }
|
| + if (_json.containsKey("timeSeriesGranularity")) {
|
| + timeSeriesGranularity = _json["timeSeriesGranularity"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (clientAccountId != null) {
|
| - _json["clientAccountId"] = clientAccountId;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (absoluteDateRange != null) {
|
| + _json["absoluteDateRange"] = (absoluteDateRange).toJson();
|
| }
|
| - if (clientName != null) {
|
| - _json["clientName"] = clientName;
|
| + if (buyerAccountId != null) {
|
| + _json["buyerAccountId"] = buyerAccountId;
|
| }
|
| - if (entityId != null) {
|
| - _json["entityId"] = entityId;
|
| + if (creativeId != null) {
|
| + _json["creativeId"] = creativeId;
|
| }
|
| - if (entityName != null) {
|
| - _json["entityName"] = entityName;
|
| + if (dealId != null) {
|
| + _json["dealId"] = dealId;
|
| }
|
| - if (entityType != null) {
|
| - _json["entityType"] = entityType;
|
| + if (environment != null) {
|
| + _json["environment"] = environment;
|
| }
|
| - if (role != null) {
|
| - _json["role"] = role;
|
| + if (filterSetId != null) {
|
| + _json["filterSetId"] = filterSetId;
|
| }
|
| - if (status != null) {
|
| - _json["status"] = status;
|
| + if (format != null) {
|
| + _json["format"] = format;
|
| }
|
| - if (visibleToSeller != null) {
|
| - _json["visibleToSeller"] = visibleToSeller;
|
| + if (ownerAccountId != null) {
|
| + _json["ownerAccountId"] = ownerAccountId;
|
| + }
|
| + if (platforms != null) {
|
| + _json["platforms"] = platforms;
|
| + }
|
| + if (realtimeTimeRange != null) {
|
| + _json["realtimeTimeRange"] = (realtimeTimeRange).toJson();
|
| + }
|
| + if (relativeDateRange != null) {
|
| + _json["relativeDateRange"] = (relativeDateRange).toJson();
|
| + }
|
| + if (sellerNetworkIds != null) {
|
| + _json["sellerNetworkIds"] = sellerNetworkIds;
|
| + }
|
| + if (timeSeriesGranularity != null) {
|
| + _json["timeSeriesGranularity"] = timeSeriesGranularity;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| /**
|
| - * A client user is created under a client buyer and has restricted access to
|
| - * the Ad Exchange Marketplace and certain other sections
|
| - * of the Ad Exchange Buyer UI based on the role
|
| - * granted to the associated client buyer.
|
| - *
|
| - * The only way a new client user can be created is via accepting an
|
| - * email invitation
|
| - * (see the
|
| - * accounts.clients.invitations.create
|
| - * method).
|
| - *
|
| - * All fields are required unless otherwise specified.
|
| + * The number of filtered bids with the specified dimension values that have the
|
| + * specified creative.
|
| */
|
| -class ClientUser {
|
| - /**
|
| - * Numerical account ID of the client buyer
|
| - * with which the user is associated; the
|
| - * buyer must be a client of the current sponsor buyer.
|
| - * The value of this field is ignored in an update operation.
|
| - */
|
| - core.String clientAccountId;
|
| - /**
|
| - * User's email address. The value of this field
|
| - * is ignored in an update operation.
|
| - */
|
| - core.String email;
|
| - /**
|
| - * The status of the client user.
|
| - * Possible string values are:
|
| - * - "USER_STATUS_UNSPECIFIED" : A placeholder for an undefined user status.
|
| - * - "PENDING" : A user who was already created but hasn't accepted the
|
| - * invitation yet.
|
| - * - "ACTIVE" : A user that is currently active.
|
| - * - "DISABLED" : A user that is currently disabled.
|
| - */
|
| - core.String status;
|
| +class FilteredBidCreativeRow {
|
| + /** The number of bids with the specified creative. */
|
| + MetricValue bidCount;
|
| + /** The ID of the creative. */
|
| + core.String creativeId;
|
| /**
|
| - * The unique numerical ID of the client user
|
| - * that has accepted an invitation.
|
| - * The value of this field is ignored in an update operation.
|
| + * The values of all dimensions associated with metric values in this row.
|
| */
|
| - core.String userId;
|
| + RowDimensions rowDimensions;
|
|
|
| - ClientUser();
|
| + FilteredBidCreativeRow();
|
|
|
| - ClientUser.fromJson(core.Map _json) {
|
| - if (_json.containsKey("clientAccountId")) {
|
| - clientAccountId = _json["clientAccountId"];
|
| + FilteredBidCreativeRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bidCount")) {
|
| + bidCount = new MetricValue.fromJson(_json["bidCount"]);
|
| }
|
| - if (_json.containsKey("email")) {
|
| - email = _json["email"];
|
| - }
|
| - if (_json.containsKey("status")) {
|
| - status = _json["status"];
|
| + if (_json.containsKey("creativeId")) {
|
| + creativeId = _json["creativeId"];
|
| }
|
| - if (_json.containsKey("userId")) {
|
| - userId = _json["userId"];
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (clientAccountId != null) {
|
| - _json["clientAccountId"] = clientAccountId;
|
| - }
|
| - if (email != null) {
|
| - _json["email"] = email;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bidCount != null) {
|
| + _json["bidCount"] = (bidCount).toJson();
|
| }
|
| - if (status != null) {
|
| - _json["status"] = status;
|
| + if (creativeId != null) {
|
| + _json["creativeId"] = creativeId;
|
| }
|
| - if (userId != null) {
|
| - _json["userId"] = userId;
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| /**
|
| - * An invitation for a new client user to get access to the Ad Exchange
|
| - * Buyer UI.
|
| - * All fields are required unless otherwise specified.
|
| + * The number of filtered bids with the specified dimension values, among those
|
| + * filtered due to the requested filtering reason (i.e. creative status), that
|
| + * have the specified detail.
|
| */
|
| -class ClientUserInvitation {
|
| +class FilteredBidDetailRow {
|
| + /** The number of bids with the specified detail. */
|
| + MetricValue bidCount;
|
| /**
|
| - * Numerical account ID of the client buyer
|
| - * that the invited user is associated with.
|
| - * The value of this field is ignored in create operations.
|
| - */
|
| - core.String clientAccountId;
|
| - /**
|
| - * The email address to which the invitation is sent. Email
|
| - * addresses should be unique among all client users under each sponsor
|
| - * buyer.
|
| + * The ID of the detail. The associated value can be looked up in the
|
| + * dictionary file corresponding to the DetailType in the response message.
|
| */
|
| - core.String email;
|
| + core.int detailId;
|
| /**
|
| - * The unique numerical ID of the invitation that is sent to the user.
|
| - * The value of this field is ignored in create operations.
|
| + * The values of all dimensions associated with metric values in this row.
|
| */
|
| - core.String invitationId;
|
| + RowDimensions rowDimensions;
|
|
|
| - ClientUserInvitation();
|
| + FilteredBidDetailRow();
|
|
|
| - ClientUserInvitation.fromJson(core.Map _json) {
|
| - if (_json.containsKey("clientAccountId")) {
|
| - clientAccountId = _json["clientAccountId"];
|
| + FilteredBidDetailRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bidCount")) {
|
| + bidCount = new MetricValue.fromJson(_json["bidCount"]);
|
| }
|
| - if (_json.containsKey("email")) {
|
| - email = _json["email"];
|
| + if (_json.containsKey("detailId")) {
|
| + detailId = _json["detailId"];
|
| }
|
| - if (_json.containsKey("invitationId")) {
|
| - invitationId = _json["invitationId"];
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (clientAccountId != null) {
|
| - _json["clientAccountId"] = clientAccountId;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bidCount != null) {
|
| + _json["bidCount"] = (bidCount).toJson();
|
| }
|
| - if (email != null) {
|
| - _json["email"] = email;
|
| + if (detailId != null) {
|
| + _json["detailId"] = detailId;
|
| }
|
| - if (invitationId != null) {
|
| - _json["invitationId"] = invitationId;
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/** @OutputOnly Shows any corrections that were applied to this creative. */
|
| -class Correction {
|
| - /** The contexts for the correction. */
|
| - core.List<ServingContext> contexts;
|
| - /** Additional details about what was corrected. */
|
| - core.List<core.String> details;
|
| +/**
|
| + * @OutputOnly Filtering reasons for this creative during a period of a single
|
| + * day (from midnight to midnight Pacific).
|
| + */
|
| +class FilteringStats {
|
| /**
|
| - * The type of correction that was applied to the creative.
|
| - * Possible string values are:
|
| - * - "CORRECTION_TYPE_UNSPECIFIED" : The correction type is unknown. Refer to
|
| - * the details for more information.
|
| - * - "VENDOR_IDS_ADDED" : The ad's declared vendors did not match the vendors
|
| - * that were detected.
|
| - * The detected vendors were added.
|
| - * - "SSL_ATTRIBUTE_REMOVED" : The ad had the SSL attribute declared but was
|
| - * not SSL-compliant.
|
| - * The SSL attribute was removed.
|
| - * - "FLASH_FREE_ATTRIBUTE_REMOVED" : The ad was declared as Flash-free but
|
| - * contained Flash, so the Flash-free
|
| - * attribute was removed.
|
| - * - "FLASH_FREE_ATTRIBUTE_ADDED" : The ad was not declared as Flash-free but
|
| - * it did not reference any flash
|
| - * content, so the Flash-free attribute was added.
|
| - * - "REQUIRED_ATTRIBUTE_ADDED" : The ad did not declare a required creative
|
| - * attribute.
|
| - * The attribute was added.
|
| - * - "REQUIRED_VENDOR_ADDED" : The ad did not declare a required technology
|
| - * vendor.
|
| - * The technology vendor was added.
|
| - * - "SSL_ATTRIBUTE_ADDED" : The ad did not declare the SSL attribute but was
|
| - * SSL-compliant, so the
|
| - * SSL attribute was added.
|
| - * - "IN_BANNER_VIDEO_ATTRIBUTE_ADDED" : Properties consistent with In-banner
|
| - * video were found, so an
|
| - * In-Banner Video attribute was added.
|
| - * - "MRAID_ATTRIBUTE_ADDED" : The ad makes calls to the MRAID API so the
|
| - * MRAID attribute was added.
|
| - * - "FLASH_ATTRIBUTE_REMOVED" : The ad unnecessarily declared the Flash
|
| - * attribute, so the Flash attribute
|
| - * was removed.
|
| - * - "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" : The ad contains video content.
|
| + * The day during which the data was collected.
|
| + * The data is collected from 00:00:00 to 23:59:59 PT.
|
| + * During switches from PST to PDT and back, the day may
|
| + * contain 23 or 25 hours of data instead of the usual 24.
|
| */
|
| - core.String type;
|
| + Date date;
|
| + /** The set of filtering reasons for this date. */
|
| + core.List<Reason> reasons;
|
| +
|
| + FilteringStats();
|
| +
|
| + FilteringStats.fromJson(core.Map _json) {
|
| + if (_json.containsKey("date")) {
|
| + date = new Date.fromJson(_json["date"]);
|
| + }
|
| + if (_json.containsKey("reasons")) {
|
| + reasons = _json["reasons"].map((value) => new Reason.fromJson(value)).toList();
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (date != null) {
|
| + _json["date"] = (date).toJson();
|
| + }
|
| + if (reasons != null) {
|
| + _json["reasons"] = reasons.map((value) => (value).toJson()).toList();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/** HTML content for a creative. */
|
| +class HtmlContent {
|
| + /** The height of the HTML snippet in pixels. */
|
| + core.int height;
|
| + /** The HTML snippet that displays the ad when inserted in the web page. */
|
| + core.String snippet;
|
| + /** The width of the HTML snippet in pixels. */
|
| + core.int width;
|
| +
|
| + HtmlContent();
|
| +
|
| + HtmlContent.fromJson(core.Map _json) {
|
| + if (_json.containsKey("height")) {
|
| + height = _json["height"];
|
| + }
|
| + if (_json.containsKey("snippet")) {
|
| + snippet = _json["snippet"];
|
| + }
|
| + if (_json.containsKey("width")) {
|
| + width = _json["width"];
|
| + }
|
| + }
|
|
|
| - Correction();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (height != null) {
|
| + _json["height"] = height;
|
| + }
|
| + if (snippet != null) {
|
| + _json["snippet"] = snippet;
|
| + }
|
| + if (width != null) {
|
| + _json["width"] = width;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
|
|
| - Correction.fromJson(core.Map _json) {
|
| - if (_json.containsKey("contexts")) {
|
| - contexts = _json["contexts"].map((value) => new ServingContext.fromJson(value)).toList();
|
| +/**
|
| + * An image resource. You may provide a larger image than was requested,
|
| + * so long as the aspect ratio is preserved.
|
| + */
|
| +class Image {
|
| + /** Image height in pixels. */
|
| + core.int height;
|
| + /** The URL of the image. */
|
| + core.String url;
|
| + /** Image width in pixels. */
|
| + core.int width;
|
| +
|
| + Image();
|
| +
|
| + Image.fromJson(core.Map _json) {
|
| + if (_json.containsKey("height")) {
|
| + height = _json["height"];
|
| }
|
| - if (_json.containsKey("details")) {
|
| - details = _json["details"];
|
| + if (_json.containsKey("url")) {
|
| + url = _json["url"];
|
| }
|
| - if (_json.containsKey("type")) {
|
| - type = _json["type"];
|
| + if (_json.containsKey("width")) {
|
| + width = _json["width"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (contexts != null) {
|
| - _json["contexts"] = contexts.map((value) => (value).toJson()).toList();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (height != null) {
|
| + _json["height"] = height;
|
| }
|
| - if (details != null) {
|
| - _json["details"] = details;
|
| + if (url != null) {
|
| + _json["url"] = url;
|
| }
|
| - if (type != null) {
|
| - _json["type"] = type;
|
| + if (width != null) {
|
| + _json["width"] = width;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/** A creative and its classification data. */
|
| -class Creative {
|
| - /**
|
| - * The account that this creative belongs to.
|
| - * Can be used to filter the response of the
|
| - * creatives.list
|
| - * method.
|
| - */
|
| - core.String accountId;
|
| - /** The link to AdChoices destination page. */
|
| - core.String adChoicesDestinationUrl;
|
| - /** The name of the company being advertised in the creative. */
|
| - core.String advertiserName;
|
| - /** The agency ID for this creative. */
|
| - core.String agencyId;
|
| - /** @OutputOnly The last update timestamp of the creative via API. */
|
| - core.String apiUpdateTime;
|
| - /**
|
| - * All attributes for the ads that may be shown from this creative.
|
| - * Can be used to filter the response of the
|
| - * creatives.list
|
| - * method.
|
| - */
|
| - core.List<core.String> attributes;
|
| - /** The set of destination URLs for the creative. */
|
| - core.List<core.String> clickThroughUrls;
|
| - /** @OutputOnly Shows any corrections that were applied to this creative. */
|
| - core.List<Correction> corrections;
|
| - /**
|
| - * The buyer-defined creative ID of this creative.
|
| - * Can be used to filter the response of the
|
| - * creatives.list
|
| - * method.
|
| - */
|
| - core.String creativeId;
|
| - /**
|
| - * @OutputOnly The top-level deals status of this creative.
|
| - * If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
|
| - * serving_restrictions will also exist. Note
|
| - * that this may be nuanced with other contextual restrictions, in which case,
|
| - * it may be preferable to read from serving_restrictions directly.
|
| - * Can be used to filter the response of the
|
| - * creatives.list
|
| - * method.
|
| - * Possible string values are:
|
| - * - "STATUS_UNSPECIFIED" : The status is unknown.
|
| - * - "NOT_CHECKED" : The creative has not been checked.
|
| - * - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved.
|
| - * See serving_restrictions for details.
|
| - * - "APPROVED" : The creative has been approved.
|
| - * - "DISAPPROVED" : The creative has been disapproved.
|
| - */
|
| - core.String dealsStatus;
|
| - /** @OutputOnly Detected advertiser IDs, if any. */
|
| - core.List<core.String> detectedAdvertiserIds;
|
| - /**
|
| - * @OutputOnly
|
| - * The detected domains for this creative.
|
| - */
|
| - core.List<core.String> detectedDomains;
|
| - /**
|
| - * @OutputOnly
|
| - * The detected languages for this creative. The order is arbitrary. The codes
|
| - * are 2 or 5 characters and are documented at
|
| - * https://developers.google.com/adwords/api/docs/appendix/languagecodes.
|
| - */
|
| - core.List<core.String> detectedLanguages;
|
| +/**
|
| + * The set of metrics that are measured in numbers of impressions, representing
|
| + * how many impressions with the specified dimension values were considered
|
| + * eligible at each stage of the bidding funnel.
|
| + */
|
| +class ImpressionMetricsRow {
|
| /**
|
| - * @OutputOnly Detected product categories, if any.
|
| - * See the ad-product-categories.txt file in the technical documentation
|
| - * for a list of IDs.
|
| + * The number of impressions available to the buyer on Ad Exchange.
|
| + * In some cases this value may be unavailable.
|
| */
|
| - core.List<core.int> detectedProductCategories;
|
| + MetricValue availableImpressions;
|
| /**
|
| - * @OutputOnly Detected sensitive categories, if any.
|
| - * See the ad-sensitive-categories.txt file in the technical documentation for
|
| - * a list of IDs. You should use these IDs along with the
|
| - * excluded-sensitive-category field in the bid request to filter your bids.
|
| + * The number of impressions for which Ad Exchange sent the buyer a bid
|
| + * request.
|
| */
|
| - core.List<core.int> detectedSensitiveCategories;
|
| - /** @OutputOnly The filtering stats for this creative. */
|
| - FilteringStats filteringStats;
|
| - /** An HTML creative. */
|
| - HtmlContent html;
|
| - /** The set of URLs to be called to record an impression. */
|
| - core.List<core.String> impressionTrackingUrls;
|
| - /** A native creative. */
|
| - NativeContent native;
|
| + MetricValue bidRequests;
|
| /**
|
| - * @OutputOnly The top-level open auction status of this creative.
|
| - * If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
|
| - * serving_restrictions will also exist. Note
|
| - * that this may be nuanced with other contextual restrictions, in which case,
|
| - * it may be preferable to read from serving_restrictions directly.
|
| - * Can be used to filter the response of the
|
| - * creatives.list
|
| - * method.
|
| - * Possible string values are:
|
| - * - "STATUS_UNSPECIFIED" : The status is unknown.
|
| - * - "NOT_CHECKED" : The creative has not been checked.
|
| - * - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved.
|
| - * See serving_restrictions for details.
|
| - * - "APPROVED" : The creative has been approved.
|
| - * - "DISAPPROVED" : The creative has been disapproved.
|
| + * The number of impressions that match the buyer's inventory pretargeting.
|
| */
|
| - core.String openAuctionStatus;
|
| + MetricValue inventoryMatches;
|
| /**
|
| - * All restricted categories for the ads that may be shown from this creative.
|
| + * The number of impressions for which Ad Exchange received a response from
|
| + * the buyer that contained at least one applicable bid.
|
| */
|
| - core.List<core.String> restrictedCategories;
|
| + MetricValue responsesWithBids;
|
| /**
|
| - * @OutputOnly The granular status of this ad in specific contexts.
|
| - * A context here relates to where something ultimately serves (for example,
|
| - * a physical location, a platform, an HTTPS vs HTTP request, or the type
|
| - * of auction).
|
| + * The values of all dimensions associated with metric values in this row.
|
| */
|
| - core.List<ServingRestriction> servingRestrictions;
|
| + RowDimensions rowDimensions;
|
| /**
|
| - * All vendor IDs for the ads that may be shown from this creative.
|
| - * See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
|
| - * for possible values.
|
| + * The number of impressions for which the buyer successfully sent a response
|
| + * to Ad Exchange.
|
| */
|
| - core.List<core.int> vendorIds;
|
| - /** @OutputOnly The version of this creative. */
|
| - core.int version;
|
| - /** A video creative. */
|
| - VideoContent video;
|
| + MetricValue successfulResponses;
|
|
|
| - Creative();
|
| + ImpressionMetricsRow();
|
|
|
| - Creative.fromJson(core.Map _json) {
|
| - if (_json.containsKey("accountId")) {
|
| - accountId = _json["accountId"];
|
| - }
|
| - if (_json.containsKey("adChoicesDestinationUrl")) {
|
| - adChoicesDestinationUrl = _json["adChoicesDestinationUrl"];
|
| - }
|
| - if (_json.containsKey("advertiserName")) {
|
| - advertiserName = _json["advertiserName"];
|
| - }
|
| - if (_json.containsKey("agencyId")) {
|
| - agencyId = _json["agencyId"];
|
| - }
|
| - if (_json.containsKey("apiUpdateTime")) {
|
| - apiUpdateTime = _json["apiUpdateTime"];
|
| - }
|
| - if (_json.containsKey("attributes")) {
|
| - attributes = _json["attributes"];
|
| - }
|
| - if (_json.containsKey("clickThroughUrls")) {
|
| - clickThroughUrls = _json["clickThroughUrls"];
|
| - }
|
| - if (_json.containsKey("corrections")) {
|
| - corrections = _json["corrections"].map((value) => new Correction.fromJson(value)).toList();
|
| - }
|
| - if (_json.containsKey("creativeId")) {
|
| - creativeId = _json["creativeId"];
|
| - }
|
| - if (_json.containsKey("dealsStatus")) {
|
| - dealsStatus = _json["dealsStatus"];
|
| - }
|
| - if (_json.containsKey("detectedAdvertiserIds")) {
|
| - detectedAdvertiserIds = _json["detectedAdvertiserIds"];
|
| + ImpressionMetricsRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("availableImpressions")) {
|
| + availableImpressions = new MetricValue.fromJson(_json["availableImpressions"]);
|
| }
|
| - if (_json.containsKey("detectedDomains")) {
|
| - detectedDomains = _json["detectedDomains"];
|
| + if (_json.containsKey("bidRequests")) {
|
| + bidRequests = new MetricValue.fromJson(_json["bidRequests"]);
|
| }
|
| - if (_json.containsKey("detectedLanguages")) {
|
| - detectedLanguages = _json["detectedLanguages"];
|
| + if (_json.containsKey("inventoryMatches")) {
|
| + inventoryMatches = new MetricValue.fromJson(_json["inventoryMatches"]);
|
| }
|
| - if (_json.containsKey("detectedProductCategories")) {
|
| - detectedProductCategories = _json["detectedProductCategories"];
|
| + if (_json.containsKey("responsesWithBids")) {
|
| + responsesWithBids = new MetricValue.fromJson(_json["responsesWithBids"]);
|
| }
|
| - if (_json.containsKey("detectedSensitiveCategories")) {
|
| - detectedSensitiveCategories = _json["detectedSensitiveCategories"];
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| }
|
| - if (_json.containsKey("filteringStats")) {
|
| - filteringStats = new FilteringStats.fromJson(_json["filteringStats"]);
|
| + if (_json.containsKey("successfulResponses")) {
|
| + successfulResponses = new MetricValue.fromJson(_json["successfulResponses"]);
|
| }
|
| - if (_json.containsKey("html")) {
|
| - html = new HtmlContent.fromJson(_json["html"]);
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (availableImpressions != null) {
|
| + _json["availableImpressions"] = (availableImpressions).toJson();
|
| }
|
| - if (_json.containsKey("impressionTrackingUrls")) {
|
| - impressionTrackingUrls = _json["impressionTrackingUrls"];
|
| + if (bidRequests != null) {
|
| + _json["bidRequests"] = (bidRequests).toJson();
|
| }
|
| - if (_json.containsKey("native")) {
|
| - native = new NativeContent.fromJson(_json["native"]);
|
| + if (inventoryMatches != null) {
|
| + _json["inventoryMatches"] = (inventoryMatches).toJson();
|
| }
|
| - if (_json.containsKey("openAuctionStatus")) {
|
| - openAuctionStatus = _json["openAuctionStatus"];
|
| + if (responsesWithBids != null) {
|
| + _json["responsesWithBids"] = (responsesWithBids).toJson();
|
| }
|
| - if (_json.containsKey("restrictedCategories")) {
|
| - restrictedCategories = _json["restrictedCategories"];
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| }
|
| - if (_json.containsKey("servingRestrictions")) {
|
| - servingRestrictions = _json["servingRestrictions"].map((value) => new ServingRestriction.fromJson(value)).toList();
|
| + if (successfulResponses != null) {
|
| + _json["successfulResponses"] = (successfulResponses).toJson();
|
| }
|
| - if (_json.containsKey("vendorIds")) {
|
| - vendorIds = _json["vendorIds"];
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * The number of impressions with the specified dimension values that were
|
| + * filtered due to the specified filtering status.
|
| + */
|
| +class ImpressionStatusRow {
|
| + /**
|
| + * The number of impressions that were filtered with the specified status.
|
| + */
|
| + MetricValue impressionCount;
|
| + /**
|
| + * The values of all dimensions associated with metric values in this row.
|
| + */
|
| + RowDimensions rowDimensions;
|
| + /**
|
| + * The status for which impressions were filtered.
|
| + * Possible string values are:
|
| + * - "STATUS_UNSPECIFIED" : A placeholder for an undefined status.
|
| + * This value will never be returned in responses.
|
| + * - "PRETARGETING_CONFIGURATIONS" : The impression was filtered because it
|
| + * did not match the buyer's
|
| + * pretargeting configurations.
|
| + */
|
| + core.String status;
|
| +
|
| + ImpressionStatusRow();
|
| +
|
| + ImpressionStatusRow.fromJson(core.Map _json) {
|
| + if (_json.containsKey("impressionCount")) {
|
| + impressionCount = new MetricValue.fromJson(_json["impressionCount"]);
|
| }
|
| - if (_json.containsKey("version")) {
|
| - version = _json["version"];
|
| + if (_json.containsKey("rowDimensions")) {
|
| + rowDimensions = new RowDimensions.fromJson(_json["rowDimensions"]);
|
| }
|
| - if (_json.containsKey("video")) {
|
| - video = new VideoContent.fromJson(_json["video"]);
|
| + if (_json.containsKey("status")) {
|
| + status = _json["status"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (accountId != null) {
|
| - _json["accountId"] = accountId;
|
| - }
|
| - if (adChoicesDestinationUrl != null) {
|
| - _json["adChoicesDestinationUrl"] = adChoicesDestinationUrl;
|
| - }
|
| - if (advertiserName != null) {
|
| - _json["advertiserName"] = advertiserName;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (impressionCount != null) {
|
| + _json["impressionCount"] = (impressionCount).toJson();
|
| }
|
| - if (agencyId != null) {
|
| - _json["agencyId"] = agencyId;
|
| + if (rowDimensions != null) {
|
| + _json["rowDimensions"] = (rowDimensions).toJson();
|
| }
|
| - if (apiUpdateTime != null) {
|
| - _json["apiUpdateTime"] = apiUpdateTime;
|
| + if (status != null) {
|
| + _json["status"] = status;
|
| }
|
| - if (attributes != null) {
|
| - _json["attributes"] = attributes;
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Response message for listing the metrics that are measured in number of bids.
|
| + */
|
| +class ListBidMetricsResponse {
|
| + /** List of rows, each containing a set of bid metrics. */
|
| + core.List<BidMetricsRow> bidMetricsRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListBidMetricsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.bidMetrics.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
| +
|
| + ListBidMetricsResponse();
|
| +
|
| + ListBidMetricsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bidMetricsRows")) {
|
| + bidMetricsRows = _json["bidMetricsRows"].map((value) => new BidMetricsRow.fromJson(value)).toList();
|
| }
|
| - if (clickThroughUrls != null) {
|
| - _json["clickThroughUrls"] = clickThroughUrls;
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (corrections != null) {
|
| - _json["corrections"] = corrections.map((value) => (value).toJson()).toList();
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bidMetricsRows != null) {
|
| + _json["bidMetricsRows"] = bidMetricsRows.map((value) => (value).toJson()).toList();
|
| }
|
| - if (creativeId != null) {
|
| - _json["creativeId"] = creativeId;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (dealsStatus != null) {
|
| - _json["dealsStatus"] = dealsStatus;
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Response message for listing all reasons that bid responses resulted in an
|
| + * error.
|
| + */
|
| +class ListBidResponseErrorsResponse {
|
| + /**
|
| + * List of rows, with counts of bid responses aggregated by callout status.
|
| + */
|
| + core.List<CalloutStatusRow> calloutStatusRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListBidResponseErrorsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.bidResponseErrors.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
| +
|
| + ListBidResponseErrorsResponse();
|
| +
|
| + ListBidResponseErrorsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("calloutStatusRows")) {
|
| + calloutStatusRows = _json["calloutStatusRows"].map((value) => new CalloutStatusRow.fromJson(value)).toList();
|
| }
|
| - if (detectedAdvertiserIds != null) {
|
| - _json["detectedAdvertiserIds"] = detectedAdvertiserIds;
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (detectedDomains != null) {
|
| - _json["detectedDomains"] = detectedDomains;
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (calloutStatusRows != null) {
|
| + _json["calloutStatusRows"] = calloutStatusRows.map((value) => (value).toJson()).toList();
|
| }
|
| - if (detectedLanguages != null) {
|
| - _json["detectedLanguages"] = detectedLanguages;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (detectedProductCategories != null) {
|
| - _json["detectedProductCategories"] = detectedProductCategories;
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Response message for listing all reasons that bid responses were considered
|
| + * to have no applicable bids.
|
| + */
|
| +class ListBidResponsesWithoutBidsResponse {
|
| + /**
|
| + * List of rows, with counts of bid responses without bids aggregated by
|
| + * status.
|
| + */
|
| + core.List<BidResponseWithoutBidsStatusRow> bidResponseWithoutBidsStatusRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListBidResponsesWithoutBidsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.bidResponsesWithoutBids.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
| +
|
| + ListBidResponsesWithoutBidsResponse();
|
| +
|
| + ListBidResponsesWithoutBidsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("bidResponseWithoutBidsStatusRows")) {
|
| + bidResponseWithoutBidsStatusRows = _json["bidResponseWithoutBidsStatusRows"].map((value) => new BidResponseWithoutBidsStatusRow.fromJson(value)).toList();
|
| }
|
| - if (detectedSensitiveCategories != null) {
|
| - _json["detectedSensitiveCategories"] = detectedSensitiveCategories;
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (filteringStats != null) {
|
| - _json["filteringStats"] = (filteringStats).toJson();
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (bidResponseWithoutBidsStatusRows != null) {
|
| + _json["bidResponseWithoutBidsStatusRows"] = bidResponseWithoutBidsStatusRows.map((value) => (value).toJson()).toList();
|
| }
|
| - if (html != null) {
|
| - _json["html"] = (html).toJson();
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (impressionTrackingUrls != null) {
|
| - _json["impressionTrackingUrls"] = impressionTrackingUrls;
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +class ListClientUserInvitationsResponse {
|
| + /** The returned list of client users. */
|
| + core.List<ClientUserInvitation> invitations;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListClientUserInvitationsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * clients.invitations.list
|
| + * method to retrieve the next
|
| + * page of results.
|
| + */
|
| + core.String nextPageToken;
|
| +
|
| + ListClientUserInvitationsResponse();
|
| +
|
| + ListClientUserInvitationsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("invitations")) {
|
| + invitations = _json["invitations"].map((value) => new ClientUserInvitation.fromJson(value)).toList();
|
| }
|
| - if (native != null) {
|
| - _json["native"] = (native).toJson();
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (openAuctionStatus != null) {
|
| - _json["openAuctionStatus"] = openAuctionStatus;
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (invitations != null) {
|
| + _json["invitations"] = invitations.map((value) => (value).toJson()).toList();
|
| }
|
| - if (restrictedCategories != null) {
|
| - _json["restrictedCategories"] = restrictedCategories;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (servingRestrictions != null) {
|
| - _json["servingRestrictions"] = servingRestrictions.map((value) => (value).toJson()).toList();
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +class ListClientUsersResponse {
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListClientUsersRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * clients.invitations.list
|
| + * method to retrieve the next
|
| + * page of results.
|
| + */
|
| + core.String nextPageToken;
|
| + /** The returned list of client users. */
|
| + core.List<ClientUser> users;
|
| +
|
| + ListClientUsersResponse();
|
| +
|
| + ListClientUsersResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (vendorIds != null) {
|
| - _json["vendorIds"] = vendorIds;
|
| + if (_json.containsKey("users")) {
|
| + users = _json["users"].map((value) => new ClientUser.fromJson(value)).toList();
|
| }
|
| - if (version != null) {
|
| - _json["version"] = version;
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (video != null) {
|
| - _json["video"] = (video).toJson();
|
| + if (users != null) {
|
| + _json["users"] = users.map((value) => (value).toJson()).toList();
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/** The association between a creative and a deal. */
|
| -class CreativeDealAssociation {
|
| - /** The account the creative belongs to. */
|
| - core.String accountId;
|
| - /** The ID of the creative associated with the deal. */
|
| - core.String creativeId;
|
| - /** The externalDealId for the deal associated with the creative. */
|
| - core.String dealsId;
|
| +class ListClientsResponse {
|
| + /** The returned list of clients. */
|
| + core.List<Client> clients;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListClientsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.clients.list method
|
| + * to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
|
|
| - CreativeDealAssociation();
|
| + ListClientsResponse();
|
|
|
| - CreativeDealAssociation.fromJson(core.Map _json) {
|
| - if (_json.containsKey("accountId")) {
|
| - accountId = _json["accountId"];
|
| - }
|
| - if (_json.containsKey("creativeId")) {
|
| - creativeId = _json["creativeId"];
|
| + ListClientsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("clients")) {
|
| + clients = _json["clients"].map((value) => new Client.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("dealsId")) {
|
| - dealsId = _json["dealsId"];
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (accountId != null) {
|
| - _json["accountId"] = accountId;
|
| - }
|
| - if (creativeId != null) {
|
| - _json["creativeId"] = creativeId;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (clients != null) {
|
| + _json["clients"] = clients.map((value) => (value).toJson()).toList();
|
| }
|
| - if (dealsId != null) {
|
| - _json["dealsId"] = dealsId;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| /**
|
| - * Represents a whole calendar date, e.g. date of birth. The time of day and
|
| - * time zone are either specified elsewhere or are not significant. The date
|
| - * is relative to the Proleptic Gregorian Calendar. The day may be 0 to
|
| - * represent a year and month where the day is not significant, e.g. credit card
|
| - * expiration date. The year may be 0 to represent a month and day independent
|
| - * of year, e.g. anniversary date. Related types are google.type.TimeOfDay
|
| - * and `google.protobuf.Timestamp`.
|
| + * Response message for listing all details associated with a given filtered bid
|
| + * reason and a given creative.
|
| */
|
| -class Date {
|
| +class ListCreativeStatusAndCreativeBreakdownByDetailResponse {
|
| /**
|
| - * Day of month. Must be from 1 to 31 and valid for the year and month, or 0
|
| - * if specifying a year/month where the day is not significant.
|
| + * The type of detail that the detail IDs represent.
|
| + * Possible string values are:
|
| + * - "TYPE_UNSPECIFIED" : A placeholder for an undefined status.
|
| + * This value will never be returned in responses.
|
| + * - "CREATIVE_ATTRIBUTE" : Indicates that the detail ID refers to a creative
|
| + * attribute; see
|
| + * [publisher-excludable-creative-attributes](https://developers.google.com/ad-exchange/rtb/downloads/publisher-excludable-creative-attributes).
|
| + * - "VENDOR" : Indicates that the detail ID refers to a vendor; see
|
| + * [vendors](https://developers.google.com/ad-exchange/rtb/downloads/vendors).
|
| + * - "SENSITIVE_CATEGORY" : Indicates that the detail ID refers to a sensitive
|
| + * category; see
|
| + * [ad-sensitive-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-sensitive-categories).
|
| + * - "PRODUCT_CATEGORY" : Indicates that the detail ID refers to a product
|
| + * category; see
|
| + * [ad-product-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-product-categories).
|
| */
|
| - core.int day;
|
| - /** Month of year. Must be from 1 to 12. */
|
| - core.int month;
|
| + core.String detailType;
|
| /**
|
| - * Year of date. Must be from 1 to 9999, or 0 if specifying a date without
|
| - * a year.
|
| + * List of rows, with counts of bids with a given creative status and
|
| + * creative, aggregated by detail.
|
| */
|
| - core.int year;
|
| -
|
| - Date();
|
| -
|
| - Date.fromJson(core.Map _json) {
|
| - if (_json.containsKey("day")) {
|
| - day = _json["day"];
|
| + core.List<FilteredBidDetailRow> filteredBidDetailRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListCreativeStatusAndCreativeBreakdownByDetailRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.filteredBids.creatives.details.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
| +
|
| + ListCreativeStatusAndCreativeBreakdownByDetailResponse();
|
| +
|
| + ListCreativeStatusAndCreativeBreakdownByDetailResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("detailType")) {
|
| + detailType = _json["detailType"];
|
| }
|
| - if (_json.containsKey("month")) {
|
| - month = _json["month"];
|
| + if (_json.containsKey("filteredBidDetailRows")) {
|
| + filteredBidDetailRows = _json["filteredBidDetailRows"].map((value) => new FilteredBidDetailRow.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("year")) {
|
| - year = _json["year"];
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (day != null) {
|
| - _json["day"] = day;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (detailType != null) {
|
| + _json["detailType"] = detailType;
|
| }
|
| - if (month != null) {
|
| - _json["month"] = month;
|
| + if (filteredBidDetailRows != null) {
|
| + _json["filteredBidDetailRows"] = filteredBidDetailRows.map((value) => (value).toJson()).toList();
|
| }
|
| - if (year != null) {
|
| - _json["year"] = year;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/** @OutputOnly The reason and details for a disapproval. */
|
| -class Disapproval {
|
| - /** Additional details about the reason for disapproval. */
|
| - core.List<core.String> details;
|
| +/**
|
| + * Response message for listing all creatives associated with a given filtered
|
| + * bid reason.
|
| + */
|
| +class ListCreativeStatusBreakdownByCreativeResponse {
|
| /**
|
| - * The categorized reason for disapproval.
|
| - * Possible string values are:
|
| - * - "LENGTH_OF_IMAGE_ANIMATION" : The length of the image animation is longer
|
| - * than allowed.
|
| - * - "BROKEN_URL" : The click through URL doesn't work properly.
|
| - * - "MEDIA_NOT_FUNCTIONAL" : Something is wrong with the creative itself.
|
| - * - "INVALID_FOURTH_PARTY_CALL" : The ad makes a fourth party call to an
|
| - * unapproved vendor.
|
| - * - "INCORRECT_REMARKETING_DECLARATION" : The ad targets consumers using
|
| - * remarketing lists and/or collects
|
| - * data for subsequent use in retargeting, but does not correctly declare
|
| - * that use.
|
| - * - "LANDING_PAGE_ERROR" : Clicking on the ad leads to an error page.
|
| - * - "AD_SIZE_DOES_NOT_MATCH_AD_SLOT" : The ad size when rendered does not
|
| - * match the declaration.
|
| - * - "NO_BORDER" : Ads with a white background require a border, which was
|
| - * missing.
|
| - * - "FOURTH_PARTY_BROWSER_COOKIES" : The creative attempts to set cookies
|
| - * from a fourth party that is not
|
| - * certified.
|
| - * - "LSO_OBJECTS" : The creative sets an LSO object.
|
| - * - "BLANK_CREATIVE" : The ad serves a blank.
|
| - * - "DESTINATION_URLS_UNDECLARED" : The ad uses rotation, but not all
|
| - * destination URLs were declared.
|
| - * - "PROBLEM_WITH_CLICK_MACRO" : There is a problem with the way the click
|
| - * macro is used.
|
| - * - "INCORRECT_AD_TECHNOLOGY_DECLARATION" : The ad technology declaration is
|
| - * not accurate.
|
| - * - "INCORRECT_DESTINATION_URL_DECLARATION" : The actual destination URL does
|
| - * not match the declared destination URL.
|
| - * - "EXPANDABLE_INCORRECT_DIRECTION" : The declared expanding direction does
|
| - * not match the actual direction.
|
| - * - "EXPANDABLE_DIRECTION_NOT_SUPPORTED" : The ad does not expand in a
|
| - * supported direction.
|
| - * - "EXPANDABLE_INVALID_VENDOR" : The ad uses an expandable vendor that is
|
| - * not supported.
|
| - * - "EXPANDABLE_FUNCTIONALITY" : There was an issue with the expandable ad.
|
| - * - "VIDEO_INVALID_VENDOR" : The ad uses a video vendor that is not
|
| - * supported.
|
| - * - "VIDEO_UNSUPPORTED_LENGTH" : The length of the video ad is not supported.
|
| - * - "VIDEO_UNSUPPORTED_FORMAT" : The format of the video ad is not supported.
|
| - * - "VIDEO_FUNCTIONALITY" : There was an issue with the video ad.
|
| - * - "LANDING_PAGE_DISABLED" : The landing page does not conform to Ad
|
| - * Exchange policy.
|
| - * - "MALWARE_SUSPECTED" : The ad or the landing page may contain malware.
|
| - * - "ADULT_IMAGE_OR_VIDEO" : The ad contains adult images or video content.
|
| - * - "INACCURATE_AD_TEXT" : The ad contains text that is unclear or
|
| - * inaccurate.
|
| - * - "COUNTERFEIT_DESIGNER_GOODS" : The ad promotes counterfeit designer
|
| - * goods.
|
| - * - "POP_UP" : The ad causes a popup window to appear.
|
| - * - "INVALID_RTB_PROTOCOL_USAGE" : The creative does not follow policies set
|
| - * for the RTB protocol.
|
| - * - "RAW_IP_ADDRESS_IN_SNIPPET" : The ad contains a URL that uses a numeric
|
| - * IP address for the domain.
|
| - * - "UNACCEPTABLE_CONTENT_SOFTWARE" : The ad or landing page contains
|
| - * unacceptable content because it initiated
|
| - * a software or executable download.
|
| - * - "UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN" : The ad set an unauthorized
|
| - * cookie on a Google domain.
|
| - * - "UNDECLARED_FLASH_OBJECTS" : Flash content found when no flash was
|
| - * declared.
|
| - * - "INVALID_SSL_DECLARATION" : SSL support declared but not working
|
| - * correctly.
|
| - * - "DIRECT_DOWNLOAD_IN_AD" : Rich Media - Direct Download in Ad (ex. PDF
|
| - * download).
|
| - * - "MAXIMUM_DOWNLOAD_SIZE_EXCEEDED" : Maximum download size exceeded.
|
| - * - "DESTINATION_URL_SITE_NOT_CRAWLABLE" : Bad Destination URL: Site Not
|
| - * Crawlable.
|
| - * - "BAD_URL_LEGAL_DISAPPROVAL" : Bad URL: Legal disapproval.
|
| - * - "PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED" : Pharmaceuticals, Gambling,
|
| - * Alcohol not allowed and at least one was
|
| - * detected.
|
| - * - "DYNAMIC_DNS_AT_DESTINATION_URL" : Dynamic DNS at Destination URL.
|
| - * - "POOR_IMAGE_OR_VIDEO_QUALITY" : Poor Image / Video Quality.
|
| - * - "UNACCEPTABLE_IMAGE_CONTENT" : For example, Image Trick to Click.
|
| - * - "INCORRECT_IMAGE_LAYOUT" : Incorrect Image Layout.
|
| - * - "IRRELEVANT_IMAGE_OR_VIDEO" : Irrelevant Image / Video.
|
| - * - "DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK" : Broken back button.
|
| - * - "MISLEADING_CLAIMS_IN_AD" : Misleading/Inaccurate claims in ads.
|
| - * - "RESTRICTED_PRODUCTS" : Restricted Products.
|
| - * - "UNACCEPTABLE_CONTENT" : Unacceptable content. For example, malware.
|
| - * - "AUTOMATED_AD_CLICKING" : The ad automatically redirects to the
|
| - * destination site without a click,
|
| - * or reports a click when none were made.
|
| - * - "INVALID_URL_PROTOCOL" : The ad uses URL protocols that do not exist or
|
| - * are not allowed on AdX.
|
| - * - "UNDECLARED_RESTRICTED_CONTENT" : Restricted content (for example,
|
| - * alcohol) was found in the ad but not
|
| - * declared.
|
| - * - "INVALID_REMARKETING_LIST_USAGE" : Violation of the remarketing list
|
| - * policy.
|
| - * - "DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT" : The destination site's
|
| - * robot.txt file prevents it from being crawled.
|
| - * - "CLICK_TO_DOWNLOAD_NOT_AN_APP" : Click to download must link to an app.
|
| - * - "INACCURATE_REVIEW_EXTENSION" : A review extension must be an accurate
|
| - * review.
|
| - * - "SEXUALLY_EXPLICIT_CONTENT" : Sexually explicit content.
|
| - * - "GAINING_AN_UNFAIR_ADVANTAGE" : The ad tries to gain an unfair traffic
|
| - * advantage.
|
| - * - "GAMING_THE_GOOGLE_NETWORK" : The ad tries to circumvent Google's
|
| - * advertising systems.
|
| - * - "DANGEROUS_PRODUCTS_KNIVES" : The ad promotes dangerous knives.
|
| - * - "DANGEROUS_PRODUCTS_EXPLOSIVES" : The ad promotes explosives.
|
| - * - "DANGEROUS_PRODUCTS_GUNS" : The ad promotes guns & parts.
|
| - * - "DANGEROUS_PRODUCTS_DRUGS" : The ad promotes recreational drugs/services
|
| - * & related equipment.
|
| - * - "DANGEROUS_PRODUCTS_TOBACCO" : The ad promotes tobacco products/services
|
| - * & related equipment.
|
| - * - "DANGEROUS_PRODUCTS_WEAPONS" : The ad promotes weapons.
|
| - * - "UNCLEAR_OR_IRRELEVANT_AD" : The ad is unclear or irrelevant to the
|
| - * destination site.
|
| - * - "PROFESSIONAL_STANDARDS" : The ad does not meet professional standards.
|
| - * - "DYSFUNCTIONAL_PROMOTION" : The promotion is unnecessarily difficult to
|
| - * navigate.
|
| - * - "INVALID_INTEREST_BASED_AD" : Violation of Google's policy for
|
| - * interest-based ads.
|
| - * - "MISUSE_OF_PERSONAL_INFORMATION" : Misuse of personal information.
|
| - * - "OMISSION_OF_RELEVANT_INFORMATION" : Omission of relevant information.
|
| - * - "UNAVAILABLE_PROMOTIONS" : Unavailable promotions.
|
| - * - "MISLEADING_PROMOTIONS" : Misleading or unrealistic promotions.
|
| - * - "INAPPROPRIATE_CONTENT" : Offensive or inappropriate content.
|
| - * - "SENSITIVE_EVENTS" : Capitalizing on sensitive events.
|
| - * - "SHOCKING_CONTENT" : Shocking content.
|
| - * - "ENABLING_DISHONEST_BEHAVIOR" : Products & Services that enable dishonest
|
| - * behavior.
|
| - * - "TECHNICAL_REQUIREMENTS" : The ad does not meet technical requirements.
|
| - * - "RESTRICTED_POLITICAL_CONTENT" : Restricted political content.
|
| - * - "UNSUPPORTED_CONTENT" : Unsupported content.
|
| - * - "INVALID_BIDDING_METHOD" : Invalid bidding method.
|
| - * - "VIDEO_TOO_LONG" : Video length exceeds limits.
|
| - * - "VIOLATES_JAPANESE_PHARMACY_LAW" : Unacceptable content: Japanese
|
| - * healthcare.
|
| - * - "UNACCREDITED_PET_PHARMACY" : Online pharmacy ID required.
|
| - * - "ABORTION" : Unacceptable content: Abortion.
|
| - * - "CONTRACEPTIVES" : Unacceptable content: Birth control.
|
| - * - "NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA" : Restricted in China.
|
| - * - "KCDSP_REGISTRATION" : Unacceptable content: Korean healthcare.
|
| - * - "NOT_FAMILY_SAFE" : Non-family safe or adult content.
|
| - * - "CLINICAL_TRIAL_RECRUITMENT" : Clinical trial recruitment.
|
| - * - "MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED" : Maximum number of HTTP calls
|
| - * exceeded.
|
| - * - "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED" : Maximum number of cookies
|
| - * exceeded.
|
| - * - "PERSONAL_LOANS" : Financial service ad does not adhere to
|
| - * specifications.
|
| - * - "UNSUPPORTED_FLASH_CONTENT" : Flash content was found in an unsupported
|
| - * context.
|
| + * List of rows, with counts of bids with a given creative status aggregated
|
| + * by creative.
|
| */
|
| - core.String reason;
|
| + core.List<FilteredBidCreativeRow> filteredBidCreativeRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListCreativeStatusBreakdownByCreativeRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.filteredBids.creatives.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
|
|
| - Disapproval();
|
| + ListCreativeStatusBreakdownByCreativeResponse();
|
|
|
| - Disapproval.fromJson(core.Map _json) {
|
| - if (_json.containsKey("details")) {
|
| - details = _json["details"];
|
| + ListCreativeStatusBreakdownByCreativeResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("filteredBidCreativeRows")) {
|
| + filteredBidCreativeRows = _json["filteredBidCreativeRows"].map((value) => new FilteredBidCreativeRow.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("reason")) {
|
| - reason = _json["reason"];
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (details != null) {
|
| - _json["details"] = details;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (filteredBidCreativeRows != null) {
|
| + _json["filteredBidCreativeRows"] = filteredBidCreativeRows.map((value) => (value).toJson()).toList();
|
| }
|
| - if (reason != null) {
|
| - _json["reason"] = reason;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| /**
|
| - * A generic empty message that you can re-use to avoid defining duplicated
|
| - * empty messages in your APIs. A typical example is to use it as the request
|
| - * or the response type of an API method. For instance:
|
| - *
|
| - * service Foo {
|
| - * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
|
| - * }
|
| - *
|
| - * The JSON representation for `Empty` is empty JSON object `{}`.
|
| + * Response message for listing all details associated with a given filtered bid
|
| + * reason.
|
| */
|
| -class Empty {
|
| +class ListCreativeStatusBreakdownByDetailResponse {
|
| + /**
|
| + * The type of detail that the detail IDs represent.
|
| + * Possible string values are:
|
| + * - "TYPE_UNSPECIFIED" : A placeholder for an undefined status.
|
| + * This value will never be returned in responses.
|
| + * - "CREATIVE_ATTRIBUTE" : Indicates that the detail ID refers to a creative
|
| + * attribute; see
|
| + * [publisher-excludable-creative-attributes](https://developers.google.com/ad-exchange/rtb/downloads/publisher-excludable-creative-attributes).
|
| + * - "VENDOR" : Indicates that the detail ID refers to a vendor; see
|
| + * [vendors](https://developers.google.com/ad-exchange/rtb/downloads/vendors).
|
| + * - "SENSITIVE_CATEGORY" : Indicates that the detail ID refers to a sensitive
|
| + * category; see
|
| + * [ad-sensitive-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-sensitive-categories).
|
| + * - "PRODUCT_CATEGORY" : Indicates that the detail ID refers to a product
|
| + * category; see
|
| + * [ad-product-categories](https://developers.google.com/ad-exchange/rtb/downloads/ad-product-categories).
|
| + */
|
| + core.String detailType;
|
| + /**
|
| + * List of rows, with counts of bids with a given creative status aggregated
|
| + * by detail.
|
| + */
|
| + core.List<FilteredBidDetailRow> filteredBidDetailRows;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListCreativeStatusBreakdownByDetailRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.filteredBids.details.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
|
|
| - Empty();
|
| + ListCreativeStatusBreakdownByDetailResponse();
|
|
|
| - Empty.fromJson(core.Map _json) {
|
| + ListCreativeStatusBreakdownByDetailResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("detailType")) {
|
| + detailType = _json["detailType"];
|
| + }
|
| + if (_json.containsKey("filteredBidDetailRows")) {
|
| + filteredBidDetailRows = _json["filteredBidDetailRows"].map((value) => new FilteredBidDetailRow.fromJson(value)).toList();
|
| + }
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| + }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (detailType != null) {
|
| + _json["detailType"] = detailType;
|
| + }
|
| + if (filteredBidDetailRows != null) {
|
| + _json["filteredBidDetailRows"] = filteredBidDetailRows.map((value) => (value).toJson()).toList();
|
| + }
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| + }
|
| return _json;
|
| }
|
| }
|
|
|
| -/**
|
| - * @OutputOnly Filtering reasons for this creative during a period of a single
|
| - * day (from midnight to midnight Pacific).
|
| - */
|
| -class FilteringStats {
|
| +/** A response for listing creatives. */
|
| +class ListCreativesResponse {
|
| + /** The list of creatives. */
|
| + core.List<Creative> creatives;
|
| /**
|
| - * The day during which the data was collected.
|
| - * The data is collected from 00:00:00 to 23:59:59 PT.
|
| - * During switches from PST to PDT and back, the day may
|
| - * contain 23 or 25 hours of data instead of the usual 24.
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListCreativesRequest.page_token
|
| + * field in the subsequent call to `ListCreatives` method to retrieve the next
|
| + * page of results.
|
| */
|
| - Date date;
|
| - /** The set of filtering reasons for this date. */
|
| - core.List<Reason> reasons;
|
| + core.String nextPageToken;
|
|
|
| - FilteringStats();
|
| + ListCreativesResponse();
|
|
|
| - FilteringStats.fromJson(core.Map _json) {
|
| - if (_json.containsKey("date")) {
|
| - date = new Date.fromJson(_json["date"]);
|
| + ListCreativesResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("creatives")) {
|
| + creatives = _json["creatives"].map((value) => new Creative.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("reasons")) {
|
| - reasons = _json["reasons"].map((value) => new Reason.fromJson(value)).toList();
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (date != null) {
|
| - _json["date"] = (date).toJson();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (creatives != null) {
|
| + _json["creatives"] = creatives.map((value) => (value).toJson()).toList();
|
| }
|
| - if (reasons != null) {
|
| - _json["reasons"] = reasons.map((value) => (value).toJson()).toList();
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/** HTML content for a creative. */
|
| -class HtmlContent {
|
| - /** The height of the HTML snippet in pixels. */
|
| - core.int height;
|
| - /** The HTML snippet that displays the ad when inserted in the web page. */
|
| - core.String snippet;
|
| - /** The width of the HTML snippet in pixels. */
|
| - core.int width;
|
| +/** A response for listing creative and deal associations */
|
| +class ListDealAssociationsResponse {
|
| + /** The list of associations. */
|
| + core.List<CreativeDealAssociation> associations;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListDealAssociationsRequest.page_token
|
| + * field in the subsequent call to 'ListDealAssociation' method to retrieve
|
| + * the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
|
|
| - HtmlContent();
|
| + ListDealAssociationsResponse();
|
|
|
| - HtmlContent.fromJson(core.Map _json) {
|
| - if (_json.containsKey("height")) {
|
| - height = _json["height"];
|
| - }
|
| - if (_json.containsKey("snippet")) {
|
| - snippet = _json["snippet"];
|
| + ListDealAssociationsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("associations")) {
|
| + associations = _json["associations"].map((value) => new CreativeDealAssociation.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("width")) {
|
| - width = _json["width"];
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (height != null) {
|
| - _json["height"] = height;
|
| - }
|
| - if (snippet != null) {
|
| - _json["snippet"] = snippet;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (associations != null) {
|
| + _json["associations"] = associations.map((value) => (value).toJson()).toList();
|
| }
|
| - if (width != null) {
|
| - _json["width"] = width;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -/**
|
| - * An image resource. You may provide a larger image than was requested,
|
| - * so long as the aspect ratio is preserved.
|
| - */
|
| -class Image {
|
| - /** Image height in pixels. */
|
| - core.int height;
|
| - /** The URL of the image. */
|
| - core.String url;
|
| - /** Image width in pixels. */
|
| - core.int width;
|
| +/** Response message for listing filter sets. */
|
| +class ListFilterSetsResponse {
|
| + /** The filter sets belonging to the buyer. */
|
| + core.List<FilterSet> filterSets;
|
| + /**
|
| + * A token to retrieve the next page of results.
|
| + * Pass this value in the
|
| + * ListFilterSetsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.list
|
| + * method to retrieve the next page of results.
|
| + */
|
| + core.String nextPageToken;
|
|
|
| - Image();
|
| + ListFilterSetsResponse();
|
|
|
| - Image.fromJson(core.Map _json) {
|
| - if (_json.containsKey("height")) {
|
| - height = _json["height"];
|
| - }
|
| - if (_json.containsKey("url")) {
|
| - url = _json["url"];
|
| + ListFilterSetsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("filterSets")) {
|
| + filterSets = _json["filterSets"].map((value) => new FilterSet.fromJson(value)).toList();
|
| }
|
| - if (_json.containsKey("width")) {
|
| - width = _json["width"];
|
| + if (_json.containsKey("nextPageToken")) {
|
| + nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (height != null) {
|
| - _json["height"] = height;
|
| - }
|
| - if (url != null) {
|
| - _json["url"] = url;
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (filterSets != null) {
|
| + _json["filterSets"] = filterSets.map((value) => (value).toJson()).toList();
|
| }
|
| - if (width != null) {
|
| - _json["width"] = width;
|
| + if (nextPageToken != null) {
|
| + _json["nextPageToken"] = nextPageToken;
|
| }
|
| return _json;
|
| }
|
| }
|
|
|
| -class ListClientUserInvitationsResponse {
|
| - /** The returned list of client users. */
|
| - core.List<ClientUserInvitation> invitations;
|
| +/**
|
| + * Response message for listing all reasons that bid requests were filtered and
|
| + * not sent to the buyer.
|
| + */
|
| +class ListFilteredBidRequestsResponse {
|
| + /**
|
| + * List of rows, with counts of filtered bid requests aggregated by callout
|
| + * status.
|
| + */
|
| + core.List<CalloutStatusRow> calloutStatusRows;
|
| /**
|
| * A token to retrieve the next page of results.
|
| * Pass this value in the
|
| - * ListClientUserInvitationsRequest.pageToken
|
| + * ListFilteredBidRequestsRequest.pageToken
|
| * field in the subsequent call to the
|
| - * clients.invitations.list
|
| - * method to retrieve the next
|
| - * page of results.
|
| + * accounts.filterSets.filteredBidRequests.list
|
| + * method to retrieve the next page of results.
|
| */
|
| core.String nextPageToken;
|
|
|
| - ListClientUserInvitationsResponse();
|
| + ListFilteredBidRequestsResponse();
|
|
|
| - ListClientUserInvitationsResponse.fromJson(core.Map _json) {
|
| - if (_json.containsKey("invitations")) {
|
| - invitations = _json["invitations"].map((value) => new ClientUserInvitation.fromJson(value)).toList();
|
| + ListFilteredBidRequestsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("calloutStatusRows")) {
|
| + calloutStatusRows = _json["calloutStatusRows"].map((value) => new CalloutStatusRow.fromJson(value)).toList();
|
| }
|
| if (_json.containsKey("nextPageToken")) {
|
| nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (invitations != null) {
|
| - _json["invitations"] = invitations.map((value) => (value).toJson()).toList();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (calloutStatusRows != null) {
|
| + _json["calloutStatusRows"] = calloutStatusRows.map((value) => (value).toJson()).toList();
|
| }
|
| if (nextPageToken != null) {
|
| _json["nextPageToken"] = nextPageToken;
|
| @@ -2324,71 +4572,83 @@ class ListClientUserInvitationsResponse {
|
| }
|
| }
|
|
|
| -class ListClientUsersResponse {
|
| +/**
|
| + * Response message for listing all reasons that bids were filtered from the
|
| + * auction.
|
| + */
|
| +class ListFilteredBidsResponse {
|
| + /**
|
| + * List of rows, with counts of filtered bids aggregated by filtering reason
|
| + * (i.e. creative status).
|
| + */
|
| + core.List<CreativeStatusRow> creativeStatusRows;
|
| /**
|
| * A token to retrieve the next page of results.
|
| * Pass this value in the
|
| - * ListClientUsersRequest.pageToken
|
| + * ListFilteredBidsRequest.pageToken
|
| * field in the subsequent call to the
|
| - * clients.invitations.list
|
| - * method to retrieve the next
|
| - * page of results.
|
| + * accounts.filterSets.filteredBids.list
|
| + * method to retrieve the next page of results.
|
| */
|
| core.String nextPageToken;
|
| - /** The returned list of client users. */
|
| - core.List<ClientUser> users;
|
|
|
| - ListClientUsersResponse();
|
| + ListFilteredBidsResponse();
|
|
|
| - ListClientUsersResponse.fromJson(core.Map _json) {
|
| + ListFilteredBidsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("creativeStatusRows")) {
|
| + creativeStatusRows = _json["creativeStatusRows"].map((value) => new CreativeStatusRow.fromJson(value)).toList();
|
| + }
|
| if (_json.containsKey("nextPageToken")) {
|
| nextPageToken = _json["nextPageToken"];
|
| }
|
| - if (_json.containsKey("users")) {
|
| - users = _json["users"].map((value) => new ClientUser.fromJson(value)).toList();
|
| - }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (creativeStatusRows != null) {
|
| + _json["creativeStatusRows"] = creativeStatusRows.map((value) => (value).toJson()).toList();
|
| + }
|
| if (nextPageToken != null) {
|
| _json["nextPageToken"] = nextPageToken;
|
| }
|
| - if (users != null) {
|
| - _json["users"] = users.map((value) => (value).toJson()).toList();
|
| - }
|
| return _json;
|
| }
|
| }
|
|
|
| -class ListClientsResponse {
|
| - /** The returned list of clients. */
|
| - core.List<Client> clients;
|
| +/**
|
| + * Response message for listing all reasons that impressions were filtered (i.e.
|
| + * not considered as an inventory match) for the buyer.
|
| + */
|
| +class ListFilteredImpressionsResponse {
|
| + /**
|
| + * List of rows, with counts of filtered impressions aggregated by status.
|
| + */
|
| + core.List<ImpressionStatusRow> impressionsStatusRows;
|
| /**
|
| * A token to retrieve the next page of results.
|
| * Pass this value in the
|
| - * ListClientsRequest.pageToken
|
| + * ListFilteredImpressionsRequest.pageToken
|
| * field in the subsequent call to the
|
| - * accounts.clients.list method
|
| - * to retrieve the next page of results.
|
| + * accounts.filterSets.filteredImpressions.list
|
| + * method to retrieve the next page of results.
|
| */
|
| core.String nextPageToken;
|
|
|
| - ListClientsResponse();
|
| + ListFilteredImpressionsResponse();
|
|
|
| - ListClientsResponse.fromJson(core.Map _json) {
|
| - if (_json.containsKey("clients")) {
|
| - clients = _json["clients"].map((value) => new Client.fromJson(value)).toList();
|
| + ListFilteredImpressionsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("impressionsStatusRows")) {
|
| + impressionsStatusRows = _json["impressionsStatusRows"].map((value) => new ImpressionStatusRow.fromJson(value)).toList();
|
| }
|
| if (_json.containsKey("nextPageToken")) {
|
| nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (clients != null) {
|
| - _json["clients"] = clients.map((value) => (value).toJson()).toList();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (impressionsStatusRows != null) {
|
| + _json["impressionsStatusRows"] = impressionsStatusRows.map((value) => (value).toJson()).toList();
|
| }
|
| if (nextPageToken != null) {
|
| _json["nextPageToken"] = nextPageToken;
|
| @@ -2397,34 +4657,38 @@ class ListClientsResponse {
|
| }
|
| }
|
|
|
| -/** A response for listing creatives. */
|
| -class ListCreativesResponse {
|
| - /** The list of creatives. */
|
| - core.List<Creative> creatives;
|
| +/**
|
| + * Response message for listing the metrics that are measured in number of
|
| + * impressions.
|
| + */
|
| +class ListImpressionMetricsResponse {
|
| + /** List of rows, each containing a set of impression metrics. */
|
| + core.List<ImpressionMetricsRow> impressionMetricsRows;
|
| /**
|
| * A token to retrieve the next page of results.
|
| * Pass this value in the
|
| - * ListCreativesRequest.page_token
|
| - * field in the subsequent call to `ListCreatives` method to retrieve the next
|
| - * page of results.
|
| + * ListImpressionMetricsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.impressionMetrics.list
|
| + * method to retrieve the next page of results.
|
| */
|
| core.String nextPageToken;
|
|
|
| - ListCreativesResponse();
|
| + ListImpressionMetricsResponse();
|
|
|
| - ListCreativesResponse.fromJson(core.Map _json) {
|
| - if (_json.containsKey("creatives")) {
|
| - creatives = _json["creatives"].map((value) => new Creative.fromJson(value)).toList();
|
| + ListImpressionMetricsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("impressionMetricsRows")) {
|
| + impressionMetricsRows = _json["impressionMetricsRows"].map((value) => new ImpressionMetricsRow.fromJson(value)).toList();
|
| }
|
| if (_json.containsKey("nextPageToken")) {
|
| nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (creatives != null) {
|
| - _json["creatives"] = creatives.map((value) => (value).toJson()).toList();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (impressionMetricsRows != null) {
|
| + _json["impressionMetricsRows"] = impressionMetricsRows.map((value) => (value).toJson()).toList();
|
| }
|
| if (nextPageToken != null) {
|
| _json["nextPageToken"] = nextPageToken;
|
| @@ -2433,34 +4697,38 @@ class ListCreativesResponse {
|
| }
|
| }
|
|
|
| -/** A response for listing creative and deal associations */
|
| -class ListDealAssociationsResponse {
|
| - /** The list of associations. */
|
| - core.List<CreativeDealAssociation> associations;
|
| +/** Response message for listing all reasons that bids lost in the auction. */
|
| +class ListLosingBidsResponse {
|
| + /**
|
| + * List of rows, with counts of losing bids aggregated by loss reason (i.e.
|
| + * creative status).
|
| + */
|
| + core.List<CreativeStatusRow> creativeStatusRows;
|
| /**
|
| * A token to retrieve the next page of results.
|
| * Pass this value in the
|
| - * ListDealAssociationsRequest.page_token
|
| - * field in the subsequent call to 'ListDealAssociation' method to retrieve
|
| - * the next page of results.
|
| + * ListLosingBidsRequest.pageToken
|
| + * field in the subsequent call to the
|
| + * accounts.filterSets.losingBids.list
|
| + * method to retrieve the next page of results.
|
| */
|
| core.String nextPageToken;
|
|
|
| - ListDealAssociationsResponse();
|
| + ListLosingBidsResponse();
|
|
|
| - ListDealAssociationsResponse.fromJson(core.Map _json) {
|
| - if (_json.containsKey("associations")) {
|
| - associations = _json["associations"].map((value) => new CreativeDealAssociation.fromJson(value)).toList();
|
| + ListLosingBidsResponse.fromJson(core.Map _json) {
|
| + if (_json.containsKey("creativeStatusRows")) {
|
| + creativeStatusRows = _json["creativeStatusRows"].map((value) => new CreativeStatusRow.fromJson(value)).toList();
|
| }
|
| if (_json.containsKey("nextPageToken")) {
|
| nextPageToken = _json["nextPageToken"];
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| - if (associations != null) {
|
| - _json["associations"] = associations.map((value) => (value).toJson()).toList();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (creativeStatusRows != null) {
|
| + _json["creativeStatusRows"] = creativeStatusRows.map((value) => (value).toJson()).toList();
|
| }
|
| if (nextPageToken != null) {
|
| _json["nextPageToken"] = nextPageToken;
|
| @@ -2487,8 +4755,8 @@ class LocationContext {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (geoCriteriaIds != null) {
|
| _json["geoCriteriaIds"] = geoCriteriaIds;
|
| }
|
| @@ -2496,6 +4764,48 @@ class LocationContext {
|
| }
|
| }
|
|
|
| +/**
|
| + * A metric value, with an expected value and a variance; represents a count
|
| + * that may be either exact or estimated (i.e. when sampled).
|
| + */
|
| +class MetricValue {
|
| + /** The expected value of the metric. */
|
| + core.String value;
|
| + /**
|
| + * The variance (i.e. square of the standard deviation) of the metric value.
|
| + * If value is exact, variance is 0.
|
| + * Can be used to calculate margin of error as a percentage of value, using
|
| + * the following formula, where Z is the standard constant that depends on the
|
| + * desired size of the confidence interval (e.g. for 90% confidence interval,
|
| + * use Z = 1.645):
|
| + *
|
| + * marginOfError = 100 * Z * sqrt(variance) / value
|
| + */
|
| + core.String variance;
|
| +
|
| + MetricValue();
|
| +
|
| + MetricValue.fromJson(core.Map _json) {
|
| + if (_json.containsKey("value")) {
|
| + value = _json["value"];
|
| + }
|
| + if (_json.containsKey("variance")) {
|
| + variance = _json["variance"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (value != null) {
|
| + _json["value"] = value;
|
| + }
|
| + if (variance != null) {
|
| + _json["variance"] = variance;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| /** Native content for a creative. */
|
| class NativeContent {
|
| /**
|
| @@ -2571,8 +4881,8 @@ class NativeContent {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (advertiserName != null) {
|
| _json["advertiserName"] = advertiserName;
|
| }
|
| @@ -2629,8 +4939,8 @@ class PlatformContext {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (platforms != null) {
|
| _json["platforms"] = platforms;
|
| }
|
| @@ -2638,6 +4948,32 @@ class PlatformContext {
|
| }
|
| }
|
|
|
| +/**
|
| + * An open-ended realtime time range specified by the start timestamp.
|
| + * For filter sets that specify a realtime time range RTB metrics continue to
|
| + * be aggregated throughout the lifetime of the filter set.
|
| + */
|
| +class RealtimeTimeRange {
|
| + /** The start timestamp of the real-time RTB metrics aggregation. */
|
| + core.String startTimestamp;
|
| +
|
| + RealtimeTimeRange();
|
| +
|
| + RealtimeTimeRange.fromJson(core.Map _json) {
|
| + if (_json.containsKey("startTimestamp")) {
|
| + startTimestamp = _json["startTimestamp"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (startTimestamp != null) {
|
| + _json["startTimestamp"] = startTimestamp;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| /** A specific filtering status and how many times it occurred. */
|
| class Reason {
|
| /**
|
| @@ -2663,8 +4999,8 @@ class Reason {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (count != null) {
|
| _json["count"] = count;
|
| }
|
| @@ -2675,6 +5011,49 @@ class Reason {
|
| }
|
| }
|
|
|
| +/**
|
| + * A relative date range, specified by an offset and a duration.
|
| + * The supported range of dates begins 30 days before today and ends today.
|
| + * I.e. the limits for these values are:
|
| + * offset_days >= 0
|
| + * duration_days >= 1
|
| + * offset_days + duration_days <= 30
|
| + */
|
| +class RelativeDateRange {
|
| + /**
|
| + * The number of days in the requested date range. E.g. for a range spanning
|
| + * today, 1. For a range spanning the last 7 days, 7.
|
| + */
|
| + core.int durationDays;
|
| + /**
|
| + * The end date of the filter set, specified as the number of days before
|
| + * today. E.g. for a range where the last date is today, 0.
|
| + */
|
| + core.int offsetDays;
|
| +
|
| + RelativeDateRange();
|
| +
|
| + RelativeDateRange.fromJson(core.Map _json) {
|
| + if (_json.containsKey("durationDays")) {
|
| + durationDays = _json["durationDays"];
|
| + }
|
| + if (_json.containsKey("offsetDays")) {
|
| + offsetDays = _json["offsetDays"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (durationDays != null) {
|
| + _json["durationDays"] = durationDays;
|
| + }
|
| + if (offsetDays != null) {
|
| + _json["offsetDays"] = offsetDays;
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| /** A request for removing the association between a deal and a creative. */
|
| class RemoveDealAssociationRequest {
|
| /** The association between a creative and a deal that should be removed. */
|
| @@ -2688,8 +5067,8 @@ class RemoveDealAssociationRequest {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (association != null) {
|
| _json["association"] = (association).toJson();
|
| }
|
| @@ -2697,6 +5076,31 @@ class RemoveDealAssociationRequest {
|
| }
|
| }
|
|
|
| +/**
|
| + * A response may include multiple rows, breaking down along various dimensions.
|
| + * Encapsulates the values of all dimensions for a given row.
|
| + */
|
| +class RowDimensions {
|
| + /** The time interval that this row represents. */
|
| + TimeInterval timeInterval;
|
| +
|
| + RowDimensions();
|
| +
|
| + RowDimensions.fromJson(core.Map _json) {
|
| + if (_json.containsKey("timeInterval")) {
|
| + timeInterval = new TimeInterval.fromJson(_json["timeInterval"]);
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (timeInterval != null) {
|
| + _json["timeInterval"] = (timeInterval).toJson();
|
| + }
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| /** @OutputOnly A security context. */
|
| class SecurityContext {
|
| /** The security types in this context. */
|
| @@ -2710,8 +5114,8 @@ class SecurityContext {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (securities != null) {
|
| _json["securities"] = securities;
|
| }
|
| @@ -2764,8 +5168,8 @@ class ServingContext {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (all != null) {
|
| _json["all"] = all;
|
| }
|
| @@ -2829,8 +5233,8 @@ class ServingRestriction {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (contexts != null) {
|
| _json["contexts"] = contexts.map((value) => (value).toJson()).toList();
|
| }
|
| @@ -2852,8 +5256,55 @@ class StopWatchingCreativeRequest {
|
| StopWatchingCreativeRequest.fromJson(core.Map _json) {
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + return _json;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * An interval of time, with an absolute start and end.
|
| + * This is included in the response, for several reasons:
|
| + * 1) The request may have specified start or end times relative to the time the
|
| + * request was sent; the response indicates the corresponding absolute time
|
| + * interval.
|
| + * 2) The request may have specified an end time past the latest time for which
|
| + * data was available (e.g. if requesting data for the today); the response
|
| + * indicates the latest time for which data was actually returned.
|
| + * 3) The response data for a single request may be broken down into multiple
|
| + * time intervals, if a time series was requested.
|
| + */
|
| +class TimeInterval {
|
| + /**
|
| + * The timestamp marking the end of the range (exclusive) for which data is
|
| + * included.
|
| + */
|
| + core.String endTime;
|
| + /**
|
| + * The timestamp marking the start of the range (inclusive) for which data is
|
| + * included.
|
| + */
|
| + core.String startTime;
|
| +
|
| + TimeInterval();
|
| +
|
| + TimeInterval.fromJson(core.Map _json) {
|
| + if (_json.containsKey("endTime")) {
|
| + endTime = _json["endTime"];
|
| + }
|
| + if (_json.containsKey("startTime")) {
|
| + startTime = _json["startTime"];
|
| + }
|
| + }
|
| +
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| + if (endTime != null) {
|
| + _json["endTime"] = endTime;
|
| + }
|
| + if (startTime != null) {
|
| + _json["startTime"] = startTime;
|
| + }
|
| return _json;
|
| }
|
| }
|
| @@ -2871,8 +5322,8 @@ class VideoContent {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (videoUrl != null) {
|
| _json["videoUrl"] = videoUrl;
|
| }
|
| @@ -2899,8 +5350,8 @@ class WatchCreativeRequest {
|
| }
|
| }
|
|
|
| - core.Map toJson() {
|
| - var _json = new core.Map();
|
| + core.Map<core.String, core.Object> toJson() {
|
| + final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
|
| if (topic != null) {
|
| _json["topic"] = topic;
|
| }
|
|
|