| // Copyright 2021 Google LLC |
| // |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file or at |
| // https://developers.google.com/open-source/licenses/bsd |
| |
| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: deprecated_member_use_from_same_package |
| // ignore_for_file: doc_directive_unknown |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unintended_html_in_doc_comment |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Real-time Bidding API - v1 |
| /// |
| /// Allows external bidders to manage their RTB integration with Google. This |
| /// includes managing bidder endpoints, QPS quotas, configuring what ad |
| /// inventory to receive with pretargeting, submitting creatives for |
| /// verification, and accessing creative metadata such as approval status. |
| /// |
| /// For more information, see |
| /// <https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/> |
| /// |
| /// Create an instance of [RealTimeBiddingApi] to access these resources: |
| /// |
| /// - [BiddersResource] |
| /// - [BiddersCreativesResource] |
| /// - [BiddersEndpointsResource] |
| /// - [BiddersPretargetingConfigsResource] |
| /// - [BiddersPublisherConnectionsResource] |
| /// - [BuyersResource] |
| /// - [BuyersCreativesResource] |
| /// - [BuyersUserListsResource] |
| library; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../shared.dart'; |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// Allows external bidders to manage their RTB integration with Google. |
| /// |
| /// This includes managing bidder endpoints, QPS quotas, configuring what ad |
| /// inventory to receive with pretargeting, submitting creatives for |
| /// verification, and accessing creative metadata such as approval status. |
| class RealTimeBiddingApi { |
| /// See, create, edit, and delete your Authorized Buyers and Open Bidding |
| /// account entities |
| static const realtimeBiddingScope = |
| 'https://www.googleapis.com/auth/realtime-bidding'; |
| |
| final commons.ApiRequester _requester; |
| |
| BiddersResource get bidders => BiddersResource(_requester); |
| BuyersResource get buyers => BuyersResource(_requester); |
| |
| RealTimeBiddingApi( |
| http.Client client, { |
| core.String rootUrl = 'https://realtimebidding.googleapis.com/', |
| core.String servicePath = '', |
| }) : _requester = commons.ApiRequester( |
| client, |
| rootUrl, |
| servicePath, |
| requestHeaders, |
| ); |
| } |
| |
| class BiddersResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersCreativesResource get creatives => |
| BiddersCreativesResource(_requester); |
| BiddersEndpointsResource get endpoints => |
| BiddersEndpointsResource(_requester); |
| BiddersPretargetingConfigsResource get pretargetingConfigs => |
| BiddersPretargetingConfigsResource(_requester); |
| BiddersPublisherConnectionsResource get publisherConnections => |
| BiddersPublisherConnectionsResource(_requester); |
| |
| BiddersResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets a bidder account by its name. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the bidder to get. Format: |
| /// `bidders/{bidderAccountId}` |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Bidder]. |
| /// |
| /// 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<Bidder> get(core.String name, {core.String? $fields}) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Bidder.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists all the bidder accounts that belong to the caller. |
| /// |
| /// Request parameters: |
| /// |
| /// [pageSize] - The maximum number of bidders to return. If unspecified, at |
| /// most 100 bidders will be returned. The maximum value is 500; values above |
| /// 500 will be coerced to 500. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. This value is received from a previous `ListBidders` call in |
| /// ListBiddersResponse.nextPageToken. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBiddersResponse]. |
| /// |
| /// 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<ListBiddersResponse> list({ |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| const url_ = 'v1/bidders'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListBiddersResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class BiddersCreativesResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersCreativesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Lists creatives as they are at the time of the initial request. |
| /// |
| /// This call may take multiple hours to complete. For large, paginated |
| /// requests, this method returns a snapshot of creatives at the time of |
| /// request for the first page. `lastStatusUpdate` and |
| /// `creativeServingDecision` may be outdated for creatives on sequential |
| /// pages. We recommend \[Google Cloud |
| /// Pub/Sub\](//cloud.google.com/pubsub/docs/overview) to view the latest |
| /// status. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the parent buyer that owns the creatives. The |
| /// pattern for this resource is either `buyers/{buyerAccountId}` or |
| /// `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the |
| /// `buyerAccountId` can be one of the following: 1. The ID of the buyer that |
| /// is accessing their own creatives. 2. The ID of the child seat buyer under |
| /// a bidder account. So for listing creatives pertaining to the child seat |
| /// buyer (`456`) under bidder account (`123`), you would use the pattern: |
| /// `buyers/456`. 3. The ID of the bidder itself. So for listing creatives |
| /// pertaining to bidder (`123`), you would use `buyers/123`. If you want to |
| /// access all creatives pertaining to both the bidder and all of its child |
| /// seat accounts, you would use `bidders/{bidderAccountId}`, for example, for |
| /// all creatives pertaining to bidder (`123`), use `bidders/123`. |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [filter] - Query string to filter creatives. If no filter is specified, |
| /// all active creatives will be returned. Example: 'accountId=12345 AND |
| /// (dealsStatus:DISAPPROVED AND disapprovalReason:UNACCEPTABLE_CONTENT) OR |
| /// declaredAttributes:IS_COOKIE_TARGETED' |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer creatives |
| /// than requested (due to timeout constraint) even if more are available |
| /// through another call. If unspecified, server will pick an appropriate |
| /// default. Acceptable values are 1 to 1000, inclusive. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativesResponse.nextPageToken returned from the previous call to the |
| /// 'ListCreatives' method. Page tokens for continued pages are valid for up |
| /// to five hours, counting from the call to 'ListCreatives' for the first |
| /// page. |
| /// |
| /// [view] - Controls the amount of information included in the response. By |
| /// default only creativeServingDecision is included. To retrieve the entire |
| /// creative resource (including the declared fields and the creative content) |
| /// specify the view as "FULL". |
| /// Possible string values are: |
| /// - "CREATIVE_VIEW_UNSPECIFIED" : Not specified, equivalent to |
| /// SERVING_DECISION_ONLY. |
| /// - "SERVING_DECISION_ONLY" : Only creativeServingDecision is included in |
| /// the response. |
| /// - "FULL" : The entire creative resource (including the declared fields and |
| /// the creative content) is included in the response. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativesResponse]. |
| /// |
| /// 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<ListCreativesResponse> list( |
| core.String parent, { |
| core.String? filter, |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? view, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'filter': ?filter == null ? null : [filter], |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'view': ?view == null ? null : [view], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/creatives'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListCreativesResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Watches all creatives pertaining to a bidder. |
| /// |
| /// It is sufficient to invoke this endpoint once per bidder. A Pub/Sub topic |
| /// will be created and notifications will be pushed to the topic when any of |
| /// the bidder's creatives change status. All of the bidder's service accounts |
| /// will have access to read from the topic. Subsequent invocations of this |
| /// method will return the existing Pub/Sub configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. To watch all creatives pertaining to the bidder and |
| /// all its child seat accounts, the bidder must follow the pattern |
| /// `bidders/{bidderAccountId}`. |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [WatchCreativesResponse]. |
| /// |
| /// 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<WatchCreativesResponse> watch( |
| WatchCreativesRequest request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/creatives:watch'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return WatchCreativesResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class BiddersEndpointsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersEndpointsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets a bidder endpoint by its name. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the bidder endpoint to get. Format: |
| /// `bidders/{bidderAccountId}/endpoints/{endpointId}` |
| /// Value must have pattern `^bidders/\[^/\]+/endpoints/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Endpoint]. |
| /// |
| /// 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<Endpoint> get(core.String name, {core.String? $fields}) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Endpoint.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists all the bidder's endpoints. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the bidder whose endpoints will be listed. |
| /// Format: `bidders/{bidderAccountId}` |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [pageSize] - The maximum number of endpoints to return. If unspecified, at |
| /// most 100 endpoints will be returned. The maximum value is 500; values |
| /// above 500 will be coerced to 500. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. This value is received from a previous `ListEndpoints` call in |
| /// ListEndpointsResponse.nextPageToken. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListEndpointsResponse]. |
| /// |
| /// 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<ListEndpointsResponse> list( |
| core.String parent, { |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/endpoints'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListEndpointsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Updates a bidder's endpoint. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Output only. Name of the endpoint resource that must follow the |
| /// pattern `bidders/{bidderAccountId}/endpoints/{endpointId}`, where |
| /// {bidderAccountId} is the account ID of the bidder who operates this |
| /// endpoint, and {endpointId} is a unique ID assigned by the server. |
| /// Value must have pattern `^bidders/\[^/\]+/endpoints/\[^/\]+$`. |
| /// |
| /// [updateMask] - Field mask to use for partial in-place updates. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Endpoint]. |
| /// |
| /// 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<Endpoint> patch( |
| Endpoint request, |
| core.String name, { |
| core.String? updateMask, |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'updateMask': ?updateMask == null ? null : [updateMask], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PATCH', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Endpoint.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class BiddersPretargetingConfigsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersPretargetingConfigsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Activates a pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the pretargeting configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> activate( |
| ActivatePretargetingConfigRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':activate'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Adds targeted apps to the pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> addTargetedApps( |
| AddTargetedAppsRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$pretargetingConfig') + ':addTargetedApps'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Adds targeted publishers to the pretargeting config. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> addTargetedPublishers( |
| AddTargetedPublishersRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$pretargetingConfig') + |
| ':addTargetedPublishers'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Adds targeted sites to the pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> addTargetedSites( |
| AddTargetedSitesRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$pretargetingConfig') + |
| ':addTargetedSites'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Creates a pretargeting configuration. |
| /// |
| /// A pretargeting configuration's state (PretargetingConfig.state) is active |
| /// upon creation, and it will start to affect traffic shortly after. A bidder |
| /// may create a maximum of 10 pretargeting configurations. Attempts to exceed |
| /// this maximum results in a 400 bad request error. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the bidder to create the pretargeting |
| /// configuration for. Format: bidders/{bidderAccountId} |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> create( |
| PretargetingConfig request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$parent') + '/pretargetingConfigs'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Deletes a pretargeting configuration. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the pretargeting configuration to delete. |
| /// Format: bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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 name, {core.String? $fields}) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'DELETE', |
| queryParams: queryParams_, |
| ); |
| return Empty.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a pretargeting configuration. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the pretargeting configuration to get. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfigs/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> get( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Lists all pretargeting configurations for a single bidder. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the bidder whose pretargeting configurations |
| /// will be listed. Format: bidders/{bidderAccountId} |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [pageSize] - The maximum number of pretargeting configurations to return. |
| /// If unspecified, at most 10 pretargeting configurations will be returned. |
| /// The maximum value is 100; values above 100 will be coerced to 100. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. This value is received from a previous `ListPretargetingConfigs` |
| /// call in ListPretargetingConfigsResponse.nextPageToken. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListPretargetingConfigsResponse]. |
| /// |
| /// 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<ListPretargetingConfigsResponse> list( |
| core.String parent, { |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$parent') + '/pretargetingConfigs'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListPretargetingConfigsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Updates a pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Output only. Name of the pretargeting config that must follow the |
| /// pattern `bidders/{bidder_account_id}/pretargetingConfigs/{config_id}` |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [updateMask] - Field mask to use for partial in-place updates. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> patch( |
| PretargetingConfig request, |
| core.String name, { |
| core.String? updateMask, |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'updateMask': ?updateMask == null ? null : [updateMask], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PATCH', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Removes targeted apps from the pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> removeTargetedApps( |
| RemoveTargetedAppsRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$pretargetingConfig') + |
| ':removeTargetedApps'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Removes targeted publishers from the pretargeting config. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> removeTargetedPublishers( |
| RemoveTargetedPublishersRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$pretargetingConfig') + |
| ':removeTargetedPublishers'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Removes targeted sites from the pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [pretargetingConfig] - Required. The name of the pretargeting |
| /// configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> removeTargetedSites( |
| RemoveTargetedSitesRequest request, |
| core.String pretargetingConfig, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$pretargetingConfig') + |
| ':removeTargetedSites'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Suspends a pretargeting configuration. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the pretargeting configuration. Format: |
| /// bidders/{bidderAccountId}/pretargetingConfig/{configId} |
| /// Value must have pattern `^bidders/\[^/\]+/pretargetingConfigs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PretargetingConfig]. |
| /// |
| /// 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<PretargetingConfig> suspend( |
| SuspendPretargetingConfigRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':suspend'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return PretargetingConfig.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class BiddersPublisherConnectionsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersPublisherConnectionsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Batch approves multiple publisher connections. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The bidder for whom publisher connections will be |
| /// approved. Format: `bidders/{bidder}` where `{bidder}` is the account ID of |
| /// the bidder. |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [BatchApprovePublisherConnectionsResponse]. |
| /// |
| /// 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<BatchApprovePublisherConnectionsResponse> batchApprove( |
| BatchApprovePublisherConnectionsRequest request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$parent') + |
| '/publisherConnections:batchApprove'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return BatchApprovePublisherConnectionsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Batch rejects multiple publisher connections. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The bidder for whom publisher connections will be |
| /// rejected. Format: `bidders/{bidder}` where `{bidder}` is the account ID of |
| /// the bidder. |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [BatchRejectPublisherConnectionsResponse]. |
| /// |
| /// 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<BatchRejectPublisherConnectionsResponse> batchReject( |
| BatchRejectPublisherConnectionsRequest request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + |
| core.Uri.encodeFull('$parent') + |
| '/publisherConnections:batchReject'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return BatchRejectPublisherConnectionsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Gets a publisher connection. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the publisher whose connection information is |
| /// to be retrieved. In the pattern |
| /// `bidders/{bidder}/publisherConnections/{publisher}` where `{bidder}` is |
| /// the account ID of the bidder, and `{publisher}` is the ads.txt/app-ads.txt |
| /// publisher ID. See publisherConnection.name. |
| /// Value must have pattern `^bidders/\[^/\]+/publisherConnections/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PublisherConnection]. |
| /// |
| /// 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<PublisherConnection> get( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return PublisherConnection.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Lists publisher connections for a given bidder. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the bidder for which publishers have |
| /// initiated connections. The pattern for this resource is `bidders/{bidder}` |
| /// where `{bidder}` represents the account ID of the bidder. |
| /// Value must have pattern `^bidders/\[^/\]+$`. |
| /// |
| /// [filter] - Query string to filter publisher connections. Connections can |
| /// be filtered by `displayName`, `publisherPlatform`, and `biddingState`. If |
| /// no filter is specified, all publisher connections will be returned. |
| /// Example: 'displayName="Great Publisher*" AND publisherPlatform=ADMOB AND |
| /// biddingState != PENDING' See https://google.aip.dev/160 for more |
| /// information about filtering syntax. |
| /// |
| /// [orderBy] - Order specification by which results should be sorted. If no |
| /// sort order is specified, the results will be returned in alphabetic order |
| /// based on the publisher's publisher code. Results can be sorted by |
| /// `createTime`. Example: 'createTime DESC'. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested (due to timeout constraint) even if more are available through |
| /// another call. If unspecified, the server will pick an appropriate default. |
| /// Acceptable values are 1 to 5000, inclusive. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListPublisherConnectionsResponse.nextPageToken returned from the previous |
| /// call to the 'ListPublisherConnections' method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListPublisherConnectionsResponse]. |
| /// |
| /// 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<ListPublisherConnectionsResponse> list( |
| core.String parent, { |
| core.String? filter, |
| core.String? orderBy, |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'filter': ?filter == null ? null : [filter], |
| 'orderBy': ?orderBy == null ? null : [orderBy], |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = |
| 'v1/' + core.Uri.encodeFull('$parent') + '/publisherConnections'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListPublisherConnectionsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class BuyersResource { |
| final commons.ApiRequester _requester; |
| |
| BuyersCreativesResource get creatives => BuyersCreativesResource(_requester); |
| BuyersUserListsResource get userLists => BuyersUserListsResource(_requester); |
| |
| BuyersResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets a buyer account by its name. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the buyer to get. Format: `buyers/{buyerId}` |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Buyer]. |
| /// |
| /// 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<Buyer> get(core.String name, {core.String? $fields}) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Buyer.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// This has been sunset as of October 2023, and will return an error response |
| /// if called. |
| /// |
| /// For more information, see the release notes: |
| /// https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api |
| /// Gets remarketing tag for a buyer. A remarketing tag is a piece of |
| /// JavaScript code that can be placed on a web page. When a user visits a |
| /// page containing a remarketing tag, Google adds the user to a user list. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. To fetch the remarketing tag for an account, the name |
| /// must follow the pattern `buyers/{accountId}`, where `{accountId}` |
| /// represents the ID of the buyer that owns the remarketing tag. For a bidder |
| /// accessing the remarketing tag on behalf of a child seat buyer, |
| /// `{accountId}` should represent the ID of the child seat buyer. To fetch |
| /// the remarketing tag for a specific user list, the name must follow the |
| /// pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name. |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [GetRemarketingTagResponse]. |
| /// |
| /// 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<GetRemarketingTagResponse> getRemarketingTag( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':getRemarketingTag'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return GetRemarketingTagResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Lists all buyer account information the calling buyer user or service |
| /// account is permissioned to manage. |
| /// |
| /// Request parameters: |
| /// |
| /// [pageSize] - The maximum number of buyers to return. If unspecified, at |
| /// most 100 buyers will be returned. The maximum value is 500; values above |
| /// 500 will be coerced to 500. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. This value is received from a previous `ListBuyers` call in |
| /// ListBuyersResponse.nextPageToken. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBuyersResponse]. |
| /// |
| /// 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<ListBuyersResponse> list({ |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| const url_ = 'v1/buyers'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListBuyersResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class BuyersCreativesResource { |
| final commons.ApiRequester _requester; |
| |
| BuyersCreativesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the parent buyer that the new creative |
| /// belongs to that must follow the pattern `buyers/{buyerAccountId}`, where |
| /// `{buyerAccountId}` represents the account ID of the buyer who owns a |
| /// creative. For a bidder accessing creatives on behalf of a child seat |
| /// buyer, `{buyerAccountId}` should represent the account ID of the child |
| /// seat buyer. |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// 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<Creative> create( |
| Creative request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/creatives'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Creative.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a creative. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the creative to retrieve. See creative.name. |
| /// Value must have pattern `^buyers/\[^/\]+/creatives/\[^/\]+$`. |
| /// |
| /// [view] - Controls the amount of information included in the response. By |
| /// default only creativeServingDecision is included. To retrieve the entire |
| /// creative resource (including the declared fields and the creative content) |
| /// specify the view as "FULL". |
| /// Possible string values are: |
| /// - "CREATIVE_VIEW_UNSPECIFIED" : Not specified, equivalent to |
| /// SERVING_DECISION_ONLY. |
| /// - "SERVING_DECISION_ONLY" : Only creativeServingDecision is included in |
| /// the response. |
| /// - "FULL" : The entire creative resource (including the declared fields and |
| /// the creative content) is included in the response. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// 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<Creative> get( |
| core.String name, { |
| core.String? view, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'view': ?view == null ? null : [view], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Creative.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists creatives as they are at the time of the initial request. |
| /// |
| /// This call may take multiple hours to complete. For large, paginated |
| /// requests, this method returns a snapshot of creatives at the time of |
| /// request for the first page. `lastStatusUpdate` and |
| /// `creativeServingDecision` may be outdated for creatives on sequential |
| /// pages. We recommend \[Google Cloud |
| /// Pub/Sub\](//cloud.google.com/pubsub/docs/overview) to view the latest |
| /// status. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. Name of the parent buyer that owns the creatives. The |
| /// pattern for this resource is either `buyers/{buyerAccountId}` or |
| /// `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the |
| /// `buyerAccountId` can be one of the following: 1. The ID of the buyer that |
| /// is accessing their own creatives. 2. The ID of the child seat buyer under |
| /// a bidder account. So for listing creatives pertaining to the child seat |
| /// buyer (`456`) under bidder account (`123`), you would use the pattern: |
| /// `buyers/456`. 3. The ID of the bidder itself. So for listing creatives |
| /// pertaining to bidder (`123`), you would use `buyers/123`. If you want to |
| /// access all creatives pertaining to both the bidder and all of its child |
| /// seat accounts, you would use `bidders/{bidderAccountId}`, for example, for |
| /// all creatives pertaining to bidder (`123`), use `bidders/123`. |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [filter] - Query string to filter creatives. If no filter is specified, |
| /// all active creatives will be returned. Example: 'accountId=12345 AND |
| /// (dealsStatus:DISAPPROVED AND disapprovalReason:UNACCEPTABLE_CONTENT) OR |
| /// declaredAttributes:IS_COOKIE_TARGETED' |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer creatives |
| /// than requested (due to timeout constraint) even if more are available |
| /// through another call. If unspecified, server will pick an appropriate |
| /// default. Acceptable values are 1 to 1000, inclusive. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativesResponse.nextPageToken returned from the previous call to the |
| /// 'ListCreatives' method. Page tokens for continued pages are valid for up |
| /// to five hours, counting from the call to 'ListCreatives' for the first |
| /// page. |
| /// |
| /// [view] - Controls the amount of information included in the response. By |
| /// default only creativeServingDecision is included. To retrieve the entire |
| /// creative resource (including the declared fields and the creative content) |
| /// specify the view as "FULL". |
| /// Possible string values are: |
| /// - "CREATIVE_VIEW_UNSPECIFIED" : Not specified, equivalent to |
| /// SERVING_DECISION_ONLY. |
| /// - "SERVING_DECISION_ONLY" : Only creativeServingDecision is included in |
| /// the response. |
| /// - "FULL" : The entire creative resource (including the declared fields and |
| /// the creative content) is included in the response. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativesResponse]. |
| /// |
| /// 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<ListCreativesResponse> list( |
| core.String parent, { |
| core.String? filter, |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? view, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'filter': ?filter == null ? null : [filter], |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'view': ?view == null ? null : [view], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/creatives'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListCreativesResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Updates a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Output only. Name of the creative. Follows the pattern |
| /// `buyers/{buyer}/creatives/{creative}`, where `{buyer}` represents the |
| /// account ID of the buyer who owns the creative, and `{creative}` is the |
| /// buyer-specific creative ID that references this creative in the bid |
| /// response. |
| /// Value must have pattern `^buyers/\[^/\]+/creatives/\[^/\]+$`. |
| /// |
| /// [updateMask] - Field mask to use for partial in-place updates. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// 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<Creative> patch( |
| Creative request, |
| core.String name, { |
| core.String? updateMask, |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'updateMask': ?updateMask == null ? null : [updateMask], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PATCH', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Creative.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class BuyersUserListsResource { |
| final commons.ApiRequester _requester; |
| |
| BuyersUserListsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Changes the status of a user list to CLOSED. |
| /// |
| /// This prevents new users from being added to the user list. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the user list to close. See UserList.name |
| /// Value must have pattern `^buyers/\[^/\]+/userLists/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UserList]. |
| /// |
| /// 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<UserList> close( |
| CloseUserListRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':close'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return UserList.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Creates a new user list. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the parent buyer of the user list to be |
| /// retrieved, which must follow the pattern `buyers/{buyerAccountId}`, where |
| /// `{buyerAccountId}` represents the account ID of the buyer who owns the |
| /// user list. For a bidder accessing user lists on behalf of a child seat |
| /// buyer, `{buyerAccountId}` should represent the account ID of the child |
| /// seat buyer. |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UserList]. |
| /// |
| /// 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<UserList> create( |
| UserList request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/userLists'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return UserList.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a user list by its name. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the user list to be retrieved. See |
| /// UserList.name. |
| /// Value must have pattern `^buyers/\[^/\]+/userLists/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UserList]. |
| /// |
| /// 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<UserList> get(core.String name, {core.String? $fields}) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return UserList.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// This has been sunset as of October 2023, and will return an error response |
| /// if called. |
| /// |
| /// For more information, see the release notes: |
| /// https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api |
| /// Gets remarketing tag for a buyer. A remarketing tag is a piece of |
| /// JavaScript code that can be placed on a web page. When a user visits a |
| /// page containing a remarketing tag, Google adds the user to a user list. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. To fetch the remarketing tag for an account, the name |
| /// must follow the pattern `buyers/{accountId}`, where `{accountId}` |
| /// represents the ID of the buyer that owns the remarketing tag. For a bidder |
| /// accessing the remarketing tag on behalf of a child seat buyer, |
| /// `{accountId}` should represent the ID of the child seat buyer. To fetch |
| /// the remarketing tag for a specific user list, the name must follow the |
| /// pattern `buyers/{accountId}/userLists/{userListId}`. See UserList.name. |
| /// Value must have pattern `^buyers/\[^/\]+/userLists/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [GetRemarketingTagResponse]. |
| /// |
| /// 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<GetRemarketingTagResponse> getRemarketingTag( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':getRemarketingTag'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return GetRemarketingTagResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Lists the user lists visible to the current user. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the parent buyer for the user lists to be |
| /// returned that must follow the pattern `buyers/{buyerAccountId}`, where |
| /// `{buyerAccountId}` represents the account ID of the buyer who owns user |
| /// lists. For a bidder accessing user lists on behalf of a child seat buyer , |
| /// `{buyerAccountId}` should represent the account ID of the child seat |
| /// buyer. |
| /// Value must have pattern `^buyers/\[^/\]+$`. |
| /// |
| /// [pageSize] - The number of results to return per page. |
| /// |
| /// [pageToken] - Continuation page token as received from a previous |
| /// response. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListUserListsResponse]. |
| /// |
| /// 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<ListUserListsResponse> list( |
| core.String parent, { |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'pageSize': ?pageSize == null ? null : ['${pageSize}'], |
| 'pageToken': ?pageToken == null ? null : [pageToken], |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/userLists'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListUserListsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Changes the status of a user list to OPEN. |
| /// |
| /// This allows new users to be added to the user list. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the user list to open. See UserList.name |
| /// Value must have pattern `^buyers/\[^/\]+/userLists/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UserList]. |
| /// |
| /// 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<UserList> open( |
| OpenUserListRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':open'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return UserList.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates the given user list. |
| /// |
| /// Only user lists with URLRestrictions can be updated. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Output only. Name of the user list that must follow the pattern |
| /// `buyers/{buyer}/userLists/{user_list}`, where `{buyer}` represents the |
| /// account ID of the buyer who owns the user list. For a bidder accessing |
| /// user lists on behalf of a child seat buyer, `{buyer}` represents the |
| /// account ID of the child seat buyer. `{user_list}` is an int64 identifier |
| /// assigned by Google to uniquely identify a user list. |
| /// Value must have pattern `^buyers/\[^/\]+/userLists/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [UserList]. |
| /// |
| /// 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<UserList> update( |
| UserList request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| 'fields': ?$fields == null ? null : [$fields], |
| }; |
| |
| final url_ = 'v1/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'PUT', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return UserList.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| /// A request to activate a pretargeting configuration. |
| /// |
| /// Sets the configuration's state to ACTIVE. |
| typedef ActivatePretargetingConfigRequest = $Empty; |
| |
| /// The list of detected Ad Technology Providers for this creative. |
| /// |
| /// Bids placed for inventory that will serve to EEA or UK users are expected to |
| /// comply with GDPR requirements. You must ensure that the creatives used in |
| /// such bids should contain only user consented ad technology providers as |
| /// indicated in the bid request. Google reserves the right to filter |
| /// non-compliant bids. User consented ad technology providers can be found in |
| /// the |
| /// [Google Protocol](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) |
| /// with the `BidRequest.adslot.consented_providers_settings` field, and can be |
| /// found as an |
| /// [OpenRTB extension](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto) |
| /// with the `BidRequest.user.ext.consented_providers_settings` and |
| /// `BidRequest.user.ext.consent` fields. See |
| /// https://support.google.com/authorizedbuyers/answer/9789378 for additional |
| /// information about the Google TCF v2 integration. |
| class AdTechnologyProviders { |
| /// The detected IAB Global Vendor List (GVL) IDs for this creative. |
| /// |
| /// See the IAB Global Vendor List at |
| /// https://vendor-list.consensu.org/v2/vendor-list.json for details about the |
| /// vendors. |
| core.List<core.String>? detectedGvlIds; |
| |
| /// The detected \[Google Ad Tech Providers |
| /// (ATP)\](https://support.google.com/admanager/answer/9012903) for this |
| /// creative. |
| /// |
| /// See https://storage.googleapis.com/adx-rtb-dictionaries/providers.csv for |
| /// mapping of provider ID to provided name, a privacy policy URL, and a list |
| /// of domains which can be attributed to the provider. |
| core.List<core.String>? detectedProviderIds; |
| |
| /// Domains of detected unidentified ad technology providers (if any). |
| /// |
| /// You must ensure that the creatives used in bids placed for inventory that |
| /// will serve to EEA or UK users does not contain unidentified ad technology |
| /// providers. Google reserves the right to filter non-compliant bids. |
| core.List<core.String>? unidentifiedProviderDomains; |
| |
| AdTechnologyProviders({ |
| this.detectedGvlIds, |
| this.detectedProviderIds, |
| this.unidentifiedProviderDomains, |
| }); |
| |
| AdTechnologyProviders.fromJson(core.Map json_) |
| : this( |
| detectedGvlIds: (json_['detectedGvlIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedProviderIds: (json_['detectedProviderIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| unidentifiedProviderDomains: |
| (json_['unidentifiedProviderDomains'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final detectedGvlIds = this.detectedGvlIds; |
| final detectedProviderIds = this.detectedProviderIds; |
| final unidentifiedProviderDomains = this.unidentifiedProviderDomains; |
| return { |
| 'detectedGvlIds': ?detectedGvlIds, |
| 'detectedProviderIds': ?detectedProviderIds, |
| 'unidentifiedProviderDomains': ?unidentifiedProviderDomains, |
| }; |
| } |
| } |
| |
| /// A request to start targeting the provided app IDs in a specific pretargeting |
| /// configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these apps are targeted. |
| /// in PretargetingConfig.appTargeting.mobileAppTargeting. |
| class AddTargetedAppsRequest { |
| /// A list of app IDs to target in the pretargeting configuration. |
| /// |
| /// These values will be added to the list of targeted app IDs in |
| /// PretargetingConfig.appTargeting.mobileAppTargeting.values. |
| core.List<core.String>? appIds; |
| |
| /// The targeting mode that should be applied to the list of app IDs. |
| /// |
| /// If there are existing targeted app IDs, must be equal to the existing |
| /// PretargetingConfig.appTargeting.mobileAppTargeting.targetingMode or a 400 |
| /// bad request error will be returned. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "TARGETING_MODE_UNSPECIFIED" : Placeholder for undefined targeting mode. |
| /// - "INCLUSIVE" : The inclusive list type. Inventory must match an item in |
| /// this list to be targeted. |
| /// - "EXCLUSIVE" : The exclusive list type. Inventory must not match any item |
| /// in this list to be targeted. |
| core.String? targetingMode; |
| |
| AddTargetedAppsRequest({this.appIds, this.targetingMode}); |
| |
| AddTargetedAppsRequest.fromJson(core.Map json_) |
| : this( |
| appIds: (json_['appIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| targetingMode: json_['targetingMode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final appIds = this.appIds; |
| final targetingMode = this.targetingMode; |
| return {'appIds': ?appIds, 'targetingMode': ?targetingMode}; |
| } |
| } |
| |
| /// A request to start targeting the provided publishers in a specific |
| /// pretargeting configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these publishers are |
| /// targeted in PretargetingConfig.publisherTargeting. |
| class AddTargetedPublishersRequest { |
| /// A list of publisher IDs to target in the pretargeting configuration. |
| /// |
| /// These values will be added to the list of targeted publisher IDs in |
| /// PretargetingConfig.publisherTargeting.values. Publishers are identified by |
| /// their publisher ID from ads.txt / app-ads.txt. See |
| /// https://iabtechlab.com/ads-txt/ and https://iabtechlab.com/app-ads-txt/ |
| /// for more details. |
| core.List<core.String>? publisherIds; |
| |
| /// The targeting mode that should be applied to the list of publisher IDs. |
| /// |
| /// If are existing publisher IDs, must be equal to the existing |
| /// PretargetingConfig.publisherTargeting.targetingMode or a 400 bad request |
| /// error will be returned. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "TARGETING_MODE_UNSPECIFIED" : Placeholder for undefined targeting mode. |
| /// - "INCLUSIVE" : The inclusive list type. Inventory must match an item in |
| /// this list to be targeted. |
| /// - "EXCLUSIVE" : The exclusive list type. Inventory must not match any item |
| /// in this list to be targeted. |
| core.String? targetingMode; |
| |
| AddTargetedPublishersRequest({this.publisherIds, this.targetingMode}); |
| |
| AddTargetedPublishersRequest.fromJson(core.Map json_) |
| : this( |
| publisherIds: (json_['publisherIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| targetingMode: json_['targetingMode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final publisherIds = this.publisherIds; |
| final targetingMode = this.targetingMode; |
| return {'publisherIds': ?publisherIds, 'targetingMode': ?targetingMode}; |
| } |
| } |
| |
| /// A request to start targeting the provided sites in a specific pretargeting |
| /// configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these sites are targeted |
| /// in PretargetingConfig.webTargeting. |
| class AddTargetedSitesRequest { |
| /// A list of site URLs to target in the pretargeting configuration. |
| /// |
| /// These values will be added to the list of targeted URLs in |
| /// PretargetingConfig.webTargeting.values. |
| core.List<core.String>? sites; |
| |
| /// The targeting mode that should be applied to the list of site URLs. |
| /// |
| /// If there are existing targeted sites, must be equal to the existing |
| /// PretargetingConfig.webTargeting.targetingMode or a 400 bad request error |
| /// will be returned. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "TARGETING_MODE_UNSPECIFIED" : Placeholder for undefined targeting mode. |
| /// - "INCLUSIVE" : The inclusive list type. Inventory must match an item in |
| /// this list to be targeted. |
| /// - "EXCLUSIVE" : The exclusive list type. Inventory must not match any item |
| /// in this list to be targeted. |
| core.String? targetingMode; |
| |
| AddTargetedSitesRequest({this.sites, this.targetingMode}); |
| |
| AddTargetedSitesRequest.fromJson(core.Map json_) |
| : this( |
| sites: (json_['sites'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| targetingMode: json_['targetingMode'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final sites = this.sites; |
| final targetingMode = this.targetingMode; |
| return {'sites': ?sites, 'targetingMode': ?targetingMode}; |
| } |
| } |
| |
| /// Detected advertiser and brand information. |
| class AdvertiserAndBrand { |
| /// See https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt |
| /// for the list of possible values. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? advertiserId; |
| |
| /// Advertiser name. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? advertiserName; |
| |
| /// Detected brand ID or zero if no brand has been detected. |
| /// |
| /// See https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt for the |
| /// list of possible values. Can be used to filter the response of the |
| /// creatives.list method. |
| core.String? brandId; |
| |
| /// Brand name. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? brandName; |
| |
| AdvertiserAndBrand({ |
| this.advertiserId, |
| this.advertiserName, |
| this.brandId, |
| this.brandName, |
| }); |
| |
| AdvertiserAndBrand.fromJson(core.Map json_) |
| : this( |
| advertiserId: json_['advertiserId'] as core.String?, |
| advertiserName: json_['advertiserName'] as core.String?, |
| brandId: json_['brandId'] as core.String?, |
| brandName: json_['brandName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final advertiserId = this.advertiserId; |
| final advertiserName = this.advertiserName; |
| final brandId = this.brandId; |
| final brandName = this.brandName; |
| return { |
| 'advertiserId': ?advertiserId, |
| 'advertiserName': ?advertiserName, |
| 'brandId': ?brandId, |
| 'brandName': ?brandName, |
| }; |
| } |
| } |
| |
| /// A subset of app inventory to target. |
| /// |
| /// Bid requests that match criteria in at least one of the specified dimensions |
| /// will be sent. |
| class AppTargeting { |
| /// Lists of included and excluded mobile app categories as defined in |
| /// https://developers.google.com/adwords/api/docs/appendix/mobileappcategories.csv. |
| NumericTargetingDimension? mobileAppCategoryTargeting; |
| |
| /// Targeted app IDs. |
| /// |
| /// App IDs can refer to those found in an app store or ones that are not |
| /// published in an app store. A maximum of 30,000 app IDs can be targeted. |
| StringTargetingDimension? mobileAppTargeting; |
| |
| AppTargeting({this.mobileAppCategoryTargeting, this.mobileAppTargeting}); |
| |
| AppTargeting.fromJson(core.Map json_) |
| : this( |
| mobileAppCategoryTargeting: |
| json_.containsKey('mobileAppCategoryTargeting') |
| ? NumericTargetingDimension.fromJson( |
| json_['mobileAppCategoryTargeting'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| mobileAppTargeting: json_.containsKey('mobileAppTargeting') |
| ? StringTargetingDimension.fromJson( |
| json_['mobileAppTargeting'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final mobileAppCategoryTargeting = this.mobileAppCategoryTargeting; |
| final mobileAppTargeting = this.mobileAppTargeting; |
| return { |
| 'mobileAppCategoryTargeting': ?mobileAppCategoryTargeting, |
| 'mobileAppTargeting': ?mobileAppTargeting, |
| }; |
| } |
| } |
| |
| /// A request to approve a batch of publisher connections. |
| class BatchApprovePublisherConnectionsRequest { |
| /// The names of the publishers with which connections will be approved. |
| /// |
| /// In the pattern `bidders/{bidder}/publisherConnections/{publisher}` where |
| /// `{bidder}` is the account ID of the bidder, and `{publisher}` is the |
| /// ads.txt/app-ads.txt publisher ID. |
| /// |
| /// Required. |
| core.List<core.String>? names; |
| |
| BatchApprovePublisherConnectionsRequest({this.names}); |
| |
| BatchApprovePublisherConnectionsRequest.fromJson(core.Map json_) |
| : this( |
| names: (json_['names'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final names = this.names; |
| return {'names': ?names}; |
| } |
| } |
| |
| /// A response for the request to approve a batch of publisher connections. |
| class BatchApprovePublisherConnectionsResponse { |
| /// The publisher connections that have been approved. |
| core.List<PublisherConnection>? publisherConnections; |
| |
| BatchApprovePublisherConnectionsResponse({this.publisherConnections}); |
| |
| BatchApprovePublisherConnectionsResponse.fromJson(core.Map json_) |
| : this( |
| publisherConnections: (json_['publisherConnections'] as core.List?) |
| ?.map( |
| (value) => PublisherConnection.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final publisherConnections = this.publisherConnections; |
| return {'publisherConnections': ?publisherConnections}; |
| } |
| } |
| |
| /// A request to reject a batch of publisher connections. |
| class BatchRejectPublisherConnectionsRequest { |
| /// The names of the publishers with whom connection will be rejected. |
| /// |
| /// In the pattern `bidders/{bidder}/publisherConnections/{publisher}` where |
| /// `{bidder}` is the account ID of the bidder, and `{publisher}` is the |
| /// ads.txt/app-ads.txt publisher ID. |
| /// |
| /// Required. |
| core.List<core.String>? names; |
| |
| BatchRejectPublisherConnectionsRequest({this.names}); |
| |
| BatchRejectPublisherConnectionsRequest.fromJson(core.Map json_) |
| : this( |
| names: (json_['names'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final names = this.names; |
| return {'names': ?names}; |
| } |
| } |
| |
| /// A response for the request to reject a batch of publisher connections. |
| class BatchRejectPublisherConnectionsResponse { |
| /// The publisher connections that have been rejected. |
| core.List<PublisherConnection>? publisherConnections; |
| |
| BatchRejectPublisherConnectionsResponse({this.publisherConnections}); |
| |
| BatchRejectPublisherConnectionsResponse.fromJson(core.Map json_) |
| : this( |
| publisherConnections: (json_['publisherConnections'] as core.List?) |
| ?.map( |
| (value) => PublisherConnection.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final publisherConnections = this.publisherConnections; |
| return {'publisherConnections': ?publisherConnections}; |
| } |
| } |
| |
| /// Bidder settings. |
| class Bidder { |
| /// An option to bypass pretargeting for private auctions and preferred deals. |
| /// |
| /// When true, bid requests from these nonguaranteed deals will always be |
| /// sent. When false, bid requests will be subject to regular pretargeting |
| /// configurations. Programmatic Guaranteed deals will always be sent to the |
| /// bidder, regardless of the value for this option. Auction packages are not |
| /// impacted by this value and are subject to the regular pretargeting |
| /// configurations. |
| /// |
| /// Output only. |
| core.bool? bypassNonguaranteedDealsPretargeting; |
| |
| /// The buyer's network ID used for cookie matching. |
| /// |
| /// This ID corresponds to the `google_nid` parameter in the URL used in |
| /// cookie match requests. Refer to |
| /// https://developers.google.com/authorized-buyers/rtb/cookie-guide for |
| /// further information. |
| /// |
| /// Output only. |
| core.String? cookieMatchingNetworkId; |
| |
| /// The base URL used in cookie match requests. |
| /// |
| /// Refer to https://developers.google.com/authorized-buyers/rtb/cookie-guide |
| /// for further information. |
| /// |
| /// Output only. |
| core.String? cookieMatchingUrl; |
| |
| /// The billing ID for the deals pretargeting config. |
| /// |
| /// This billing ID is sent on the bid request for guaranteed and |
| /// nonguaranteed deals matched in pretargeting. |
| /// |
| /// Output only. |
| core.String? dealsBillingId; |
| |
| /// Name of the bidder resource that must follow the pattern |
| /// `bidders/{bidderAccountId}`, where `{bidderAccountId}` is the account ID |
| /// of the bidder whose information is to be received. |
| /// |
| /// One can get their account ID on the Authorized Buyers or Open Bidding UI, |
| /// or by contacting their Google account manager. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| Bidder({ |
| this.bypassNonguaranteedDealsPretargeting, |
| this.cookieMatchingNetworkId, |
| this.cookieMatchingUrl, |
| this.dealsBillingId, |
| this.name, |
| }); |
| |
| Bidder.fromJson(core.Map json_) |
| : this( |
| bypassNonguaranteedDealsPretargeting: |
| json_['bypassNonguaranteedDealsPretargeting'] as core.bool?, |
| cookieMatchingNetworkId: |
| json_['cookieMatchingNetworkId'] as core.String?, |
| cookieMatchingUrl: json_['cookieMatchingUrl'] as core.String?, |
| dealsBillingId: json_['dealsBillingId'] as core.String?, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bypassNonguaranteedDealsPretargeting = |
| this.bypassNonguaranteedDealsPretargeting; |
| final cookieMatchingNetworkId = this.cookieMatchingNetworkId; |
| final cookieMatchingUrl = this.cookieMatchingUrl; |
| final dealsBillingId = this.dealsBillingId; |
| final name = this.name; |
| return { |
| 'bypassNonguaranteedDealsPretargeting': |
| ?bypassNonguaranteedDealsPretargeting, |
| 'cookieMatchingNetworkId': ?cookieMatchingNetworkId, |
| 'cookieMatchingUrl': ?cookieMatchingUrl, |
| 'dealsBillingId': ?dealsBillingId, |
| 'name': ?name, |
| }; |
| } |
| } |
| |
| /// RTB Buyer account information. |
| class Buyer { |
| /// The number of creatives that this buyer submitted through the API or bid |
| /// with in the last 30 days. |
| /// |
| /// This is counted against the maximum number of active creatives. |
| /// |
| /// Output only. |
| core.String? activeCreativeCount; |
| |
| /// The name of the bidder resource that is responsible for receiving bidding |
| /// traffic for this account. |
| /// |
| /// The bidder name must follow the pattern `bidders/{bidderAccountId}`, where |
| /// `{bidderAccountId}` is the account ID of the bidder receiving traffic for |
| /// this buyer. |
| /// |
| /// Output only. |
| core.String? bidder; |
| |
| /// A list of billing IDs associated with this account. |
| /// |
| /// These IDs appear on: 1. A bid request, to signal which buyers are eligible |
| /// to bid on a given opportunity, and which pretargeting configurations were |
| /// matched for each eligible buyer. 2. The bid response, to attribute a |
| /// winning impression to a specific account for billing, reporting, policy |
| /// and publisher block enforcement. |
| /// |
| /// Output only. |
| core.List<core.String>? billingIds; |
| |
| /// The diplay name associated with this buyer account, as visible to sellers. |
| /// |
| /// Output only. |
| core.String? displayName; |
| |
| /// The maximum number of active creatives that this buyer can have. |
| /// |
| /// Output only. |
| core.String? maximumActiveCreativeCount; |
| |
| /// Name of the buyer resource that must follow the pattern |
| /// `buyers/{buyerAccountId}`, where `{buyerAccountId}` is the account ID of |
| /// the buyer account whose information is to be received. |
| /// |
| /// One can get their account ID on the Authorized Buyers or Open Bidding UI, |
| /// or by contacting their Google account manager. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| Buyer({ |
| this.activeCreativeCount, |
| this.bidder, |
| this.billingIds, |
| this.displayName, |
| this.maximumActiveCreativeCount, |
| this.name, |
| }); |
| |
| Buyer.fromJson(core.Map json_) |
| : this( |
| activeCreativeCount: json_['activeCreativeCount'] as core.String?, |
| bidder: json_['bidder'] as core.String?, |
| billingIds: (json_['billingIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| displayName: json_['displayName'] as core.String?, |
| maximumActiveCreativeCount: |
| json_['maximumActiveCreativeCount'] as core.String?, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final activeCreativeCount = this.activeCreativeCount; |
| final bidder = this.bidder; |
| final billingIds = this.billingIds; |
| final displayName = this.displayName; |
| final maximumActiveCreativeCount = this.maximumActiveCreativeCount; |
| final name = this.name; |
| return { |
| 'activeCreativeCount': ?activeCreativeCount, |
| 'bidder': ?bidder, |
| 'billingIds': ?billingIds, |
| 'displayName': ?displayName, |
| 'maximumActiveCreativeCount': ?maximumActiveCreativeCount, |
| 'name': ?name, |
| }; |
| } |
| } |
| |
| /// A request to close a specified user list. |
| typedef CloseUserListRequest = $Empty; |
| |
| /// A creative and its classification data. |
| class Creative { |
| /// ID of the buyer account that this creative is owned by. |
| /// |
| /// Can be used to filter the response of the creatives.list method with |
| /// equality and inequality check. |
| /// |
| /// Output only. |
| core.String? accountId; |
| |
| /// The link to AdChoices destination page. |
| /// |
| /// This is only supported for native ads. |
| core.String? adChoicesDestinationUrl; |
| |
| /// The name of the company being advertised in the creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? advertiserName; |
| |
| /// The agency ID for this creative. |
| core.String? agencyId; |
| |
| /// The last update timestamp of the creative through the API. |
| /// |
| /// Output only. |
| core.String? apiUpdateTime; |
| |
| /// The format of this creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "CREATIVE_FORMAT_UNSPECIFIED" : The format is unknown. |
| /// - "HTML" : HTML creative. |
| /// - "VIDEO" : Video creative. |
| /// - "NATIVE" : Native creative. |
| core.String? creativeFormat; |
| |
| /// Buyer-specific creative ID that references this creative in bid responses. |
| /// |
| /// This field is Ignored in update operations. Can be used to filter the |
| /// response of the creatives.list method. The maximum length of the creative |
| /// ID is 128 bytes. |
| core.String? creativeId; |
| |
| /// Top level status and detected attributes of a creative (for example |
| /// domain, language, advertiser, product category, etc.) that affect whether |
| /// (status) and where (context) a creative will be allowed to serve. |
| /// |
| /// Output only. |
| CreativeServingDecision? creativeServingDecision; |
| |
| /// IDs of all of the deals with which this creative has been used in bidding. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| /// |
| /// Output only. |
| core.List<core.String>? dealIds; |
| |
| /// All declared attributes for the ads that may be shown from this creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. If the |
| /// `excluded_attribute` field of a |
| /// [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto") |
| /// contains one of the attributes that were declared or detected for a given |
| /// creative, and a bid is submitted with that creative, the bid will be |
| /// filtered before the auction. |
| core.List<core.String>? declaredAttributes; |
| |
| /// The set of declared destination URLs for the creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.List<core.String>? declaredClickThroughUrls; |
| |
| /// All declared restricted categories for the ads that may be shown from this |
| /// creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.List<core.String>? declaredRestrictedCategories; |
| |
| /// IDs for the declared ad technology vendors that may be used by this |
| /// creative. |
| /// |
| /// See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for |
| /// possible values. Can be used to filter the response of the creatives.list |
| /// method. |
| core.List<core.int>? declaredVendorIds; |
| |
| /// An HTML creative. |
| HtmlContent? html; |
| |
| /// The set of URLs to be called to record an impression. |
| core.List<core.String>? impressionTrackingUrls; |
| |
| /// Name of the creative. |
| /// |
| /// Follows the pattern `buyers/{buyer}/creatives/{creative}`, where `{buyer}` |
| /// represents the account ID of the buyer who owns the creative, and |
| /// `{creative}` is the buyer-specific creative ID that references this |
| /// creative in the bid response. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// A native creative. |
| NativeContent? native; |
| |
| /// Deprecated: FLEDGE is no longer supported. |
| /// |
| /// See: |
| /// https://privacysandbox.google.com/blog/update-on-plans-for-privacy-sandbox-technologies |
| /// Experimental field that can be used during the \[FLEDGE Origin |
| /// Trial\](/authorized-buyers/rtb/fledge-origin-trial). The URL to fetch an |
| /// interest group ad used in \[TURTLEDOVE on-device |
| /// auction\](https://github.com/WICG/turtledove/blob/main/FLEDGE.md#1-browsers-record-interest-groups"). |
| /// This should be unique among all creatives for a given `accountId`. This |
| /// URL should be the same as the URL returned by |
| /// \[generateBid()\](https://github.com/WICG/turtledove/blob/main/FLEDGE.md#32-on-device-bidding). |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.String? renderUrl; |
| |
| /// All restricted categories for the ads that may be shown from this |
| /// creative. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.List<core.String>? restrictedCategories; |
| |
| /// The version of the creative. |
| /// |
| /// Version for a new creative is 1 and it increments during subsequent |
| /// creative updates. |
| /// |
| /// Output only. |
| @core.Deprecated( |
| 'Not supported. Member documentation may have more information.', |
| ) |
| core.int? version; |
| |
| /// A video creative. |
| VideoContent? video; |
| |
| Creative({ |
| this.accountId, |
| this.adChoicesDestinationUrl, |
| this.advertiserName, |
| this.agencyId, |
| this.apiUpdateTime, |
| this.creativeFormat, |
| this.creativeId, |
| this.creativeServingDecision, |
| this.dealIds, |
| this.declaredAttributes, |
| this.declaredClickThroughUrls, |
| this.declaredRestrictedCategories, |
| this.declaredVendorIds, |
| this.html, |
| this.impressionTrackingUrls, |
| this.name, |
| this.native, |
| this.renderUrl, |
| this.restrictedCategories, |
| this.version, |
| this.video, |
| }); |
| |
| Creative.fromJson(core.Map json_) |
| : this( |
| accountId: json_['accountId'] as core.String?, |
| adChoicesDestinationUrl: |
| json_['adChoicesDestinationUrl'] as core.String?, |
| advertiserName: json_['advertiserName'] as core.String?, |
| agencyId: json_['agencyId'] as core.String?, |
| apiUpdateTime: json_['apiUpdateTime'] as core.String?, |
| creativeFormat: json_['creativeFormat'] as core.String?, |
| creativeId: json_['creativeId'] as core.String?, |
| creativeServingDecision: json_.containsKey('creativeServingDecision') |
| ? CreativeServingDecision.fromJson( |
| json_['creativeServingDecision'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dealIds: (json_['dealIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| declaredAttributes: (json_['declaredAttributes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| declaredClickThroughUrls: |
| (json_['declaredClickThroughUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| declaredRestrictedCategories: |
| (json_['declaredRestrictedCategories'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| declaredVendorIds: (json_['declaredVendorIds'] as core.List?) |
| ?.map((value) => value as core.int) |
| .toList(), |
| html: json_.containsKey('html') |
| ? HtmlContent.fromJson( |
| json_['html'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| impressionTrackingUrls: (json_['impressionTrackingUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| name: json_['name'] as core.String?, |
| native: json_.containsKey('native') |
| ? NativeContent.fromJson( |
| json_['native'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| renderUrl: json_['renderUrl'] as core.String?, |
| restrictedCategories: (json_['restrictedCategories'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| version: json_['version'] as core.int?, |
| video: json_.containsKey('video') |
| ? VideoContent.fromJson( |
| json_['video'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final accountId = this.accountId; |
| final adChoicesDestinationUrl = this.adChoicesDestinationUrl; |
| final advertiserName = this.advertiserName; |
| final agencyId = this.agencyId; |
| final apiUpdateTime = this.apiUpdateTime; |
| final creativeFormat = this.creativeFormat; |
| final creativeId = this.creativeId; |
| final creativeServingDecision = this.creativeServingDecision; |
| final dealIds = this.dealIds; |
| final declaredAttributes = this.declaredAttributes; |
| final declaredClickThroughUrls = this.declaredClickThroughUrls; |
| final declaredRestrictedCategories = this.declaredRestrictedCategories; |
| final declaredVendorIds = this.declaredVendorIds; |
| final html = this.html; |
| final impressionTrackingUrls = this.impressionTrackingUrls; |
| final name = this.name; |
| final native = this.native; |
| final renderUrl = this.renderUrl; |
| final restrictedCategories = this.restrictedCategories; |
| final version = this.version; |
| final video = this.video; |
| return { |
| 'accountId': ?accountId, |
| 'adChoicesDestinationUrl': ?adChoicesDestinationUrl, |
| 'advertiserName': ?advertiserName, |
| 'agencyId': ?agencyId, |
| 'apiUpdateTime': ?apiUpdateTime, |
| 'creativeFormat': ?creativeFormat, |
| 'creativeId': ?creativeId, |
| 'creativeServingDecision': ?creativeServingDecision, |
| 'dealIds': ?dealIds, |
| 'declaredAttributes': ?declaredAttributes, |
| 'declaredClickThroughUrls': ?declaredClickThroughUrls, |
| 'declaredRestrictedCategories': ?declaredRestrictedCategories, |
| 'declaredVendorIds': ?declaredVendorIds, |
| 'html': ?html, |
| 'impressionTrackingUrls': ?impressionTrackingUrls, |
| 'name': ?name, |
| 'native': ?native, |
| 'renderUrl': ?renderUrl, |
| 'restrictedCategories': ?restrictedCategories, |
| 'version': ?version, |
| 'video': ?video, |
| }; |
| } |
| } |
| |
| /// The dimensions of a creative. |
| /// |
| /// This applies to only HTML and Native creatives. |
| class CreativeDimensions { |
| /// The height of the creative in pixels. |
| core.String? height; |
| |
| /// The width of the creative in pixels. |
| core.String? width; |
| |
| CreativeDimensions({this.height, this.width}); |
| |
| CreativeDimensions.fromJson(core.Map json_) |
| : this( |
| height: json_['height'] as core.String?, |
| width: json_['width'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final height = this.height; |
| final width = this.width; |
| return {'height': ?height, 'width': ?width}; |
| } |
| } |
| |
| /// Top level status and detected attributes of a creative. |
| class CreativeServingDecision { |
| /// The detected ad technology providers. |
| AdTechnologyProviders? adTechnologyProviders; |
| |
| /// The policy compliance of this creative in China. |
| /// |
| /// When approved or disapproved, this applies to both deals and open auction |
| /// in China. When pending review, this creative is allowed to serve for deals |
| /// but not for open auction. |
| PolicyCompliance? chinaPolicyCompliance; |
| |
| /// Policy compliance of this creative when bidding on Programmatic Guaranteed |
| /// and Preferred Deals (outside of Russia and China). |
| PolicyCompliance? dealsPolicyCompliance; |
| |
| /// Detected advertisers and brands. |
| core.List<AdvertiserAndBrand>? detectedAdvertisers; |
| |
| /// Publisher-excludable attributes that were detected for this creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. If the |
| /// `excluded_attribute` field of a |
| /// [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) |
| /// contains one of the attributes that were declared or detected for a given |
| /// creative, and a bid is submitted with that creative, the bid will be |
| /// filtered before the auction. |
| core.List<core.String>? detectedAttributes; |
| |
| /// IDs of the detected categories. |
| /// |
| /// The taxonomy in which the categories are expressed is specified by the |
| /// detected_categories_taxonomy field. Use this in conjunction with |
| /// BidRequest.bcat to avoid bidding on impressions where a given ad category |
| /// is blocked, or to troubleshoot filtered bids. Can be used to filter the |
| /// response of the creatives.list method. |
| /// |
| /// Output only. |
| core.List<core.String>? detectedCategories; |
| |
| /// The taxonomy in which the detected_categories field is expressed. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "AD_CATEGORY_TAXONOMY_UNSPECIFIED" : Default value that should never be |
| /// used. |
| /// - "GOOGLE_AD_CATEGORY_TAXONOMY" : Google ad categories taxonomy, including |
| /// product categories and sensitive categories. Find the category lists at |
| /// https://developers.google.com/authorized-buyers/rtb/data#reference-data |
| /// - "IAB_CONTENT_1_0" : IAB Content Taxonomy 1.0. See |
| /// https://github.com/InteractiveAdvertisingBureau/Taxonomies/blob/main/Content%20Taxonomies/Content%20Taxonomy%201.0.tsv |
| /// for more details. |
| core.String? detectedCategoriesTaxonomy; |
| |
| /// The set of detected destination URLs for the creative. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.List<core.String>? detectedClickThroughUrls; |
| |
| /// The detected domains for this creative. |
| core.List<core.String>? detectedDomains; |
| |
| /// 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. |
| /// Can be used to filter the response of the creatives.list method. |
| core.List<core.String>? detectedLanguages; |
| |
| /// Detected product categories, if any. |
| /// |
| /// See the ad-product-categories.txt file in the technical documentation for |
| /// a list of IDs. Can be used to filter the response of the creatives.list |
| /// method. |
| core.List<core.int>? detectedProductCategories; |
| |
| /// Detected sensitive categories, if any. |
| /// |
| /// Can be used to filter the response of the creatives.list method. 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; |
| |
| /// IDs of the ad technology vendors that were detected to be used by this |
| /// creative. |
| /// |
| /// See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for |
| /// possible values. Can be used to filter the response of the creatives.list |
| /// method. If the `allowed_vendor_type` field of a |
| /// [bid request](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) |
| /// does not contain one of the vendor type IDs that were declared or detected |
| /// for a given creative, and a bid is submitted with that creative, the bid |
| /// will be filtered before the auction. |
| core.List<core.int>? detectedVendorIds; |
| |
| /// The last time the creative status was updated. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? lastStatusUpdate; |
| |
| /// Policy compliance of this creative when bidding in open auction, private |
| /// auction, or auction packages (outside of Russia and China). |
| PolicyCompliance? networkPolicyCompliance; |
| |
| /// Policy compliance of this creative when bidding in Open Bidding (outside |
| /// of Russia and China). |
| /// |
| /// For the list of platform policies, see: |
| /// https://support.google.com/platformspolicy/answer/3013851. |
| PolicyCompliance? platformPolicyCompliance; |
| |
| /// The policy compliance of this creative in Russia. |
| /// |
| /// When approved or disapproved, this applies to both deals and open auction |
| /// in Russia. When pending review, this creative is allowed to serve for |
| /// deals but not for open auction. |
| PolicyCompliance? russiaPolicyCompliance; |
| |
| CreativeServingDecision({ |
| this.adTechnologyProviders, |
| this.chinaPolicyCompliance, |
| this.dealsPolicyCompliance, |
| this.detectedAdvertisers, |
| this.detectedAttributes, |
| this.detectedCategories, |
| this.detectedCategoriesTaxonomy, |
| this.detectedClickThroughUrls, |
| this.detectedDomains, |
| this.detectedLanguages, |
| this.detectedProductCategories, |
| this.detectedSensitiveCategories, |
| this.detectedVendorIds, |
| this.lastStatusUpdate, |
| this.networkPolicyCompliance, |
| this.platformPolicyCompliance, |
| this.russiaPolicyCompliance, |
| }); |
| |
| CreativeServingDecision.fromJson(core.Map json_) |
| : this( |
| adTechnologyProviders: json_.containsKey('adTechnologyProviders') |
| ? AdTechnologyProviders.fromJson( |
| json_['adTechnologyProviders'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| chinaPolicyCompliance: json_.containsKey('chinaPolicyCompliance') |
| ? PolicyCompliance.fromJson( |
| json_['chinaPolicyCompliance'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dealsPolicyCompliance: json_.containsKey('dealsPolicyCompliance') |
| ? PolicyCompliance.fromJson( |
| json_['dealsPolicyCompliance'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| detectedAdvertisers: (json_['detectedAdvertisers'] as core.List?) |
| ?.map( |
| (value) => AdvertiserAndBrand.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| detectedAttributes: (json_['detectedAttributes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedCategories: (json_['detectedCategories'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedCategoriesTaxonomy: |
| json_['detectedCategoriesTaxonomy'] as core.String?, |
| detectedClickThroughUrls: |
| (json_['detectedClickThroughUrls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedDomains: (json_['detectedDomains'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedLanguages: (json_['detectedLanguages'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| detectedProductCategories: |
| (json_['detectedProductCategories'] as core.List?) |
| ?.map((value) => value as core.int) |
| .toList(), |
| detectedSensitiveCategories: |
| (json_['detectedSensitiveCategories'] as core.List?) |
| ?.map((value) => value as core.int) |
| .toList(), |
| detectedVendorIds: (json_['detectedVendorIds'] as core.List?) |
| ?.map((value) => value as core.int) |
| .toList(), |
| lastStatusUpdate: json_['lastStatusUpdate'] as core.String?, |
| networkPolicyCompliance: json_.containsKey('networkPolicyCompliance') |
| ? PolicyCompliance.fromJson( |
| json_['networkPolicyCompliance'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| platformPolicyCompliance: json_.containsKey('platformPolicyCompliance') |
| ? PolicyCompliance.fromJson( |
| json_['platformPolicyCompliance'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| russiaPolicyCompliance: json_.containsKey('russiaPolicyCompliance') |
| ? PolicyCompliance.fromJson( |
| json_['russiaPolicyCompliance'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final adTechnologyProviders = this.adTechnologyProviders; |
| final chinaPolicyCompliance = this.chinaPolicyCompliance; |
| final dealsPolicyCompliance = this.dealsPolicyCompliance; |
| final detectedAdvertisers = this.detectedAdvertisers; |
| final detectedAttributes = this.detectedAttributes; |
| final detectedCategories = this.detectedCategories; |
| final detectedCategoriesTaxonomy = this.detectedCategoriesTaxonomy; |
| final detectedClickThroughUrls = this.detectedClickThroughUrls; |
| final detectedDomains = this.detectedDomains; |
| final detectedLanguages = this.detectedLanguages; |
| final detectedProductCategories = this.detectedProductCategories; |
| final detectedSensitiveCategories = this.detectedSensitiveCategories; |
| final detectedVendorIds = this.detectedVendorIds; |
| final lastStatusUpdate = this.lastStatusUpdate; |
| final networkPolicyCompliance = this.networkPolicyCompliance; |
| final platformPolicyCompliance = this.platformPolicyCompliance; |
| final russiaPolicyCompliance = this.russiaPolicyCompliance; |
| return { |
| 'adTechnologyProviders': ?adTechnologyProviders, |
| 'chinaPolicyCompliance': ?chinaPolicyCompliance, |
| 'dealsPolicyCompliance': ?dealsPolicyCompliance, |
| 'detectedAdvertisers': ?detectedAdvertisers, |
| 'detectedAttributes': ?detectedAttributes, |
| 'detectedCategories': ?detectedCategories, |
| 'detectedCategoriesTaxonomy': ?detectedCategoriesTaxonomy, |
| 'detectedClickThroughUrls': ?detectedClickThroughUrls, |
| 'detectedDomains': ?detectedDomains, |
| 'detectedLanguages': ?detectedLanguages, |
| 'detectedProductCategories': ?detectedProductCategories, |
| 'detectedSensitiveCategories': ?detectedSensitiveCategories, |
| 'detectedVendorIds': ?detectedVendorIds, |
| 'lastStatusUpdate': ?lastStatusUpdate, |
| 'networkPolicyCompliance': ?networkPolicyCompliance, |
| 'platformPolicyCompliance': ?platformPolicyCompliance, |
| 'russiaPolicyCompliance': ?russiaPolicyCompliance, |
| }; |
| } |
| } |
| |
| /// Represents a whole or partial calendar date, such as a birthday. |
| /// |
| /// The time of day and time zone are either specified elsewhere or are |
| /// insignificant. The date is relative to the Gregorian Calendar. This can |
| /// represent one of the following: * A full date, with non-zero year, month, |
| /// and day values. * A month and day, with a zero year (for example, an |
| /// anniversary). * A year on its own, with a zero month and a zero day. * A |
| /// year and month, with a zero day (for example, a credit card expiration |
| /// date). Related types: * google.type.TimeOfDay * google.type.DateTime * |
| /// google.protobuf.Timestamp |
| typedef Date = $Date; |
| |
| /// Evidence that the creative's destination URL was not crawlable by Google. |
| class DestinationNotCrawlableEvidence { |
| /// Approximate time of the crawl. |
| core.String? crawlTime; |
| |
| /// Destination URL that was attempted to be crawled. |
| core.String? crawledUrl; |
| |
| /// Reason of destination not crawlable. |
| /// Possible string values are: |
| /// - "REASON_UNSPECIFIED" : Default value that should never be used. |
| /// - "UNREACHABLE_ROBOTS" : Site's robots exclusion file (for example, |
| /// robots.txt) was unreachable. |
| /// - "TIMEOUT_ROBOTS" : Timed out reading site's robots exclusion file (for |
| /// example, robots.txt). |
| /// - "ROBOTED_DENIED" : Crawler was disallowed by the site's robots exclusion |
| /// file (for example, robots.txt). |
| /// - "UNKNOWN" : Unknown reason. |
| core.String? reason; |
| |
| DestinationNotCrawlableEvidence({ |
| this.crawlTime, |
| this.crawledUrl, |
| this.reason, |
| }); |
| |
| DestinationNotCrawlableEvidence.fromJson(core.Map json_) |
| : this( |
| crawlTime: json_['crawlTime'] as core.String?, |
| crawledUrl: json_['crawledUrl'] as core.String?, |
| reason: json_['reason'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final crawlTime = this.crawlTime; |
| final crawledUrl = this.crawledUrl; |
| final reason = this.reason; |
| return { |
| 'crawlTime': ?crawlTime, |
| 'crawledUrl': ?crawledUrl, |
| 'reason': ?reason, |
| }; |
| } |
| } |
| |
| /// Evidence of the creative's destination URL not functioning properly or |
| /// having been incorrectly set up. |
| class DestinationNotWorkingEvidence { |
| /// DNS lookup errors. |
| /// Possible string values are: |
| /// - "DNS_ERROR_UNSPECIFIED" : Default value that should never be used. |
| /// - "ERROR_DNS" : DNS name was not found. |
| /// - "GOOGLE_CRAWLER_DNS_ISSUE" : An internal issue occurred when Google's |
| /// crawler tried to resolve the DNS entry. This is a Google-internal issue |
| /// and may not be the result of an issue with the landing page. |
| core.String? dnsError; |
| |
| /// The full non-working URL. |
| core.String? expandedUrl; |
| |
| /// HTTP error code (for example, 404 or 5xx) |
| core.int? httpError; |
| |
| /// Page was crawled successfully, but was detected as either a page with no |
| /// content or an error page. |
| /// Possible string values are: |
| /// - "INVALID_PAGE_UNSPECIFIED" : Default value that should never be used. |
| /// - "EMPTY_OR_ERROR_PAGE" : Page was empty or had an error. |
| core.String? invalidPage; |
| |
| /// Approximate time when the ad destination was last checked. |
| core.String? lastCheckTime; |
| |
| /// Platform of the non-working URL. |
| /// Possible string values are: |
| /// - "PLATFORM_UNSPECIFIED" : Default value that should never be used. |
| /// - "PERSONAL_COMPUTER" : The personal computer platform. |
| /// - "ANDROID" : The Android platform. |
| /// - "IOS" : The iOS platform. |
| core.String? platform; |
| |
| /// HTTP redirect chain error. |
| /// Possible string values are: |
| /// - "REDIRECTION_ERROR_UNSPECIFIED" : Default value that should never be |
| /// used. |
| /// - "TOO_MANY_REDIRECTS" : Too many redirect hops. |
| /// - "INVALID_REDIRECT" : Got a redirect but it was invalid. |
| /// - "EMPTY_REDIRECT" : Got a redirect but it was empty. |
| /// - "REDIRECT_ERROR_UNKNOWN" : Unknown redirect error. |
| core.String? redirectionError; |
| |
| /// Rejected because of malformed URLs or invalid requests. |
| /// Possible string values are: |
| /// - "URL_REJECTED_UNSPECIFIED" : Default value that should never be used. |
| /// - "BAD_REQUEST" : URL rejected because of a malformed request. |
| /// - "MALFORMED_URL" : URL rejected because of a malformed URL. |
| /// - "URL_REJECTED_UNKNOWN" : URL rejected because of unknown reason. |
| core.String? urlRejected; |
| |
| DestinationNotWorkingEvidence({ |
| this.dnsError, |
| this.expandedUrl, |
| this.httpError, |
| this.invalidPage, |
| this.lastCheckTime, |
| this.platform, |
| this.redirectionError, |
| this.urlRejected, |
| }); |
| |
| DestinationNotWorkingEvidence.fromJson(core.Map json_) |
| : this( |
| dnsError: json_['dnsError'] as core.String?, |
| expandedUrl: json_['expandedUrl'] as core.String?, |
| httpError: json_['httpError'] as core.int?, |
| invalidPage: json_['invalidPage'] as core.String?, |
| lastCheckTime: json_['lastCheckTime'] as core.String?, |
| platform: json_['platform'] as core.String?, |
| redirectionError: json_['redirectionError'] as core.String?, |
| urlRejected: json_['urlRejected'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final dnsError = this.dnsError; |
| final expandedUrl = this.expandedUrl; |
| final httpError = this.httpError; |
| final invalidPage = this.invalidPage; |
| final lastCheckTime = this.lastCheckTime; |
| final platform = this.platform; |
| final redirectionError = this.redirectionError; |
| final urlRejected = this.urlRejected; |
| return { |
| 'dnsError': ?dnsError, |
| 'expandedUrl': ?expandedUrl, |
| 'httpError': ?httpError, |
| 'invalidPage': ?invalidPage, |
| 'lastCheckTime': ?lastCheckTime, |
| 'platform': ?platform, |
| 'redirectionError': ?redirectionError, |
| 'urlRejected': ?urlRejected, |
| }; |
| } |
| } |
| |
| /// The full landing page URL of the destination. |
| class DestinationUrlEvidence { |
| /// The full landing page URL of the destination. |
| core.String? destinationUrl; |
| |
| DestinationUrlEvidence({this.destinationUrl}); |
| |
| DestinationUrlEvidence.fromJson(core.Map json_) |
| : this(destinationUrl: json_['destinationUrl'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final destinationUrl = this.destinationUrl; |
| return {'destinationUrl': ?destinationUrl}; |
| } |
| } |
| |
| /// Number of HTTP calls made by a creative, broken down by domain. |
| class DomainCallEvidence { |
| /// Breakdown of the most frequent domains called through HTTP by the |
| /// creative. |
| core.List<DomainCalls>? topHttpCallDomains; |
| |
| /// The total number of HTTP calls made by the creative, including but not |
| /// limited to the number of calls in the top_http_call_domains. |
| core.int? totalHttpCallCount; |
| |
| DomainCallEvidence({this.topHttpCallDomains, this.totalHttpCallCount}); |
| |
| DomainCallEvidence.fromJson(core.Map json_) |
| : this( |
| topHttpCallDomains: (json_['topHttpCallDomains'] as core.List?) |
| ?.map( |
| (value) => DomainCalls.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| totalHttpCallCount: json_['totalHttpCallCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final topHttpCallDomains = this.topHttpCallDomains; |
| final totalHttpCallCount = this.totalHttpCallCount; |
| return { |
| 'topHttpCallDomains': ?topHttpCallDomains, |
| 'totalHttpCallCount': ?totalHttpCallCount, |
| }; |
| } |
| } |
| |
| /// The number of HTTP calls made to the given domain. |
| class DomainCalls { |
| /// The domain name. |
| core.String? domain; |
| |
| /// Number of HTTP calls made to the domain. |
| core.int? httpCallCount; |
| |
| DomainCalls({this.domain, this.httpCallCount}); |
| |
| DomainCalls.fromJson(core.Map json_) |
| : this( |
| domain: json_['domain'] as core.String?, |
| httpCallCount: json_['httpCallCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final domain = this.domain; |
| final httpCallCount = this.httpCallCount; |
| return {'domain': ?domain, 'httpCallCount': ?httpCallCount}; |
| } |
| } |
| |
| /// Total download size and URL-level download size breakdown for resources in a |
| /// creative. |
| class DownloadSizeEvidence { |
| /// Download size broken down by URLs with the top download size. |
| core.List<UrlDownloadSize>? topUrlDownloadSizeBreakdowns; |
| |
| /// Total download size (in kilobytes) for all the resources in the creative. |
| core.int? totalDownloadSizeKb; |
| |
| DownloadSizeEvidence({ |
| this.topUrlDownloadSizeBreakdowns, |
| this.totalDownloadSizeKb, |
| }); |
| |
| DownloadSizeEvidence.fromJson(core.Map json_) |
| : this( |
| topUrlDownloadSizeBreakdowns: |
| (json_['topUrlDownloadSizeBreakdowns'] as core.List?) |
| ?.map( |
| (value) => UrlDownloadSize.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| totalDownloadSizeKb: json_['totalDownloadSizeKb'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final topUrlDownloadSizeBreakdowns = this.topUrlDownloadSizeBreakdowns; |
| final totalDownloadSizeKb = this.totalDownloadSizeKb; |
| return { |
| 'topUrlDownloadSizeBreakdowns': ?topUrlDownloadSizeBreakdowns, |
| 'totalDownloadSizeKb': ?totalDownloadSizeKb, |
| }; |
| } |
| } |
| |
| /// 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); } |
| typedef Empty = $Empty; |
| |
| /// Bidder endpoint that receives bid requests. |
| class Endpoint { |
| /// The protocol that the bidder endpoint is using. |
| /// Possible string values are: |
| /// - "BID_PROTOCOL_UNSPECIFIED" : Placeholder for undefined bid protocol. |
| /// This value should not be used. |
| /// - "GOOGLE_RTB" : Google RTB protocol / Protobuf encoding. |
| /// - "OPENRTB_JSON" : OpenRTB / JSON encoding (unversioned/latest). |
| /// - "OPENRTB_PROTOBUF" : OpenRTB / Protobuf encoding (unversioned/latest). |
| core.String? bidProtocol; |
| |
| /// The maximum number of queries per second allowed to be sent to this |
| /// server. |
| core.String? maximumQps; |
| |
| /// Name of the endpoint resource that must follow the pattern |
| /// `bidders/{bidderAccountId}/endpoints/{endpointId}`, where |
| /// {bidderAccountId} is the account ID of the bidder who operates this |
| /// endpoint, and {endpointId} is a unique ID assigned by the server. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// The trading location that bid requests should be sent from. |
| /// |
| /// See |
| /// https://developers.google.com/authorized-buyers/rtb/peer-guide#trading-locations |
| /// for further information. |
| /// Possible string values are: |
| /// - "TRADING_LOCATION_UNSPECIFIED" : A placeholder for an undefined trading |
| /// region. This value should not be used. |
| /// - "US_WEST" : The Western US trading location. |
| /// - "US_EAST" : The Eastern US trading location. |
| /// - "EUROPE" : The European trading location. |
| /// - "ASIA" : The Asia trading location. |
| core.String? tradingLocation; |
| |
| /// The URL that bid requests should be sent to. |
| /// |
| /// Output only. |
| core.String? url; |
| |
| Endpoint({ |
| this.bidProtocol, |
| this.maximumQps, |
| this.name, |
| this.tradingLocation, |
| this.url, |
| }); |
| |
| Endpoint.fromJson(core.Map json_) |
| : this( |
| bidProtocol: json_['bidProtocol'] as core.String?, |
| maximumQps: json_['maximumQps'] as core.String?, |
| name: json_['name'] as core.String?, |
| tradingLocation: json_['tradingLocation'] as core.String?, |
| url: json_['url'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bidProtocol = this.bidProtocol; |
| final maximumQps = this.maximumQps; |
| final name = this.name; |
| final tradingLocation = this.tradingLocation; |
| final url = this.url; |
| return { |
| 'bidProtocol': ?bidProtocol, |
| 'maximumQps': ?maximumQps, |
| 'name': ?name, |
| 'tradingLocation': ?tradingLocation, |
| 'url': ?url, |
| }; |
| } |
| } |
| |
| /// This has been sunset as of October 2023, and will return an error response |
| /// if called. |
| /// |
| /// For more information, see the release notes: |
| /// https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api |
| /// Response for a request to get remarketing tag. |
| class GetRemarketingTagResponse { |
| /// An HTML tag that can be placed on the advertiser's page to add users to a |
| /// user list. |
| /// |
| /// For more information and code samples on using snippets on your website, |
| /// refer to |
| /// [Tag your site for remarketing](https://support.google.com/google-ads/answer/2476688). |
| core.String? snippet; |
| |
| GetRemarketingTagResponse({this.snippet}); |
| |
| GetRemarketingTagResponse.fromJson(core.Map json_) |
| : this(snippet: json_['snippet'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final snippet = this.snippet; |
| return {'snippet': ?snippet}; |
| } |
| } |
| |
| /// HTML content for a creative. |
| class HtmlContent { |
| /// The height of the HTML snippet in pixels. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| 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. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.int? width; |
| |
| HtmlContent({this.height, this.snippet, this.width}); |
| |
| HtmlContent.fromJson(core.Map json_) |
| : this( |
| height: json_['height'] as core.int?, |
| snippet: json_['snippet'] as core.String?, |
| width: json_['width'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final height = this.height; |
| final snippet = this.snippet; |
| final width = this.width; |
| return {'height': ?height, 'snippet': ?snippet, 'width': ?width}; |
| } |
| } |
| |
| /// HTTP calls made by a creative that resulted in policy violations. |
| class HttpCallEvidence { |
| /// URLs of HTTP calls made by the creative. |
| core.List<core.String>? urls; |
| |
| HttpCallEvidence({this.urls}); |
| |
| HttpCallEvidence.fromJson(core.Map json_) |
| : this( |
| urls: (json_['urls'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final urls = this.urls; |
| return {'urls': ?urls}; |
| } |
| } |
| |
| /// Evidence for HTTP cookie-related policy violations. |
| class HttpCookieEvidence { |
| /// Names of cookies that violate Google policies. |
| /// |
| /// For TOO_MANY_COOKIES policy, this will be the cookie names of top domains |
| /// with the largest number of cookies. For other policies, this will be all |
| /// the cookie names that violate the policy. |
| core.List<core.String>? cookieNames; |
| |
| /// The largest number of cookies set by a creative. |
| /// |
| /// If this field is set, cookie_names above will be set to the cookie names |
| /// of top domains with the largest number of cookies. This field will only be |
| /// set for TOO_MANY_COOKIES policy. |
| core.int? maxCookieCount; |
| |
| HttpCookieEvidence({this.cookieNames, this.maxCookieCount}); |
| |
| HttpCookieEvidence.fromJson(core.Map json_) |
| : this( |
| cookieNames: (json_['cookieNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| maxCookieCount: json_['maxCookieCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final cookieNames = this.cookieNames; |
| final maxCookieCount = this.maxCookieCount; |
| return {'cookieNames': ?cookieNames, 'maxCookieCount': ?maxCookieCount}; |
| } |
| } |
| |
| /// 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({this.height, this.url, this.width}); |
| |
| Image.fromJson(core.Map json_) |
| : this( |
| height: json_['height'] as core.int?, |
| url: json_['url'] as core.String?, |
| width: json_['width'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final height = this.height; |
| final url = this.url; |
| final width = this.width; |
| return {'height': ?height, 'url': ?url, 'width': ?width}; |
| } |
| } |
| |
| /// A response containing bidders. |
| class ListBiddersResponse { |
| /// List of bidders. |
| core.List<Bidder>? bidders; |
| |
| /// A token which can be passed to a subsequent call to the `ListBidders` |
| /// method to retrieve the next page of results in |
| /// ListBiddersRequest.pageToken. |
| core.String? nextPageToken; |
| |
| ListBiddersResponse({this.bidders, this.nextPageToken}); |
| |
| ListBiddersResponse.fromJson(core.Map json_) |
| : this( |
| bidders: (json_['bidders'] as core.List?) |
| ?.map( |
| (value) => |
| Bidder.fromJson(value as core.Map<core.String, core.dynamic>), |
| ) |
| .toList(), |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bidders = this.bidders; |
| final nextPageToken = this.nextPageToken; |
| return {'bidders': ?bidders, 'nextPageToken': ?nextPageToken}; |
| } |
| } |
| |
| /// A response containing buyer account information. |
| class ListBuyersResponse { |
| /// List of buyers. |
| core.List<Buyer>? buyers; |
| |
| /// A token which can be passed to a subsequent call to the `ListBuyers` |
| /// method to retrieve the next page of results in |
| /// ListBuyersRequest.pageToken. |
| core.String? nextPageToken; |
| |
| ListBuyersResponse({this.buyers, this.nextPageToken}); |
| |
| ListBuyersResponse.fromJson(core.Map json_) |
| : this( |
| buyers: (json_['buyers'] as core.List?) |
| ?.map( |
| (value) => |
| Buyer.fromJson(value as core.Map<core.String, core.dynamic>), |
| ) |
| .toList(), |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final buyers = this.buyers; |
| final nextPageToken = this.nextPageToken; |
| return {'buyers': ?buyers, 'nextPageToken': ?nextPageToken}; |
| } |
| } |
| |
| /// A response for listing creatives. |
| class ListCreativesResponse { |
| /// The list of creatives. |
| core.List<Creative>? creatives; |
| |
| /// A token to retrieve the next page of results. |
| /// |
| /// Pass this value in the ListCreativesRequest.pageToken field in the |
| /// subsequent call to the `ListCreatives` method to retrieve the next page of |
| /// results. |
| core.String? nextPageToken; |
| |
| ListCreativesResponse({this.creatives, this.nextPageToken}); |
| |
| ListCreativesResponse.fromJson(core.Map json_) |
| : this( |
| creatives: (json_['creatives'] as core.List?) |
| ?.map( |
| (value) => Creative.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final creatives = this.creatives; |
| final nextPageToken = this.nextPageToken; |
| return {'creatives': ?creatives, 'nextPageToken': ?nextPageToken}; |
| } |
| } |
| |
| /// A response containing bidder endpoints. |
| class ListEndpointsResponse { |
| /// List of bidder endpoints. |
| core.List<Endpoint>? endpoints; |
| |
| /// A token which can be passed to a subsequent call to the `ListEndpoints` |
| /// method to retrieve the next page of results in |
| /// ListEndpointsRequest.pageToken. |
| core.String? nextPageToken; |
| |
| ListEndpointsResponse({this.endpoints, this.nextPageToken}); |
| |
| ListEndpointsResponse.fromJson(core.Map json_) |
| : this( |
| endpoints: (json_['endpoints'] as core.List?) |
| ?.map( |
| (value) => Endpoint.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final endpoints = this.endpoints; |
| final nextPageToken = this.nextPageToken; |
| return {'endpoints': ?endpoints, 'nextPageToken': ?nextPageToken}; |
| } |
| } |
| |
| /// A response containing pretargeting configurations. |
| class ListPretargetingConfigsResponse { |
| /// A token which can be passed to a subsequent call to the |
| /// `ListPretargetingConfigs` method to retrieve the next page of results in |
| /// ListPretargetingConfigsRequest.pageToken. |
| core.String? nextPageToken; |
| |
| /// List of pretargeting configurations. |
| core.List<PretargetingConfig>? pretargetingConfigs; |
| |
| ListPretargetingConfigsResponse({ |
| this.nextPageToken, |
| this.pretargetingConfigs, |
| }); |
| |
| ListPretargetingConfigsResponse.fromJson(core.Map json_) |
| : this( |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| pretargetingConfigs: (json_['pretargetingConfigs'] as core.List?) |
| ?.map( |
| (value) => PretargetingConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nextPageToken = this.nextPageToken; |
| final pretargetingConfigs = this.pretargetingConfigs; |
| return { |
| 'nextPageToken': ?nextPageToken, |
| 'pretargetingConfigs': ?pretargetingConfigs, |
| }; |
| } |
| } |
| |
| /// A response to a request for listing publisher connections. |
| class ListPublisherConnectionsResponse { |
| /// A token to retrieve the next page of results. |
| /// |
| /// Pass this value in the ListPublisherConnectionsRequest.pageToken field in |
| /// the subsequent call to the `ListPublisherConnections` method to retrieve |
| /// the next page of results. |
| core.String? nextPageToken; |
| |
| /// The list of publisher connections. |
| core.List<PublisherConnection>? publisherConnections; |
| |
| ListPublisherConnectionsResponse({ |
| this.nextPageToken, |
| this.publisherConnections, |
| }); |
| |
| ListPublisherConnectionsResponse.fromJson(core.Map json_) |
| : this( |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| publisherConnections: (json_['publisherConnections'] as core.List?) |
| ?.map( |
| (value) => PublisherConnection.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nextPageToken = this.nextPageToken; |
| final publisherConnections = this.publisherConnections; |
| return { |
| 'nextPageToken': ?nextPageToken, |
| 'publisherConnections': ?publisherConnections, |
| }; |
| } |
| } |
| |
| /// The list user list response. |
| class ListUserListsResponse { |
| /// The continuation page token to send back to the server in a subsequent |
| /// request. |
| /// |
| /// Due to a currently known issue, it is recommended that the caller keep |
| /// invoking the list method until the time a next page token is not returned, |
| /// even if the result set is empty. |
| core.String? nextPageToken; |
| |
| /// List of user lists from the search. |
| core.List<UserList>? userLists; |
| |
| ListUserListsResponse({this.nextPageToken, this.userLists}); |
| |
| ListUserListsResponse.fromJson(core.Map json_) |
| : this( |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| userLists: (json_['userLists'] as core.List?) |
| ?.map( |
| (value) => UserList.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final nextPageToken = this.nextPageToken; |
| final userLists = this.userLists; |
| return {'nextPageToken': ?nextPageToken, 'userLists': ?userLists}; |
| } |
| } |
| |
| /// Information about each media file in the VAST. |
| class MediaFile { |
| /// Bitrate of the video file, in Kbps. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? bitrate; |
| |
| /// The MIME type of this media file. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| /// Possible string values are: |
| /// - "VIDEO_MIME_TYPE_UNSPECIFIED" : Default value that should never be used. |
| /// - "MIME_VIDEO_XFLV" : Flash container. |
| /// - "MIME_VIDEO_WEBM" : WebM container assuming VP9 codec. |
| /// - "MIME_VIDEO_MP4" : MPEG-4 container typically with H.264 codec. |
| /// - "MIME_VIDEO_OGG" : Ogg container assuming Theora codec. |
| /// - "MIME_VIDEO_YT_HOSTED" : Video files hosted on YouTube. |
| /// - "MIME_VIDEO_X_MS_WMV" : Windows Media Video Codec. |
| /// - "MIME_VIDEO_3GPP" : 3GPP container format used on 3G phones. |
| /// - "MIME_VIDEO_MOV" : Quicktime container format. |
| /// - "MIME_APPLICATION_SWF" : Shockwave Flash (used for VPAID ads). |
| /// - "MIME_APPLICATION_SURVEY" : Properties of VAST served by consumer |
| /// survey. |
| /// - "MIME_APPLICATION_JAVASCRIPT" : JavaScript (used for VPAID ads). |
| /// - "MIME_APPLICATION_SILVERLIGHT" : Silverlight (used for VPAID ads). |
| /// - "MIME_APPLICATION_MPEGURL" : HLS/M3U8. |
| /// - "MIME_APPLICATION_MPEGDASH" : DASH. |
| /// - "MIME_AUDIO_MP4A" : MPEG-4 audio format. |
| /// - "MIME_AUDIO_MP3" : MPEG-3 audio format. |
| /// - "MIME_AUDIO_OGG" : Ogg audio format |
| core.String? mimeType; |
| |
| MediaFile({this.bitrate, this.mimeType}); |
| |
| MediaFile.fromJson(core.Map json_) |
| : this( |
| bitrate: json_['bitrate'] as core.String?, |
| mimeType: json_['mimeType'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final bitrate = this.bitrate; |
| final mimeType = this.mimeType; |
| return {'bitrate': ?bitrate, 'mimeType': ?mimeType}; |
| } |
| } |
| |
| /// Native content for a creative. |
| class NativeContent { |
| /// The name of the advertiser or sponsor, to be displayed in the ad creative. |
| core.String? advertiserName; |
| |
| /// The app icon, for app download ads. |
| Image? appIcon; |
| |
| /// A long description of the ad. |
| core.String? body; |
| |
| /// A label for the button that the user is supposed to click. |
| core.String? callToAction; |
| |
| /// The URL that the browser/SDK will load when the user clicks the ad. |
| core.String? clickLinkUrl; |
| |
| /// The URL to use for click tracking. |
| core.String? clickTrackingUrl; |
| |
| /// A short title for the ad. |
| core.String? headline; |
| |
| /// A large image. |
| Image? image; |
| |
| /// A smaller image, for the advertiser's logo. |
| Image? logo; |
| |
| /// The price of the promoted app including currency info. |
| core.String? priceDisplayText; |
| |
| /// The app rating in the app store. |
| /// |
| /// Must be in the range \[0-5\]. |
| core.double? starRating; |
| |
| /// The URL to fetch a native video ad. |
| core.String? videoUrl; |
| |
| /// The contents of a VAST document for a native video ad. |
| core.String? videoVastXml; |
| |
| NativeContent({ |
| this.advertiserName, |
| this.appIcon, |
| this.body, |
| this.callToAction, |
| this.clickLinkUrl, |
| this.clickTrackingUrl, |
| this.headline, |
| this.image, |
| this.logo, |
| this.priceDisplayText, |
| this.starRating, |
| this.videoUrl, |
| this.videoVastXml, |
| }); |
| |
| NativeContent.fromJson(core.Map json_) |
| : this( |
| advertiserName: json_['advertiserName'] as core.String?, |
| appIcon: json_.containsKey('appIcon') |
| ? Image.fromJson( |
| json_['appIcon'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| body: json_['body'] as core.String?, |
| callToAction: json_['callToAction'] as core.String?, |
| clickLinkUrl: json_['clickLinkUrl'] as core.String?, |
| clickTrackingUrl: json_['clickTrackingUrl'] as core.String?, |
| headline: json_['headline'] as core.String?, |
| image: json_.containsKey('image') |
| ? Image.fromJson( |
| json_['image'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| logo: json_.containsKey('logo') |
| ? Image.fromJson( |
| json_['logo'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| priceDisplayText: json_['priceDisplayText'] as core.String?, |
| starRating: (json_['starRating'] as core.num?)?.toDouble(), |
| videoUrl: json_['videoUrl'] as core.String?, |
| videoVastXml: json_['videoVastXml'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final advertiserName = this.advertiserName; |
| final appIcon = this.appIcon; |
| final body = this.body; |
| final callToAction = this.callToAction; |
| final clickLinkUrl = this.clickLinkUrl; |
| final clickTrackingUrl = this.clickTrackingUrl; |
| final headline = this.headline; |
| final image = this.image; |
| final logo = this.logo; |
| final priceDisplayText = this.priceDisplayText; |
| final starRating = this.starRating; |
| final videoUrl = this.videoUrl; |
| final videoVastXml = this.videoVastXml; |
| return { |
| 'advertiserName': ?advertiserName, |
| 'appIcon': ?appIcon, |
| 'body': ?body, |
| 'callToAction': ?callToAction, |
| 'clickLinkUrl': ?clickLinkUrl, |
| 'clickTrackingUrl': ?clickTrackingUrl, |
| 'headline': ?headline, |
| 'image': ?image, |
| 'logo': ?logo, |
| 'priceDisplayText': ?priceDisplayText, |
| 'starRating': ?starRating, |
| 'videoUrl': ?videoUrl, |
| 'videoVastXml': ?videoVastXml, |
| }; |
| } |
| } |
| |
| /// Generic targeting used for targeting dimensions that contain a list of |
| /// included and excluded numeric IDs used in app, user list, geo, and vertical |
| /// id targeting. |
| class NumericTargetingDimension { |
| /// The IDs excluded in a config. |
| core.List<core.String>? excludedIds; |
| |
| /// The IDs included in a config. |
| core.List<core.String>? includedIds; |
| |
| NumericTargetingDimension({this.excludedIds, this.includedIds}); |
| |
| NumericTargetingDimension.fromJson(core.Map json_) |
| : this( |
| excludedIds: (json_['excludedIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedIds: (json_['includedIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final excludedIds = this.excludedIds; |
| final includedIds = this.includedIds; |
| return {'excludedIds': ?excludedIds, 'includedIds': ?includedIds}; |
| } |
| } |
| |
| /// A request to open a specified user list. |
| typedef OpenUserListRequest = $Empty; |
| |
| /// Policy compliance of the creative for a transaction type or a region. |
| class PolicyCompliance { |
| /// Serving status for the given transaction type (for example, open auction, |
| /// deals) or region (for example, China, Russia). |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Default value that should never be used. |
| /// - "PENDING_REVIEW" : Creative is pending review. |
| /// - "DISAPPROVED" : Creative cannot serve. |
| /// - "APPROVED" : Creative is approved. |
| /// - "CERTIFICATE_REQUIRED" : Certificates are required for the creative to |
| /// be served in some regions. For more information about creative |
| /// certification, refer to: |
| /// https://support.google.com/authorizedbuyers/answer/7450776 |
| core.String? status; |
| |
| /// Topics related to the policy compliance for this transaction type (for |
| /// example, open auction, deals) or region (for example, China, Russia). |
| /// |
| /// Topics may be present only if status is DISAPPROVED. |
| core.List<PolicyTopicEntry>? topics; |
| |
| PolicyCompliance({this.status, this.topics}); |
| |
| PolicyCompliance.fromJson(core.Map json_) |
| : this( |
| status: json_['status'] as core.String?, |
| topics: (json_['topics'] as core.List?) |
| ?.map( |
| (value) => PolicyTopicEntry.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final status = this.status; |
| final topics = this.topics; |
| return {'status': ?status, 'topics': ?topics}; |
| } |
| } |
| |
| /// Each policy topic entry will represent a violation of a policy topic for a |
| /// creative, with the policy topic information and optional evidence for the |
| /// policy violation. |
| class PolicyTopicEntry { |
| /// Pieces of evidence associated with this policy topic entry. |
| core.List<PolicyTopicEvidence>? evidences; |
| |
| /// URL of the help center article describing this policy topic. |
| core.String? helpCenterUrl; |
| |
| /// Whether or not the policy topic is missing a certificate. |
| /// |
| /// Some policy topics require a certificate to unblock serving in some |
| /// regions. For more information about creative certification, refer to: |
| /// https://support.google.com/authorizedbuyers/answer/7450776 |
| core.bool? missingCertificate; |
| |
| /// Policy topic this entry refers to. |
| /// |
| /// For example, "ALCOHOL", "TRADEMARKS_IN_AD_TEXT", or |
| /// "DESTINATION_NOT_WORKING". The set of possible policy topics is not fixed |
| /// for a particular API version and may change at any time. Can be used to |
| /// filter the response of the creatives.list method |
| core.String? policyTopic; |
| |
| PolicyTopicEntry({ |
| this.evidences, |
| this.helpCenterUrl, |
| this.missingCertificate, |
| this.policyTopic, |
| }); |
| |
| PolicyTopicEntry.fromJson(core.Map json_) |
| : this( |
| evidences: (json_['evidences'] as core.List?) |
| ?.map( |
| (value) => PolicyTopicEvidence.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| helpCenterUrl: json_['helpCenterUrl'] as core.String?, |
| missingCertificate: json_['missingCertificate'] as core.bool?, |
| policyTopic: json_['policyTopic'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final evidences = this.evidences; |
| final helpCenterUrl = this.helpCenterUrl; |
| final missingCertificate = this.missingCertificate; |
| final policyTopic = this.policyTopic; |
| return { |
| 'evidences': ?evidences, |
| 'helpCenterUrl': ?helpCenterUrl, |
| 'missingCertificate': ?missingCertificate, |
| 'policyTopic': ?policyTopic, |
| }; |
| } |
| } |
| |
| /// Evidence associated with a policy topic entry. |
| class PolicyTopicEvidence { |
| /// The creative's destination URL was not crawlable by Google. |
| DestinationNotCrawlableEvidence? destinationNotCrawlable; |
| |
| /// The creative's destination URL did not function properly or was |
| /// incorrectly set up. |
| DestinationNotWorkingEvidence? destinationNotWorking; |
| |
| /// URL of the actual landing page. |
| DestinationUrlEvidence? destinationUrl; |
| |
| /// Number of HTTP calls made by the creative, broken down by domain. |
| DomainCallEvidence? domainCall; |
| |
| /// Total download size and URL-level download size breakdown for resources in |
| /// a creative. |
| DownloadSizeEvidence? downloadSize; |
| |
| /// HTTP calls made by the creative that resulted in policy violations. |
| HttpCallEvidence? httpCall; |
| |
| /// Evidence for HTTP cookie-related policy violations. |
| HttpCookieEvidence? httpCookie; |
| |
| PolicyTopicEvidence({ |
| this.destinationNotCrawlable, |
| this.destinationNotWorking, |
| this.destinationUrl, |
| this.domainCall, |
| this.downloadSize, |
| this.httpCall, |
| this.httpCookie, |
| }); |
| |
| PolicyTopicEvidence.fromJson(core.Map json_) |
| : this( |
| destinationNotCrawlable: json_.containsKey('destinationNotCrawlable') |
| ? DestinationNotCrawlableEvidence.fromJson( |
| json_['destinationNotCrawlable'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| destinationNotWorking: json_.containsKey('destinationNotWorking') |
| ? DestinationNotWorkingEvidence.fromJson( |
| json_['destinationNotWorking'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| destinationUrl: json_.containsKey('destinationUrl') |
| ? DestinationUrlEvidence.fromJson( |
| json_['destinationUrl'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| domainCall: json_.containsKey('domainCall') |
| ? DomainCallEvidence.fromJson( |
| json_['domainCall'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| downloadSize: json_.containsKey('downloadSize') |
| ? DownloadSizeEvidence.fromJson( |
| json_['downloadSize'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| httpCall: json_.containsKey('httpCall') |
| ? HttpCallEvidence.fromJson( |
| json_['httpCall'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| httpCookie: json_.containsKey('httpCookie') |
| ? HttpCookieEvidence.fromJson( |
| json_['httpCookie'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final destinationNotCrawlable = this.destinationNotCrawlable; |
| final destinationNotWorking = this.destinationNotWorking; |
| final destinationUrl = this.destinationUrl; |
| final domainCall = this.domainCall; |
| final downloadSize = this.downloadSize; |
| final httpCall = this.httpCall; |
| final httpCookie = this.httpCookie; |
| return { |
| 'destinationNotCrawlable': ?destinationNotCrawlable, |
| 'destinationNotWorking': ?destinationNotWorking, |
| 'destinationUrl': ?destinationUrl, |
| 'domainCall': ?domainCall, |
| 'downloadSize': ?downloadSize, |
| 'httpCall': ?httpCall, |
| 'httpCookie': ?httpCookie, |
| }; |
| } |
| } |
| |
| /// Pretargeting config: a set of targeting dimensions applied at the |
| /// pretargeting stage of the RTB funnel. |
| /// |
| /// These control which inventory a bidder will receive bid requests for. |
| class PretargetingConfig { |
| /// Targeting modes included by this config. |
| /// |
| /// A bid request must allow all the specified targeting modes. An unset value |
| /// allows all bid requests to be sent, regardless of which targeting modes |
| /// they allow. |
| core.List<core.String>? allowedUserTargetingModes; |
| |
| /// Targeting on a subset of app inventory. |
| /// |
| /// If APP is listed in targeted_environments, the specified targeting is |
| /// applied. A maximum of 30,000 app IDs can be targeted. An unset value for |
| /// targeting allows all app-based bid requests to be sent. Apps can either be |
| /// targeting positively (bid requests will be sent only if the destination |
| /// app is listed in the targeting dimension) or negatively (bid requests will |
| /// be sent only if the destination app is not listed in the targeting |
| /// dimension). |
| AppTargeting? appTargeting; |
| |
| /// The identifier that corresponds to this pretargeting config that helps |
| /// buyers track and attribute their spend across their own arbitrary |
| /// divisions. |
| /// |
| /// If a bid request matches more than one config, the buyer chooses which |
| /// billing_id to attribute each of their bids. |
| /// |
| /// Output only. |
| core.String? billingId; |
| |
| /// The diplay name associated with this config. |
| /// |
| /// This name must be unique among all the pretargeting configs a bidder has. |
| core.String? displayName; |
| |
| /// The sensitive content category label IDs excluded in this config. |
| /// |
| /// Bid requests for inventory with any of the specified content label IDs |
| /// will not be sent. Refer to this file |
| /// https://storage.googleapis.com/adx-rtb-dictionaries/content-labels.txt for |
| /// category IDs. |
| core.List<core.String>? excludedContentLabelIds; |
| |
| /// The geos included or excluded in this config defined in |
| /// https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv |
| NumericTargetingDimension? geoTargeting; |
| |
| /// Creative dimensions included by this config. |
| /// |
| /// Only bid requests eligible for at least one of the specified creative |
| /// dimensions will be sent. An unset value allows all bid requests to be |
| /// sent, regardless of creative dimension. |
| core.List<CreativeDimensions>? includedCreativeDimensions; |
| |
| /// Environments that are being included. |
| /// |
| /// Bid requests will not be sent for a given environment if it is not |
| /// included. Further restrictions can be applied to included environments to |
| /// target only a subset of its inventory. An unset value includes all |
| /// environments. |
| core.List<core.String>? includedEnvironments; |
| |
| /// Creative formats included by this config. |
| /// |
| /// Only bid requests eligible for at least one of the specified creative |
| /// formats will be sent. An unset value will allow all bid requests to be |
| /// sent, regardless of format. |
| core.List<core.String>? includedFormats; |
| |
| /// The languages included in this config, represented by their language code. |
| /// |
| /// See https://developers.google.com/adwords/api/docs/appendix/languagecodes. |
| core.List<core.String>? includedLanguages; |
| |
| /// The mobile operating systems included in this config as defined in |
| /// https://storage.googleapis.com/adx-rtb-dictionaries/mobile-os.csv |
| core.List<core.String>? includedMobileOperatingSystemIds; |
| |
| /// The platforms included by this config. |
| /// |
| /// Bid requests for devices with the specified platform types will be sent. |
| /// An unset value allows all bid requests to be sent, regardless of platform. |
| core.List<core.String>? includedPlatforms; |
| |
| /// User identifier types included in this config. |
| /// |
| /// At least one of the user identifier types specified in this list must be |
| /// available for the bid request to be sent. |
| core.List<core.String>? includedUserIdTypes; |
| |
| /// The interstitial targeting specified for this config. |
| /// |
| /// The unset value will allow bid requests to be sent regardless of whether |
| /// they are for interstitials or not. |
| /// Possible string values are: |
| /// - "INTERSTITIAL_TARGETING_UNSPECIFIED" : Unspecified interstitial |
| /// targeting. Represents an interstitial-agnostic selection. |
| /// - "ONLY_INTERSTITIAL_REQUESTS" : Only bid requests for interstitial |
| /// inventory should be sent. |
| /// - "ONLY_NON_INTERSTITIAL_REQUESTS" : Only bid requests for |
| /// non-interstitial inventory should be sent. |
| core.String? interstitialTargeting; |
| |
| /// Existing included or excluded geos that are invalid. |
| /// |
| /// Previously targeted geos may become invalid due to privacy restrictions. |
| /// |
| /// Output only. |
| core.List<core.String>? invalidGeoIds; |
| |
| /// The maximum QPS threshold for this config. |
| /// |
| /// The bidder should receive no more than this number of bid requests |
| /// matching this config per second across all their bidding endpoints among |
| /// all trading locations. Further information available at |
| /// https://developers.google.com/authorized-buyers/rtb/peer-guide |
| core.String? maximumQps; |
| |
| /// The targeted minimum viewability decile, ranging in values \[0, 10\]. |
| /// |
| /// A value of 5 means that the config will only match adslots for which we |
| /// predict at least 50% viewability. Values \> 10 will be rounded down to 10. |
| /// An unset value or a value of 0 indicates that bid requests will be sent |
| /// regardless of viewability. |
| core.int? minimumViewabilityDecile; |
| |
| /// Name of the pretargeting config that must follow the pattern |
| /// `bidders/{bidder_account_id}/pretargetingConfigs/{config_id}` |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// Targeting on a subset of publisher inventory. |
| /// |
| /// Publishers can either be targeted positively (bid requests will be sent |
| /// only if the publisher is listed in the targeting dimension) or negatively |
| /// (bid requests will be sent only if the publisher is not listed in the |
| /// targeting dimension). A maximum of 10,000 publisher IDs can be targeted. |
| /// Publisher IDs are found in [ads.txt](https://iabtechlab.com/ads-txt/) / |
| /// \[app-ads.txt\](https://iabtechlab.com/app-ads-txt/) and in bid requests |
| /// in the `BidRequest.publisher_id` field on the |
| /// [Google RTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) |
| /// or the `BidRequest.site.publisher.id` / `BidRequest.app.publisher.id` |
| /// field on the |
| /// [OpenRTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto). |
| /// Publisher IDs will be returned in the order that they were entered. |
| StringTargetingDimension? publisherTargeting; |
| |
| /// The state of this pretargeting config. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : Placeholder for undefined state. |
| /// - "ACTIVE" : This pretargeting config is actively being used to filter bid |
| /// requests. |
| /// - "SUSPENDED" : This pretargeting config is suspended and not used in |
| /// serving. |
| core.String? state; |
| |
| /// The remarketing lists included or excluded in this config as defined in |
| /// UserList. |
| NumericTargetingDimension? userListTargeting; |
| |
| /// The verticals included or excluded in this config as defined in |
| /// https://developers.google.com/authorized-buyers/rtb/downloads/publisher-verticals |
| NumericTargetingDimension? verticalTargeting; |
| |
| /// Targeting on a subset of site inventory. |
| /// |
| /// If WEB is listed in included_environments, the specified targeting is |
| /// applied. A maximum of 50,000 site URLs can be targeted. An unset value for |
| /// targeting allows all web-based bid requests to be sent. Sites can either |
| /// be targeting positively (bid requests will be sent only if the destination |
| /// site is listed in the targeting dimension) or negatively (bid requests |
| /// will be sent only if the destination site is not listed in the |
| /// pretargeting config). |
| StringTargetingDimension? webTargeting; |
| |
| PretargetingConfig({ |
| this.allowedUserTargetingModes, |
| this.appTargeting, |
| this.billingId, |
| this.displayName, |
| this.excludedContentLabelIds, |
| this.geoTargeting, |
| this.includedCreativeDimensions, |
| this.includedEnvironments, |
| this.includedFormats, |
| this.includedLanguages, |
| this.includedMobileOperatingSystemIds, |
| this.includedPlatforms, |
| this.includedUserIdTypes, |
| this.interstitialTargeting, |
| this.invalidGeoIds, |
| this.maximumQps, |
| this.minimumViewabilityDecile, |
| this.name, |
| this.publisherTargeting, |
| this.state, |
| this.userListTargeting, |
| this.verticalTargeting, |
| this.webTargeting, |
| }); |
| |
| PretargetingConfig.fromJson(core.Map json_) |
| : this( |
| allowedUserTargetingModes: |
| (json_['allowedUserTargetingModes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| appTargeting: json_.containsKey('appTargeting') |
| ? AppTargeting.fromJson( |
| json_['appTargeting'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| billingId: json_['billingId'] as core.String?, |
| displayName: json_['displayName'] as core.String?, |
| excludedContentLabelIds: |
| (json_['excludedContentLabelIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| geoTargeting: json_.containsKey('geoTargeting') |
| ? NumericTargetingDimension.fromJson( |
| json_['geoTargeting'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| includedCreativeDimensions: |
| (json_['includedCreativeDimensions'] as core.List?) |
| ?.map( |
| (value) => CreativeDimensions.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| includedEnvironments: (json_['includedEnvironments'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedFormats: (json_['includedFormats'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedLanguages: (json_['includedLanguages'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedMobileOperatingSystemIds: |
| (json_['includedMobileOperatingSystemIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedPlatforms: (json_['includedPlatforms'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| includedUserIdTypes: (json_['includedUserIdTypes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| interstitialTargeting: json_['interstitialTargeting'] as core.String?, |
| invalidGeoIds: (json_['invalidGeoIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| maximumQps: json_['maximumQps'] as core.String?, |
| minimumViewabilityDecile: |
| json_['minimumViewabilityDecile'] as core.int?, |
| name: json_['name'] as core.String?, |
| publisherTargeting: json_.containsKey('publisherTargeting') |
| ? StringTargetingDimension.fromJson( |
| json_['publisherTargeting'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| state: json_['state'] as core.String?, |
| userListTargeting: json_.containsKey('userListTargeting') |
| ? NumericTargetingDimension.fromJson( |
| json_['userListTargeting'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| verticalTargeting: json_.containsKey('verticalTargeting') |
| ? NumericTargetingDimension.fromJson( |
| json_['verticalTargeting'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| webTargeting: json_.containsKey('webTargeting') |
| ? StringTargetingDimension.fromJson( |
| json_['webTargeting'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final allowedUserTargetingModes = this.allowedUserTargetingModes; |
| final appTargeting = this.appTargeting; |
| final billingId = this.billingId; |
| final displayName = this.displayName; |
| final excludedContentLabelIds = this.excludedContentLabelIds; |
| final geoTargeting = this.geoTargeting; |
| final includedCreativeDimensions = this.includedCreativeDimensions; |
| final includedEnvironments = this.includedEnvironments; |
| final includedFormats = this.includedFormats; |
| final includedLanguages = this.includedLanguages; |
| final includedMobileOperatingSystemIds = |
| this.includedMobileOperatingSystemIds; |
| final includedPlatforms = this.includedPlatforms; |
| final includedUserIdTypes = this.includedUserIdTypes; |
| final interstitialTargeting = this.interstitialTargeting; |
| final invalidGeoIds = this.invalidGeoIds; |
| final maximumQps = this.maximumQps; |
| final minimumViewabilityDecile = this.minimumViewabilityDecile; |
| final name = this.name; |
| final publisherTargeting = this.publisherTargeting; |
| final state = this.state; |
| final userListTargeting = this.userListTargeting; |
| final verticalTargeting = this.verticalTargeting; |
| final webTargeting = this.webTargeting; |
| return { |
| 'allowedUserTargetingModes': ?allowedUserTargetingModes, |
| 'appTargeting': ?appTargeting, |
| 'billingId': ?billingId, |
| 'displayName': ?displayName, |
| 'excludedContentLabelIds': ?excludedContentLabelIds, |
| 'geoTargeting': ?geoTargeting, |
| 'includedCreativeDimensions': ?includedCreativeDimensions, |
| 'includedEnvironments': ?includedEnvironments, |
| 'includedFormats': ?includedFormats, |
| 'includedLanguages': ?includedLanguages, |
| 'includedMobileOperatingSystemIds': ?includedMobileOperatingSystemIds, |
| 'includedPlatforms': ?includedPlatforms, |
| 'includedUserIdTypes': ?includedUserIdTypes, |
| 'interstitialTargeting': ?interstitialTargeting, |
| 'invalidGeoIds': ?invalidGeoIds, |
| 'maximumQps': ?maximumQps, |
| 'minimumViewabilityDecile': ?minimumViewabilityDecile, |
| 'name': ?name, |
| 'publisherTargeting': ?publisherTargeting, |
| 'state': ?state, |
| 'userListTargeting': ?userListTargeting, |
| 'verticalTargeting': ?verticalTargeting, |
| 'webTargeting': ?webTargeting, |
| }; |
| } |
| } |
| |
| /// An Open Bidding exchange's connection to a publisher. |
| /// |
| /// This is initiated by the publisher for the bidder to review. If approved by |
| /// the bidder, this means that the bidder agrees to receive bid requests from |
| /// the publisher. |
| class PublisherConnection { |
| /// Whether the publisher has been approved by the bidder. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : An unspecified bidding status. |
| /// - "PENDING" : Indicates a request for connection from the publisher that |
| /// the bidder needs to review. |
| /// - "REJECTED" : Indicates that the publisher was rejected. |
| /// - "APPROVED" : Indicates that the publisher was approved. |
| core.String? biddingState; |
| |
| /// The time at which the publisher initiated a connection with the bidder |
| /// (irrespective of if or when the bidder approves it). |
| /// |
| /// This is subsequently updated if the publisher revokes and re-initiates the |
| /// connection. |
| /// |
| /// Output only. |
| core.String? createTime; |
| |
| /// Publisher display name. |
| /// |
| /// Output only. |
| core.String? displayName; |
| |
| /// Name of the publisher connection. |
| /// |
| /// This follows the pattern |
| /// `bidders/{bidder}/publisherConnections/{publisher}`, where `{bidder}` |
| /// represents the account ID of the bidder, and `{publisher}` is the |
| /// ads.txt/app-ads.txt publisher ID. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// Whether the publisher is an Ad Manager or AdMob publisher. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "PUBLISHER_PLATFORM_UNSPECIFIED" : An unspecified publisher platform. |
| /// - "GOOGLE_AD_MANAGER" : A Google Ad Manager publisher. |
| /// - "ADMOB" : An AdMob publisher. |
| core.String? publisherPlatform; |
| |
| PublisherConnection({ |
| this.biddingState, |
| this.createTime, |
| this.displayName, |
| this.name, |
| this.publisherPlatform, |
| }); |
| |
| PublisherConnection.fromJson(core.Map json_) |
| : this( |
| biddingState: json_['biddingState'] as core.String?, |
| createTime: json_['createTime'] as core.String?, |
| displayName: json_['displayName'] as core.String?, |
| name: json_['name'] as core.String?, |
| publisherPlatform: json_['publisherPlatform'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final biddingState = this.biddingState; |
| final createTime = this.createTime; |
| final displayName = this.displayName; |
| final name = this.name; |
| final publisherPlatform = this.publisherPlatform; |
| return { |
| 'biddingState': ?biddingState, |
| 'createTime': ?createTime, |
| 'displayName': ?displayName, |
| 'name': ?name, |
| 'publisherPlatform': ?publisherPlatform, |
| }; |
| } |
| } |
| |
| /// A request to stop targeting the provided apps in a specific pretargeting |
| /// configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these apps are targeted. |
| /// in PretargetingConfig.appTargeting.mobileAppTargeting. |
| class RemoveTargetedAppsRequest { |
| /// A list of app IDs to stop targeting in the pretargeting configuration. |
| /// |
| /// These values will be removed from the list of targeted app IDs in |
| /// PretargetingConfig.appTargeting.mobileAppTargeting.values. |
| core.List<core.String>? appIds; |
| |
| RemoveTargetedAppsRequest({this.appIds}); |
| |
| RemoveTargetedAppsRequest.fromJson(core.Map json_) |
| : this( |
| appIds: (json_['appIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final appIds = this.appIds; |
| return {'appIds': ?appIds}; |
| } |
| } |
| |
| /// A request to stop targeting publishers in a specific configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these publishers are |
| /// targeted in PretargetingConfig.publisherTargeting. |
| class RemoveTargetedPublishersRequest { |
| /// A list of publisher IDs to stop targeting in the pretargeting |
| /// configuration. |
| /// |
| /// These values will be removed from the list of targeted publisher IDs in |
| /// PretargetingConfig.publisherTargeting.values. Publishers are identified by |
| /// their publisher ID from ads.txt / app-ads.txt. See |
| /// https://iabtechlab.com/ads-txt/ and https://iabtechlab.com/app-ads-txt/ |
| /// for more details. |
| core.List<core.String>? publisherIds; |
| |
| RemoveTargetedPublishersRequest({this.publisherIds}); |
| |
| RemoveTargetedPublishersRequest.fromJson(core.Map json_) |
| : this( |
| publisherIds: (json_['publisherIds'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final publisherIds = this.publisherIds; |
| return {'publisherIds': ?publisherIds}; |
| } |
| } |
| |
| /// A request to stop targeting sites in a specific pretargeting configuration. |
| /// |
| /// The pretargeting configuration itself specifies how these sites are targeted |
| /// in PretargetingConfig.webTargeting. |
| class RemoveTargetedSitesRequest { |
| /// A list of site URLs to stop targeting in the pretargeting configuration. |
| /// |
| /// These values will be removed from the list of targeted URLs in |
| /// PretargetingConfig.webTargeting.values. |
| core.List<core.String>? sites; |
| |
| RemoveTargetedSitesRequest({this.sites}); |
| |
| RemoveTargetedSitesRequest.fromJson(core.Map json_) |
| : this( |
| sites: (json_['sites'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final sites = this.sites; |
| return {'sites': ?sites}; |
| } |
| } |
| |
| /// Generic targeting with string values used in app, website and publisher |
| /// targeting. |
| class StringTargetingDimension { |
| /// How the items in this list should be targeted. |
| /// Possible string values are: |
| /// - "TARGETING_MODE_UNSPECIFIED" : Placeholder for undefined targeting mode. |
| /// - "INCLUSIVE" : The inclusive list type. Inventory must match an item in |
| /// this list to be targeted. |
| /// - "EXCLUSIVE" : The exclusive list type. Inventory must not match any item |
| /// in this list to be targeted. |
| core.String? targetingMode; |
| |
| /// The values specified. |
| core.List<core.String>? values; |
| |
| StringTargetingDimension({this.targetingMode, this.values}); |
| |
| StringTargetingDimension.fromJson(core.Map json_) |
| : this( |
| targetingMode: json_['targetingMode'] as core.String?, |
| values: (json_['values'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final targetingMode = this.targetingMode; |
| final values = this.values; |
| return {'targetingMode': ?targetingMode, 'values': ?values}; |
| } |
| } |
| |
| /// A request to suspend a pretargeting configuration. |
| /// |
| /// Sets the configuration's state to SUSPENDED. |
| typedef SuspendPretargetingConfigRequest = $Empty; |
| |
| /// The URL-level breakdown for the download size. |
| class UrlDownloadSize { |
| /// Download size of the URL in kilobytes. |
| core.int? downloadSizeKb; |
| |
| /// The normalized URL with query parameters and fragment removed. |
| core.String? normalizedUrl; |
| |
| UrlDownloadSize({this.downloadSizeKb, this.normalizedUrl}); |
| |
| UrlDownloadSize.fromJson(core.Map json_) |
| : this( |
| downloadSizeKb: json_['downloadSizeKb'] as core.int?, |
| normalizedUrl: json_['normalizedUrl'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final downloadSizeKb = this.downloadSizeKb; |
| final normalizedUrl = this.normalizedUrl; |
| return {'downloadSizeKb': ?downloadSizeKb, 'normalizedUrl': ?normalizedUrl}; |
| } |
| } |
| |
| /// This will be removed in October 2023. |
| /// |
| /// For more information, see the release notes: |
| /// https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api |
| /// Represents the URL restriction (for the URL captured by the pixel callback) |
| /// for a user list. |
| /// |
| /// Deprecated. |
| class UrlRestriction { |
| /// End date (if specified) of the URL restriction. |
| /// |
| /// End date should be later than the start date for the date range to be |
| /// valid. |
| Date? endDate; |
| |
| /// The restriction type for the specified URL. |
| /// Possible string values are: |
| /// - "RESTRICTION_TYPE_UNSPECIFIED" : Default value that should never be |
| /// used. |
| /// - "CONTAINS" : The tag URL (as recorded by the pixel callback) contains |
| /// the specified URL. |
| /// - "EQUALS" : The tag URL (as recorded by the pixel callback) exactly |
| /// matches the specified URL. |
| /// - "STARTS_WITH" : The tag URL (as recorded by the pixel callback) starts |
| /// with the specified URL. |
| /// - "ENDS_WITH" : The tag URL (as recorded by the pixel callback) ends with |
| /// the specified URL. |
| /// - "DOES_NOT_EQUAL" : The tag URL (as recorded by the pixel callback) does |
| /// not equal the specified URL. |
| /// - "DOES_NOT_CONTAIN" : The tag URL (as recorded by the pixel callback) |
| /// does not contain the specified URL. |
| /// - "DOES_NOT_START_WITH" : The tag URL (as recorded by the pixel callback) |
| /// does not start with the specified URL. |
| /// - "DOES_NOT_END_WITH" : The tag URL (as recorded by the pixel callback) |
| /// does not end with the specified URL. |
| core.String? restrictionType; |
| |
| /// Start date (if specified) of the URL restriction. |
| Date? startDate; |
| |
| /// The URL to use for applying the restriction on the user list. |
| /// |
| /// Required. |
| core.String? url; |
| |
| UrlRestriction({ |
| this.endDate, |
| this.restrictionType, |
| this.startDate, |
| this.url, |
| }); |
| |
| UrlRestriction.fromJson(core.Map json_) |
| : this( |
| endDate: json_.containsKey('endDate') |
| ? Date.fromJson( |
| json_['endDate'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| restrictionType: json_['restrictionType'] as core.String?, |
| startDate: json_.containsKey('startDate') |
| ? Date.fromJson( |
| json_['startDate'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| url: json_['url'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final endDate = this.endDate; |
| final restrictionType = this.restrictionType; |
| final startDate = this.startDate; |
| final url = this.url; |
| return { |
| 'endDate': ?endDate, |
| 'restrictionType': ?restrictionType, |
| 'startDate': ?startDate, |
| 'url': ?url, |
| }; |
| } |
| } |
| |
| /// Represents an Authorized Buyers user list. |
| /// |
| /// Authorized Buyers can create/update/list user lists. Once a user list is |
| /// created in the system, Authorized Buyers can add users to the user list |
| /// using the bulk uploader API. Alternatively, users can be added by hosting a |
| /// tag on the advertiser's page. |
| class UserList { |
| /// The description for the user list. |
| core.String? description; |
| |
| /// Display name of the user list. |
| /// |
| /// This must be unique across all user lists for a given account. |
| /// |
| /// Required. |
| core.String? displayName; |
| |
| /// The number of days a user's cookie stays on the user list. |
| /// |
| /// The field must be between 0 and 540 inclusive. |
| /// |
| /// Required. |
| core.String? membershipDurationDays; |
| |
| /// Name of the user list that must follow the pattern |
| /// `buyers/{buyer}/userLists/{user_list}`, where `{buyer}` represents the |
| /// account ID of the buyer who owns the user list. |
| /// |
| /// For a bidder accessing user lists on behalf of a child seat buyer, |
| /// `{buyer}` represents the account ID of the child seat buyer. `{user_list}` |
| /// is an int64 identifier assigned by Google to uniquely identify a user |
| /// list. |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// The status of the user list. |
| /// |
| /// A new user list starts out as open. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : Default value that should never be used. |
| /// - "OPEN" : New users can be added to the user list. |
| /// - "CLOSED" : New users cannot be added to the user list. |
| core.String? status; |
| |
| /// This will be removed in October 2023. |
| /// |
| /// For more information, see the release notes: |
| /// https://developers.google.com/authorized-buyers/apis/relnotes#real-time-bidding-api |
| /// The URL restriction for the user list. |
| /// |
| /// Required. Deprecated. |
| UrlRestriction? urlRestriction; |
| |
| UserList({ |
| this.description, |
| this.displayName, |
| this.membershipDurationDays, |
| this.name, |
| this.status, |
| this.urlRestriction, |
| }); |
| |
| UserList.fromJson(core.Map json_) |
| : this( |
| description: json_['description'] as core.String?, |
| displayName: json_['displayName'] as core.String?, |
| membershipDurationDays: json_['membershipDurationDays'] as core.String?, |
| name: json_['name'] as core.String?, |
| status: json_['status'] as core.String?, |
| urlRestriction: json_.containsKey('urlRestriction') |
| ? UrlRestriction.fromJson( |
| json_['urlRestriction'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final description = this.description; |
| final displayName = this.displayName; |
| final membershipDurationDays = this.membershipDurationDays; |
| final name = this.name; |
| final status = this.status; |
| final urlRestriction = this.urlRestriction; |
| return { |
| 'description': ?description, |
| 'displayName': ?displayName, |
| 'membershipDurationDays': ?membershipDurationDays, |
| 'name': ?name, |
| 'status': ?status, |
| 'urlRestriction': ?urlRestriction, |
| }; |
| } |
| } |
| |
| /// Video content for a creative. |
| class VideoContent { |
| /// Video metadata. |
| /// |
| /// Output only. |
| VideoMetadata? videoMetadata; |
| |
| /// The URL to fetch a video ad. |
| /// |
| /// The URL should return an XML response that conforms to the VAST 2.0, 3.0 |
| /// or 4.x standard. |
| core.String? videoUrl; |
| |
| /// The contents of a VAST document for a video ad. |
| /// |
| /// This document should conform to the VAST 2.0, 3.0, or 4.x standard. |
| core.String? videoVastXml; |
| |
| VideoContent({this.videoMetadata, this.videoUrl, this.videoVastXml}); |
| |
| VideoContent.fromJson(core.Map json_) |
| : this( |
| videoMetadata: json_.containsKey('videoMetadata') |
| ? VideoMetadata.fromJson( |
| json_['videoMetadata'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| videoUrl: json_['videoUrl'] as core.String?, |
| videoVastXml: json_['videoVastXml'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final videoMetadata = this.videoMetadata; |
| final videoUrl = this.videoUrl; |
| final videoVastXml = this.videoVastXml; |
| return { |
| 'videoMetadata': ?videoMetadata, |
| 'videoUrl': ?videoUrl, |
| 'videoVastXml': ?videoVastXml, |
| }; |
| } |
| } |
| |
| /// Video metadata for a creative. |
| class VideoMetadata { |
| /// The duration of the ad. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| core.String? duration; |
| |
| /// Is this a valid VAST ad? Can be used to filter the response of the |
| /// creatives.list method. |
| core.bool? isValidVast; |
| |
| /// Is this a VPAID ad? Can be used to filter the response of the |
| /// creatives.list method. |
| core.bool? isVpaid; |
| |
| /// The list of all media files declared in the VAST. |
| /// |
| /// If there are multiple VASTs in a wrapper chain, this includes the media |
| /// files from the deepest one in the chain. |
| core.List<MediaFile>? mediaFiles; |
| |
| /// The minimum duration that the user has to watch before being able to skip |
| /// this ad. |
| /// |
| /// If the field is not set, the ad is not skippable. If the field is set, the |
| /// ad is skippable. Can be used to filter the response of the creatives.list |
| /// method. |
| core.String? skipOffset; |
| |
| /// The maximum VAST version across all wrapped VAST documents. |
| /// |
| /// Can be used to filter the response of the creatives.list method. |
| /// Possible string values are: |
| /// - "VAST_VERSION_UNSPECIFIED" : Default value that should never be used. |
| /// - "VAST_VERSION_1_0" : VAST 1.0 |
| /// - "VAST_VERSION_2_0" : VAST 2.0 |
| /// - "VAST_VERSION_3_0" : VAST 3.0 |
| /// - "VAST_VERSION_4_0" : VAST 4.0 |
| core.String? vastVersion; |
| |
| VideoMetadata({ |
| this.duration, |
| this.isValidVast, |
| this.isVpaid, |
| this.mediaFiles, |
| this.skipOffset, |
| this.vastVersion, |
| }); |
| |
| VideoMetadata.fromJson(core.Map json_) |
| : this( |
| duration: json_['duration'] as core.String?, |
| isValidVast: json_['isValidVast'] as core.bool?, |
| isVpaid: json_['isVpaid'] as core.bool?, |
| mediaFiles: (json_['mediaFiles'] as core.List?) |
| ?.map( |
| (value) => MediaFile.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| skipOffset: json_['skipOffset'] as core.String?, |
| vastVersion: json_['vastVersion'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final duration = this.duration; |
| final isValidVast = this.isValidVast; |
| final isVpaid = this.isVpaid; |
| final mediaFiles = this.mediaFiles; |
| final skipOffset = this.skipOffset; |
| final vastVersion = this.vastVersion; |
| return { |
| 'duration': ?duration, |
| 'isValidVast': ?isValidVast, |
| 'isVpaid': ?isVpaid, |
| 'mediaFiles': ?mediaFiles, |
| 'skipOffset': ?skipOffset, |
| 'vastVersion': ?vastVersion, |
| }; |
| } |
| } |
| |
| /// A request to receive push notifications when any of the creatives belonging |
| /// to the bidder changes status. |
| typedef WatchCreativesRequest = $Empty; |
| |
| /// A response for the request to receive push notification when a bidder's |
| /// creatives change status. |
| class WatchCreativesResponse { |
| /// The Pub/Sub subscription that can be used to pull creative status |
| /// notifications. |
| /// |
| /// This would be of the format |
| /// `projects/{project_id}/subscriptions/{subscription_id}`. Subscription is |
| /// created with pull delivery. All service accounts belonging to the bidder |
| /// will have read access to this subscription. Subscriptions that are |
| /// inactive for more than 90 days will be disabled. Use watchCreatives to |
| /// re-enable the subscription. |
| core.String? subscription; |
| |
| /// The Pub/Sub topic that will be used to publish creative serving status |
| /// notifications. |
| /// |
| /// This would be of the format `projects/{project_id}/topics/{topic_id}`. |
| core.String? topic; |
| |
| WatchCreativesResponse({this.subscription, this.topic}); |
| |
| WatchCreativesResponse.fromJson(core.Map json_) |
| : this( |
| subscription: json_['subscription'] as core.String?, |
| topic: json_['topic'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() { |
| final subscription = this.subscription; |
| final topic = this.topic; |
| return {'subscription': ?subscription, 'topic': ?topic}; |
| } |
| } |