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