# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module AdmobV1beta # Describes an AdMob ad unit. class AdUnit include Google::Apis::Core::Hashable # AdFormat of the ad unit. Possible values are as follows: "BANNER" - Banner ad # format. "BANNER_INTERSTITIAL" - Legacy format that can be used as either # banner or interstitial. This format can no longer be created but can be # targeted by mediation groups. "INTERSTITIAL" - A full screen ad. Supported ad # types are "RICH_MEDIA" and "VIDEO". "NATIVE" - Native ad format. "REWARDED" - # An ad that, once viewed, gets a callback verifying the view so that a reward # can be given to the user. Supported ad types are "RICH_MEDIA" (interactive) # and video where video can not be excluded. # Corresponds to the JSON property `adFormat` # @return [String] attr_accessor :ad_format # Ad media type supported by this ad unit. Possible values as follows: " # RICH_MEDIA" - Text, image, and other non-video media. "VIDEO" - Video media. # Corresponds to the JSON property `adTypes` # @return [Array] attr_accessor :ad_types # The externally visible ID of the ad unit which can be used to integrate with # the AdMob SDK. This is a read only property. Example: ca-app-pub- # 9876543210987654/0123456789 # Corresponds to the JSON property `adUnitId` # @return [String] attr_accessor :ad_unit_id # The externally visible ID of the app this ad unit is associated with. Example: # ca-app-pub-9876543210987654~0123456789 # Corresponds to the JSON property `appId` # @return [String] attr_accessor :app_id # The display name of the ad unit as shown in the AdMob UI, which is provided by # the user. The maximum length allowed is 80 characters. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Resource name for this ad unit. Format is accounts/`publisher_id`/adUnits/` # ad_unit_id_fragment` Example: accounts/pub-9876543210987654/adUnits/0123456789 # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_format = args[:ad_format] if args.key?(:ad_format) @ad_types = args[:ad_types] if args.key?(:ad_types) @ad_unit_id = args[:ad_unit_id] if args.key?(:ad_unit_id) @app_id = args[:app_id] if args.key?(:app_id) @display_name = args[:display_name] if args.key?(:display_name) @name = args[:name] if args.key?(:name) end end # Describes an AdMob app for a specific platform (For example: Android or iOS). class App include Google::Apis::Core::Hashable # The externally visible ID of the app which can be used to integrate with the # AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654~ # 0123456789 # Corresponds to the JSON property `appId` # @return [String] attr_accessor :app_id # Information from the app store if the app is linked to an app store. # Corresponds to the JSON property `linkedAppInfo` # @return [Google::Apis::AdmobV1beta::AppLinkedAppInfo] attr_accessor :linked_app_info # Information provided for manual apps which are not linked to an application # store (Example: Google Play, App Store). # Corresponds to the JSON property `manualAppInfo` # @return [Google::Apis::AdmobV1beta::AppManualAppInfo] attr_accessor :manual_app_info # Resource name for this app. Format is accounts/`publisher_id`/apps/` # app_id_fragment` Example: accounts/pub-9876543210987654/apps/0123456789 # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Describes the platform of the app. Limited to "IOS" and "ANDROID". # Corresponds to the JSON property `platform` # @return [String] attr_accessor :platform def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @app_id = args[:app_id] if args.key?(:app_id) @linked_app_info = args[:linked_app_info] if args.key?(:linked_app_info) @manual_app_info = args[:manual_app_info] if args.key?(:manual_app_info) @name = args[:name] if args.key?(:name) @platform = args[:platform] if args.key?(:platform) end end # Information from the app store if the app is linked to an app store. class AppLinkedAppInfo include Google::Apis::Core::Hashable # The app store ID of the app; present if and only if the app is linked to an # app store. If the app is added to the Google Play store, it will be the # application ID of the app. For example: "com.example.myapp". See https:// # developer.android.com/studio/build/application-id. If the app is added to the # Apple App Store, it will be app store ID. For example "105169111". Note that # setting the app store id is considered an irreversible action. Once an app is # linked, it cannot be unlinked. # Corresponds to the JSON property `appStoreId` # @return [String] attr_accessor :app_store_id # Output only. Display name of the app as it appears in the app store. This is # an output-only field, and may be empty if the app cannot be found in the store. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @app_store_id = args[:app_store_id] if args.key?(:app_store_id) @display_name = args[:display_name] if args.key?(:display_name) end end # Information provided for manual apps which are not linked to an application # store (Example: Google Play, App Store). class AppManualAppInfo include Google::Apis::Core::Hashable # The display name of the app as shown in the AdMob UI, which is provided by the # user. The maximum length allowed is 80 characters. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) end end # 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 value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as a credit card expiration date Related types are google.type.TimeOfDay and ` # google.protobuf.Timestamp`. class Date include Google::Apis::Core::Hashable # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to # specify a year by itself or a year and month where the day isn't significant. # Corresponds to the JSON property `day` # @return [Fixnum] attr_accessor :day # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month # and day. # Corresponds to the JSON property `month` # @return [Fixnum] attr_accessor :month # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a # year. # Corresponds to the JSON property `year` # @return [Fixnum] attr_accessor :year def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @day = args[:day] if args.key?(:day) @month = args[:month] if args.key?(:month) @year = args[:year] if args.key?(:year) end end # Specification of a single date range. Both dates are inclusive. class DateRange include Google::Apis::Core::Hashable # 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 value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as a credit card expiration date Related types are google.type.TimeOfDay and ` # google.protobuf.Timestamp`. # Corresponds to the JSON property `endDate` # @return [Google::Apis::AdmobV1beta::Date] attr_accessor :end_date # 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 value, with a zero year, such as an anniversary * A year on its own, # with zero month and day values * A year and month value, with a zero day, such # as a credit card expiration date Related types are google.type.TimeOfDay and ` # google.protobuf.Timestamp`. # Corresponds to the JSON property `startDate` # @return [Google::Apis::AdmobV1beta::Date] attr_accessor :start_date def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_date = args[:end_date] if args.key?(:end_date) @start_date = args[:start_date] if args.key?(:start_date) end end # Request to generate an AdMob Mediation report. class GenerateMediationReportRequest include Google::Apis::Core::Hashable # The specification for generating an AdMob Mediation report. For example, the # specification to get observed ECPM sliced by ad source and app for the 'US' # and 'CN' countries can look like the following example: ` "date_range": ` " # start_date": `"year": 2018, "month": 9, "day": 1`, "end_date": `"year": 2018, " # month": 9, "day": 30` `, "dimensions": ["AD_SOURCE", "APP", "COUNTRY"], " # metrics": ["OBSERVED_ECPM"], "dimension_filters": [ ` "dimension": "COUNTRY", " # matches_any": `"values": [`"value": "US", "value": "CN"`]` ` ], " # sort_conditions": [ `"dimension":"APP", order: "ASCENDING"` ], " # localization_settings": ` "currency_code": "USD", "language_code": "en-US" ` ` # For a better understanding, you can treat the preceding specification like the # following pseudo SQL: SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM FROM # MEDIATION_REPORT WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' AND # COUNTRY IN ('US', 'CN') GROUP BY AD_SOURCE, APP, COUNTRY ORDER BY APP ASC; # Corresponds to the JSON property `reportSpec` # @return [Google::Apis::AdmobV1beta::MediationReportSpec] attr_accessor :report_spec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @report_spec = args[:report_spec] if args.key?(:report_spec) end end # The streaming response for the AdMob Mediation report where the first response # contains the report header, then a stream of row responses, and finally a # footer as the last response message. For example: [` "header": ` "date_range": # ` "start_date": `"year": 2018, "month": 9, "day": 1`, "end_date": `"year": # 2018, "month": 9, "day": 1` `, "localization_settings": ` "currency_code": " # USD", "language_code": "en-US" ` ` `, ` "row": ` "dimension_values": ` "DATE": # `"value": "20180918"`, "APP": ` "value": "ca-app-pub-8123415297019784~ # 1001342552", "display_label": "My app name!" ` `, "metric_values": ` " # ESTIMATED_EARNINGS": `"decimal_value": "1324746"` ` ` `, ` "footer": `" # matching_row_count": 1` `] class GenerateMediationReportResponse include Google::Apis::Core::Hashable # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. # Corresponds to the JSON property `footer` # @return [Google::Apis::AdmobV1beta::ReportFooter] attr_accessor :footer # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. # Corresponds to the JSON property `header` # @return [Google::Apis::AdmobV1beta::ReportHeader] attr_accessor :header # A row of the returning report. # Corresponds to the JSON property `row` # @return [Google::Apis::AdmobV1beta::ReportRow] attr_accessor :row def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @footer = args[:footer] if args.key?(:footer) @header = args[:header] if args.key?(:header) @row = args[:row] if args.key?(:row) end end # Request to generate an AdMob Network report. class GenerateNetworkReportRequest include Google::Apis::Core::Hashable # The specification for generating an AdMob Network report. For example, the # specification to get clicks and estimated earnings for only the 'US' and 'CN' # countries can look like the following example: ` 'date_range': ` 'start_date': # `'year': 2018, 'month': 9, 'day': 1`, 'end_date': `'year': 2018, 'month': 9, ' # day': 30` `, 'dimensions': ['DATE', 'APP', 'COUNTRY'], 'metrics': ['CLICKS', ' # ESTIMATED_EARNINGS'], 'dimension_filters': [ ` 'dimension': 'COUNTRY', ' # matches_any': `'values': [`'value': 'US', 'value': 'CN'`]` ` ], ' # sort_conditions': [ `'dimension':'APP', order: 'ASCENDING'`, `'metric':'CLICKS' # , order: 'DESCENDING'` ], 'localization_settings': ` 'currency_code': 'USD', ' # language_code': 'en-US' ` ` For a better understanding, you can treat the # preceding specification like the following pseudo SQL: SELECT DATE, APP, # COUNTRY, CLICKS, ESTIMATED_EARNINGS FROM NETWORK_REPORT WHERE DATE >= '2018-09- # 01' AND DATE <= '2018-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY DATE, APP, # COUNTRY ORDER BY APP ASC, CLICKS DESC; # Corresponds to the JSON property `reportSpec` # @return [Google::Apis::AdmobV1beta::NetworkReportSpec] attr_accessor :report_spec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @report_spec = args[:report_spec] if args.key?(:report_spec) end end # The streaming response for the AdMob Network report where the first response # contains the report header, then a stream of row responses, and finally a # footer as the last response message. For example: [` "header": ` "dateRange": ` # "startDate": `"year": 2018, "month": 9, "day": 1`, "endDate": `"year": 2018, " # month": 9, "day": 1` `, "localizationSettings": ` "currencyCode": "USD", " # languageCode": "en-US" ` ` `, ` "row": ` "dimensionValues": ` "DATE": `"value": # "20180918"`, "APP": ` "value": "ca-app-pub-8123415297019784~1001342552", # displayLabel: "My app name!" ` `, "metricValues": ` "ESTIMATED_EARNINGS": `" # microsValue": 6500000` ` ` `, ` "footer": `"matchingRowCount": 1` `] class GenerateNetworkReportResponse include Google::Apis::Core::Hashable # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. # Corresponds to the JSON property `footer` # @return [Google::Apis::AdmobV1beta::ReportFooter] attr_accessor :footer # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. # Corresponds to the JSON property `header` # @return [Google::Apis::AdmobV1beta::ReportHeader] attr_accessor :header # A row of the returning report. # Corresponds to the JSON property `row` # @return [Google::Apis::AdmobV1beta::ReportRow] attr_accessor :row def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @footer = args[:footer] if args.key?(:footer) @header = args[:header] if args.key?(:header) @row = args[:row] if args.key?(:row) end end # Response for the ad units list request. class ListAdUnitsResponse include Google::Apis::Core::Hashable # The resulting ad units for the requested account. # Corresponds to the JSON property `adUnits` # @return [Array] attr_accessor :ad_units # If not empty, indicates that there may be more ad units for the request; this # value should be passed in a new `ListAdUnitsRequest`. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ad_units = args[:ad_units] if args.key?(:ad_units) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response for the apps list request. class ListAppsResponse include Google::Apis::Core::Hashable # The resulting apps for the requested account. # Corresponds to the JSON property `apps` # @return [Array] attr_accessor :apps # If not empty, indicates that there may be more apps for the request; this # value should be passed in a new `ListAppsRequest`. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @apps = args[:apps] if args.key?(:apps) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response for the publisher account list request. class ListPublisherAccountsResponse include Google::Apis::Core::Hashable # Publisher that the client credentials can access. # Corresponds to the JSON property `account` # @return [Array] attr_accessor :account # If not empty, indicates that there might be more accounts for the request; you # must pass this value in a new `ListPublisherAccountsRequest`. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @account = args[:account] if args.key?(:account) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. class LocalizationSettings include Google::Apis::Core::Hashable # Currency code of the earning related metrics, which is the 3-letter code # defined in ISO 4217. The daily average rate is used for the currency # conversion. Defaults to the account currency code if unspecified. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Language used for any localized text, such as some dimension value display # labels. The language tag defined in the IETF BCP47. Defaults to 'en-US' if # unspecified. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @currency_code = args[:currency_code] if args.key?(:currency_code) @language_code = args[:language_code] if args.key?(:language_code) end end # The specification for generating an AdMob Mediation report. For example, the # specification to get observed ECPM sliced by ad source and app for the 'US' # and 'CN' countries can look like the following example: ` "date_range": ` " # start_date": `"year": 2018, "month": 9, "day": 1`, "end_date": `"year": 2018, " # month": 9, "day": 30` `, "dimensions": ["AD_SOURCE", "APP", "COUNTRY"], " # metrics": ["OBSERVED_ECPM"], "dimension_filters": [ ` "dimension": "COUNTRY", " # matches_any": `"values": [`"value": "US", "value": "CN"`]` ` ], " # sort_conditions": [ `"dimension":"APP", order: "ASCENDING"` ], " # localization_settings": ` "currency_code": "USD", "language_code": "en-US" ` ` # For a better understanding, you can treat the preceding specification like the # following pseudo SQL: SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM FROM # MEDIATION_REPORT WHERE DATE >= '2018-09-01' AND DATE <= '2018-09-30' AND # COUNTRY IN ('US', 'CN') GROUP BY AD_SOURCE, APP, COUNTRY ORDER BY APP ASC; class MediationReportSpec include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1beta::DateRange] attr_accessor :date_range # Describes which report rows to match based on their dimension values. # Corresponds to the JSON property `dimensionFilters` # @return [Array] attr_accessor :dimension_filters # List of dimensions of the report. The value combination of these dimensions # determines the row of the report. If no dimensions are specified, the report # returns a single row of requested metrics for the entire account. # Corresponds to the JSON property `dimensions` # @return [Array] attr_accessor :dimensions # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1beta::LocalizationSettings] attr_accessor :localization_settings # Maximum number of report data rows to return. If the value is not set, the API # returns as many rows as possible, up to 100000. Acceptable values are 1-100000, # inclusive. Values larger than 100000 return an error. # Corresponds to the JSON property `maxReportRows` # @return [Fixnum] attr_accessor :max_report_rows # List of metrics of the report. A report must specify at least one metric. # Corresponds to the JSON property `metrics` # @return [Array] attr_accessor :metrics # Describes the sorting of report rows. The order of the condition in the list # defines its precedence; the earlier the condition, the higher its precedence. # If no sort conditions are specified, the row ordering is undefined. # Corresponds to the JSON property `sortConditions` # @return [Array] attr_accessor :sort_conditions # A report time zone. Accepts an IANA TZ name values, such as "America/ # Los_Angeles." If no time zone is defined, the account default takes effect. # Check default value by the get account action. **Warning:** The "America/ # Los_Angeles" is the only supported value at the moment. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @dimension_filters = args[:dimension_filters] if args.key?(:dimension_filters) @dimensions = args[:dimensions] if args.key?(:dimensions) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @max_report_rows = args[:max_report_rows] if args.key?(:max_report_rows) @metrics = args[:metrics] if args.key?(:metrics) @sort_conditions = args[:sort_conditions] if args.key?(:sort_conditions) @time_zone = args[:time_zone] if args.key?(:time_zone) end end # Describes which report rows to match based on their dimension values. class MediationReportSpecDimensionFilter include Google::Apis::Core::Hashable # Applies the filter criterion to the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # List of string values. # Corresponds to the JSON property `matchesAny` # @return [Google::Apis::AdmobV1beta::StringList] attr_accessor :matches_any def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @matches_any = args[:matches_any] if args.key?(:matches_any) end end # Sorting direction to be applied on a dimension or a metric. class MediationReportSpecSortCondition include Google::Apis::Core::Hashable # Sort by the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # Sort by the specified metric. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # Sorting order of the dimension or metric. # Corresponds to the JSON property `order` # @return [String] attr_accessor :order def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @metric = args[:metric] if args.key?(:metric) @order = args[:order] if args.key?(:order) end end # The specification for generating an AdMob Network report. For example, the # specification to get clicks and estimated earnings for only the 'US' and 'CN' # countries can look like the following example: ` 'date_range': ` 'start_date': # `'year': 2018, 'month': 9, 'day': 1`, 'end_date': `'year': 2018, 'month': 9, ' # day': 30` `, 'dimensions': ['DATE', 'APP', 'COUNTRY'], 'metrics': ['CLICKS', ' # ESTIMATED_EARNINGS'], 'dimension_filters': [ ` 'dimension': 'COUNTRY', ' # matches_any': `'values': [`'value': 'US', 'value': 'CN'`]` ` ], ' # sort_conditions': [ `'dimension':'APP', order: 'ASCENDING'`, `'metric':'CLICKS' # , order: 'DESCENDING'` ], 'localization_settings': ` 'currency_code': 'USD', ' # language_code': 'en-US' ` ` For a better understanding, you can treat the # preceding specification like the following pseudo SQL: SELECT DATE, APP, # COUNTRY, CLICKS, ESTIMATED_EARNINGS FROM NETWORK_REPORT WHERE DATE >= '2018-09- # 01' AND DATE <= '2018-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY DATE, APP, # COUNTRY ORDER BY APP ASC, CLICKS DESC; class NetworkReportSpec include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1beta::DateRange] attr_accessor :date_range # Describes which report rows to match based on their dimension values. # Corresponds to the JSON property `dimensionFilters` # @return [Array] attr_accessor :dimension_filters # List of dimensions of the report. The value combination of these dimensions # determines the row of the report. If no dimensions are specified, the report # returns a single row of requested metrics for the entire account. # Corresponds to the JSON property `dimensions` # @return [Array] attr_accessor :dimensions # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1beta::LocalizationSettings] attr_accessor :localization_settings # Maximum number of report data rows to return. If the value is not set, the API # returns as many rows as possible, up to 100000. Acceptable values are 1-100000, # inclusive. Values larger than 100000 return an error. # Corresponds to the JSON property `maxReportRows` # @return [Fixnum] attr_accessor :max_report_rows # List of metrics of the report. A report must specify at least one metric. # Corresponds to the JSON property `metrics` # @return [Array] attr_accessor :metrics # Describes the sorting of report rows. The order of the condition in the list # defines its precedence; the earlier the condition, the higher its precedence. # If no sort conditions are specified, the row ordering is undefined. # Corresponds to the JSON property `sortConditions` # @return [Array] attr_accessor :sort_conditions # A report time zone. Accepts an IANA TZ name values, such as "America/ # Los_Angeles." If no time zone is defined, the account default takes effect. # Check default value by the get account action. **Warning:** The "America/ # Los_Angeles" is the only supported value at the moment. # Corresponds to the JSON property `timeZone` # @return [String] attr_accessor :time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @dimension_filters = args[:dimension_filters] if args.key?(:dimension_filters) @dimensions = args[:dimensions] if args.key?(:dimensions) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @max_report_rows = args[:max_report_rows] if args.key?(:max_report_rows) @metrics = args[:metrics] if args.key?(:metrics) @sort_conditions = args[:sort_conditions] if args.key?(:sort_conditions) @time_zone = args[:time_zone] if args.key?(:time_zone) end end # Describes which report rows to match based on their dimension values. class NetworkReportSpecDimensionFilter include Google::Apis::Core::Hashable # Applies the filter criterion to the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # List of string values. # Corresponds to the JSON property `matchesAny` # @return [Google::Apis::AdmobV1beta::StringList] attr_accessor :matches_any def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @matches_any = args[:matches_any] if args.key?(:matches_any) end end # Sorting direction to be applied on a dimension or a metric. class NetworkReportSpecSortCondition include Google::Apis::Core::Hashable # Sort by the specified dimension. # Corresponds to the JSON property `dimension` # @return [String] attr_accessor :dimension # Sort by the specified metric. # Corresponds to the JSON property `metric` # @return [String] attr_accessor :metric # Sorting order of the dimension or metric. # Corresponds to the JSON property `order` # @return [String] attr_accessor :order def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension = args[:dimension] if args.key?(:dimension) @metric = args[:metric] if args.key?(:metric) @order = args[:order] if args.key?(:order) end end # A publisher account contains information relevant to the use of this API, such # as the time zone used for the reports. class PublisherAccount include Google::Apis::Core::Hashable # Currency code of the earning-related metrics, which is the 3-letter code # defined in ISO 4217. The daily average rate is used for the currency # conversion. # Corresponds to the JSON property `currencyCode` # @return [String] attr_accessor :currency_code # Resource name of this account. Format is accounts/`publisher_id`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The unique ID by which this publisher account can be identified in the API # requests (for example, pub-1234567890). # Corresponds to the JSON property `publisherId` # @return [String] attr_accessor :publisher_id # The time zone that is used in reports that are generated for this account. The # value is a time-zone ID as specified by the CLDR project, for example, " # America/Los_Angeles". # Corresponds to the JSON property `reportingTimeZone` # @return [String] attr_accessor :reporting_time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @currency_code = args[:currency_code] if args.key?(:currency_code) @name = args[:name] if args.key?(:name) @publisher_id = args[:publisher_id] if args.key?(:publisher_id) @reporting_time_zone = args[:reporting_time_zone] if args.key?(:reporting_time_zone) end end # Groups data available after report generation, for example, warnings and row # counts. Always sent as the last message in the stream response. class ReportFooter include Google::Apis::Core::Hashable # Total number of rows that matched the request. Warning: This count does NOT # always match the number of rows in the response. Do not make that assumption # when processing the response. # Corresponds to the JSON property `matchingRowCount` # @return [Fixnum] attr_accessor :matching_row_count # Warnings associated with generation of the report. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @matching_row_count = args[:matching_row_count] if args.key?(:matching_row_count) @warnings = args[:warnings] if args.key?(:warnings) end end # Groups data helps to treat the generated report. Always sent as a first # message in the stream response. class ReportHeader include Google::Apis::Core::Hashable # Specification of a single date range. Both dates are inclusive. # Corresponds to the JSON property `dateRange` # @return [Google::Apis::AdmobV1beta::DateRange] attr_accessor :date_range # Localization settings for reports, such as currency and language. It affects # how metrics are calculated. # Corresponds to the JSON property `localizationSettings` # @return [Google::Apis::AdmobV1beta::LocalizationSettings] attr_accessor :localization_settings # The report time zone. The value is a time-zone ID as specified by the CLDR # project, for example, "America/Los_Angeles". # Corresponds to the JSON property `reportingTimeZone` # @return [String] attr_accessor :reporting_time_zone def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date_range = args[:date_range] if args.key?(:date_range) @localization_settings = args[:localization_settings] if args.key?(:localization_settings) @reporting_time_zone = args[:reporting_time_zone] if args.key?(:reporting_time_zone) end end # A row of the returning report. class ReportRow include Google::Apis::Core::Hashable # Map of dimension values in a row, with keys as enum name of the dimensions. # Corresponds to the JSON property `dimensionValues` # @return [Hash] attr_accessor :dimension_values # Map of metric values in a row, with keys as enum name of the metrics. If a # metric being requested has no value returned, the map will not include it. # Corresponds to the JSON property `metricValues` # @return [Hash] attr_accessor :metric_values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dimension_values = args[:dimension_values] if args.key?(:dimension_values) @metric_values = args[:metric_values] if args.key?(:metric_values) end end # Representation of a dimension value. class ReportRowDimensionValue include Google::Apis::Core::Hashable # The localized string representation of the value. If unspecified, the display # label should be derived from the value. # Corresponds to the JSON property `displayLabel` # @return [String] attr_accessor :display_label # Dimension value in the format specified in the report's spec Dimension enum. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_label = args[:display_label] if args.key?(:display_label) @value = args[:value] if args.key?(:value) end end # Representation of a metric value. class ReportRowMetricValue include Google::Apis::Core::Hashable # Double precision (approximate) decimal values. Rates are from 0 to 1. # Corresponds to the JSON property `doubleValue` # @return [Float] attr_accessor :double_value # Metric integer value. # Corresponds to the JSON property `integerValue` # @return [Fixnum] attr_accessor :integer_value # Amount in micros. One million is equivalent to one unit. Currency value is in # the unit (USD, EUR or other) specified by the request. For example, $6.50 # whould be represented as 6500000 micros. # Corresponds to the JSON property `microsValue` # @return [Fixnum] attr_accessor :micros_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @double_value = args[:double_value] if args.key?(:double_value) @integer_value = args[:integer_value] if args.key?(:integer_value) @micros_value = args[:micros_value] if args.key?(:micros_value) end end # Warnings associated with generation of the report. class ReportWarning include Google::Apis::Core::Hashable # Describes the details of the warning message, in English. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Type of the warning. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @type = args[:type] if args.key?(:type) end end # List of string values. class StringList include Google::Apis::Core::Hashable # The string values. # Corresponds to the JSON property `values` # @return [Array] attr_accessor :values def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @values = args[:values] if args.key?(:values) end end end end end