2020-01-31 00:37:48 +00:00
|
|
|
# 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 AdmobV1
|
|
|
|
|
|
|
|
# Represents a whole or partial calendar date, e.g. a birthday. The time of day
|
|
|
|
# and time zone are either specified elsewhere or are not significant. The date
|
|
|
|
# is relative to the Proleptic Gregorian Calendar. This can represent:
|
|
|
|
# * A full date, with non-zero year, month and day values
|
|
|
|
# * A month and day value, with a zero year, e.g. an anniversary
|
|
|
|
# * A year on its own, with zero month and day values
|
|
|
|
# * A year and month value, with a zero day, e.g. a credit card expiration date
|
|
|
|
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
|
|
|
|
class Date
|
|
|
|
include Google::Apis::Core::Hashable
|
|
|
|
|
|
|
|
# Day of month. Must be from 1 to 31 and valid for the year and month, or 0
|
|
|
|
# if specifying a year by itself or a year and month where the day is not
|
|
|
|
# significant.
|
|
|
|
# Corresponds to the JSON property `day`
|
|
|
|
# @return [Fixnum]
|
|
|
|
attr_accessor :day
|
|
|
|
|
|
|
|
# Month of year. Must be from 1 to 12, or 0 if specifying a year without a
|
|
|
|
# month and day.
|
|
|
|
# Corresponds to the JSON property `month`
|
|
|
|
# @return [Fixnum]
|
|
|
|
attr_accessor :month
|
|
|
|
|
|
|
|
# Year of date. Must be from 1 to 9999, or 0 if specifying 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, e.g. a birthday. The time of day
|
|
|
|
# and time zone are either specified elsewhere or are not significant. The date
|
|
|
|
# is relative to the Proleptic Gregorian Calendar. This can represent:
|
|
|
|
# * A full date, with non-zero year, month and day values
|
|
|
|
# * A month and day value, with a zero year, e.g. an anniversary
|
|
|
|
# * A year on its own, with zero month and day values
|
|
|
|
# * A year and month value, with a zero day, e.g. a credit card expiration date
|
|
|
|
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
|
|
|
|
# Corresponds to the JSON property `endDate`
|
|
|
|
# @return [Google::Apis::AdmobV1::Date]
|
|
|
|
attr_accessor :end_date
|
|
|
|
|
|
|
|
# Represents a whole or partial calendar date, e.g. a birthday. The time of day
|
|
|
|
# and time zone are either specified elsewhere or are not significant. The date
|
|
|
|
# is relative to the Proleptic Gregorian Calendar. This can represent:
|
|
|
|
# * A full date, with non-zero year, month and day values
|
|
|
|
# * A month and day value, with a zero year, e.g. an anniversary
|
|
|
|
# * A year on its own, with zero month and day values
|
|
|
|
# * A year and month value, with a zero day, e.g. a credit card expiration date
|
|
|
|
# Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
|
|
|
|
# Corresponds to the JSON property `startDate`
|
|
|
|
# @return [Google::Apis::AdmobV1::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::AdmobV1::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`,
|
2020-06-04 00:38:16 +00:00
|
|
|
# "end_date": `"year": 2018, "month": 9, "day": 1`
|
|
|
|
# `,
|
2020-01-31 00:37:48 +00:00
|
|
|
# "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::AdmobV1::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::AdmobV1::ReportHeader]
|
|
|
|
attr_accessor :header
|
|
|
|
|
|
|
|
# A row of the returning report.
|
|
|
|
# Corresponds to the JSON property `row`
|
|
|
|
# @return [Google::Apis::AdmobV1::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::AdmobV1::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`,
|
2020-06-04 00:38:16 +00:00
|
|
|
# "endDate": `"year": 2018, "month": 9, "day": 1`
|
|
|
|
# `,
|
2020-01-31 00:37:48 +00:00
|
|
|
# "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`
|
|
|
|
# `
|
|
|
|
# `
|
|
|
|
# `,
|
|
|
|
# `
|
2020-06-04 00:38:16 +00:00
|
|
|
# "footer": `"matchingRowCount": 1`
|
2020-01-31 00:37:48 +00:00
|
|
|
# `]
|
|
|
|
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::AdmobV1::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::AdmobV1::ReportHeader]
|
|
|
|
attr_accessor :header
|
|
|
|
|
|
|
|
# A row of the returning report.
|
|
|
|
# Corresponds to the JSON property `row`
|
|
|
|
# @return [Google::Apis::AdmobV1::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 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<Google::Apis::AdmobV1::PublisherAccount>]
|
|
|
|
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::AdmobV1::DateRange]
|
|
|
|
attr_accessor :date_range
|
|
|
|
|
|
|
|
# Describes which report rows to match based on their dimension values.
|
|
|
|
# Corresponds to the JSON property `dimensionFilters`
|
|
|
|
# @return [Array<Google::Apis::AdmobV1::MediationReportSpecDimensionFilter>]
|
|
|
|
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<String>]
|
|
|
|
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::AdmobV1::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. Any other values are treated as 100000.
|
|
|
|
# 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<String>]
|
|
|
|
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<Google::Apis::AdmobV1::MediationReportSpecSortCondition>]
|
|
|
|
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::AdmobV1::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::AdmobV1::DateRange]
|
|
|
|
attr_accessor :date_range
|
|
|
|
|
|
|
|
# Describes which report rows to match based on their dimension values.
|
|
|
|
# Corresponds to the JSON property `dimensionFilters`
|
|
|
|
# @return [Array<Google::Apis::AdmobV1::NetworkReportSpecDimensionFilter>]
|
|
|
|
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<String>]
|
|
|
|
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::AdmobV1::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. Any other values are treated as 100000.
|
|
|
|
# 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<String>]
|
|
|
|
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<Google::Apis::AdmobV1::NetworkReportSpecSortCondition>]
|
|
|
|
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::AdmobV1::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 did match the request.
|
|
|
|
# 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<Google::Apis::AdmobV1::ReportWarning>]
|
|
|
|
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::AdmobV1::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::AdmobV1::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<String,Google::Apis::AdmobV1::ReportRowDimensionValue>]
|
|
|
|
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<String,Google::Apis::AdmobV1::ReportRowMetricValue>]
|
|
|
|
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<String>]
|
|
|
|
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
|