REST Resource: properties.reportTasks

资源:ReportTask

特定报告任务配置。

JSON 表示法
{
  "name": string,
  "reportDefinition": {
    object (ReportDefinition)
  },
  "reportMetadata": {
    object (ReportMetadata)
  }
}
字段
name

string

仅限输出。标识符。创建期间分配的报告任务资源名称。格式:“properties/{property}/reportTasks/{reportTask}”

reportDefinition

object (ReportDefinition)

可选。用于提取报告数据的报告定义,描述了报告的结构。它通常包括将包含在报告中的字段以及用于过滤数据的条件。

reportMetadata

object (ReportMetadata)

仅限输出。特定报告任务的报告元数据,用于提供报告的相关信息。它通常包括以下信息:报告的资源名称、报告状态、创建报告的时间戳等。

ReportDefinition

有关如何生成报告的定义。

JSON 表示法
{
  "dimensions": [
    {
      object (Dimension)
    }
  ],
  "metrics": [
    {
      object (Metric)
    }
  ],
  "dateRanges": [
    {
      object (DateRange)
    }
  ],
  "dimensionFilter": {
    object (FilterExpression)
  },
  "metricFilter": {
    object (FilterExpression)
  },
  "offset": string,
  "limit": string,
  "metricAggregations": [
    enum (MetricAggregation)
  ],
  "orderBys": [
    {
      object (OrderBy)
    }
  ],
  "currencyCode": string,
  "cohortSpec": {
    object (CohortSpec)
  },
  "keepEmptyRows": boolean
}
字段
dimensions[]

object (Dimension)

可选。请求并显示的维度。

metrics[]

object (Metric)

可选。请求并显示的指标。

dateRanges[]

object (DateRange)

可选。要读取的数据的日期范围。如果请求了多个日期范围,则每个响应行都将包含一个从零开始的日期范围索引。如果两个日期范围重叠,则重叠日期的事件数据会同时包含在这两个日期范围的响应行中。在同类群组请求中,必须未指定此 dateRanges

dimensionFilter

object (FilterExpression)

可选。借助维度过滤条件,您可以只要求在报告中提供特定的维度值。要了解详情,请参阅维度过滤条件基础知识中的示例。此过滤条件中不能使用指标。

metricFilter

object (FilterExpression)

可选。指标的过滤子句。在汇总报告行后应用,类似于 SQL 的包含子句。维度不能用于此过滤条件。

offset

string (int64 format)

可选。Google Analytics 存储空间中起始行的行数。第一行计为第 0 行。

创建报告任务时,offsetlimit 参数定义了 Google Analytics 存储空间中要包含在生成的报告中的数据行子集。例如,如果 Google Analytics 存储空间中总共有 300,000 行,则初始报告任务可以有前 10,000 行,上限为 10,000 行,偏移量为 0。随后,另一个报告任务可以涵盖接下来的 10,000 行,行数上限为 10,000,偏移量为 10,000。

limit

string (int64 format)

可选。要在报告中返回的行数。如果未指定,则返回 10,000 行。无论您要求返回多少行,对于每个请求,API 最多只能返回 25 万行。limit 必须为正数。

如果维度值没有 limit 那么多,API 返回的行数也可能少于所请求的 limit 行数。例如,如果维度“country”的可能值少于 300 个,那么当针对“country”生成报告时,即使您将“limit”设置为更大的值,行数也不会超过 300 行。

metricAggregations[]

enum (MetricAggregation)

可选。指标汇总。汇总的指标值显示在维度值设为“RESERVED_(MetricAggregation)”的行中。

orderBys[]

object (OrderBy)

可选。指定响应中各行的排序方式。

currencyCode

string

可选。采用 ISO4217 格式的货币代码,例如“AED”“USD”“JPY”。如果此字段为空,报告将使用媒体资源的默认货币。

cohortSpec

object (CohortSpec)

可选。与此请求关联的同类群组。如果请求中包含同类群组组,则为“同类群组”维度。

keepEmptyRows

boolean

可选。如果为 false 或未指定,则系统不会返回所有指标都等于 0 的每一行。如果为 true,系统将返回这些行,前提是它们没有被过滤器单独移除。

无论这项 keepEmptyRows 设置为何,报告中都只能显示由 Google Analytics (GA4) 媒体资源记录的数据。

例如,如果媒体资源从不记录 purchase 事件,那么针对 eventName 维度和 eventCount 指标的查询将不会有包含 eventName: "purchase" 的行和 eventCount:0。

维度

“维度”是指数据的属性。例如,“城市”维度表示事件发起城市。报告响应中的维度值是字符串;例如,城市可以是“巴黎”或“纽约”

JSON 表示法
{
  "name": string,
  "dimensionExpression": {
    object (DimensionExpression)
  }
}
字段
name

string

维度的名称。有关核心报告方法(例如 runReportbatchRunReports)支持的维度名称的列表,请参阅 API 维度。如需查看 runRealtimeReport 方法支持的维度名称列表,请参阅实时维度。有关 runFunnelReport 方法支持的维度名称列表,请参阅漏斗维度

如果指定了 dimensionExpression,则 name 可以是允许的字符集内的您想要的任何字符串。例如,如果 dimensionExpressioncountrycity 串联起来,那么您可以将该维度命名为 countryAndCity。您选择的维度名称必须与正则表达式 ^[a-zA-Z0-9_]$ 匹配。

维度由 dimensionFilterorderBysdimensionExpressionpivots 中的 name 引用。

dimensionExpression

object (DimensionExpression)

一个维度可以是多个维度表达式的结果。例如,维度“国家/地区, 城市”:concatenate(country, ", ", city)。

DimensionExpression

用于表示由多个维度的公式计算得出的维度。用法示例:1) lowerCase(维度) 2) concatenate(dimension1, sign, dimension2)。

JSON 表示法
{

  // Union field one_expression can be only one of the following:
  "lowerCase": {
    object (CaseExpression)
  },
  "upperCase": {
    object (CaseExpression)
  },
  "concatenate": {
    object (ConcatenateExpression)
  }
  // End of list of possible types for union field one_expression.
}
字段
联合字段 one_expression。为 DimensionExpression 指定一种类型的维度表达式。one_expression 只能是下列其中一项:
lowerCase

object (CaseExpression)

用于将维度值转换为小写。

upperCase

object (CaseExpression)

用于将维度值转换为大写。

concatenate

object (ConcatenateExpression)

用于将多个维度值合并为一个维度。例如,维度“国家/地区, 城市”:concatenate(country, ", ", city)。

CaseExpression

用于将维度值转换为单一 case。

JSON 表示法
{
  "dimensionName": string
}
字段
dimensionName

string

维度的名称。该名称必须引用请求的维度字段中的名称。

ConcatenateExpression

用于将多个维度值合并为一个维度。

JSON 表示法
{
  "dimensionNames": [
    string
  ],
  "delimiter": string
}
字段
dimensionNames[]

string

维度的名称。这些名称必须引用请求的维度字段中的名称。

delimiter

string

维度名称之间的分隔符。

分隔符通常是单个字符,如“|”或“,”但可以是较长的字符串。如果某个维度值包含分隔符,它们会同时出现在响应中且没有区别。例如,如果维度 1 的值 =“US,FR”,维度 2 的值 =“JP”,分隔符 =“,”,则响应将包含“US,FR,JP”。

指标

报告的量化衡量标准。例如,eventCount 指标表示事件总数。最多允许请求 10 个指标。

JSON 表示法
{
  "name": string,
  "expression": string,
  "invisible": boolean
}
字段
name

string

指标的名称。有关核心报告方法(例如 runReportbatchRunReports)支持的指标名称的列表,请参阅 API 指标。如需查看 runRealtimeReport 方法支持的指标名称列表,请参阅实时指标。如需查看 runFunnelReport 方法支持的指标名称列表,请参阅漏斗指标

如果指定了 expression,则 name 可以是允许的字符集内的您想要的任何字符串。例如,如果 expressionscreenPageViews/sessions,则您可以将该指标的名称命名为 viewsPerSession。您选择的指标名称必须与正则表达式 ^[a-zA-Z0-9_]$ 匹配。

namemetricFilterorderBys 和指标 expression 中引用了指标。

expression

string

派生指标的数学表达式。例如,“每位用户的事件数”指标为 eventCount/totalUsers

invisible

boolean

指明某个指标是否在报告响应中不可见。如果某个指标不可见,则它不会在响应中生成列,但可以在 metricFilterorderBys 或指标 expression 中使用。

DateRange

一组连续的日期:startDatestartDate + 1、...、endDate。最多允许 4 个日期范围。

JSON 表示法
{
  "startDate": string,
  "endDate": string,
  "name": string
}
字段
startDate

string

查询的开始日期(包含此日期),格式为 YYYY-MM-DD。不得晚于 endDate。系统也接受 NdaysAgoyesterdaytoday 格式,在这种情况下,系统会根据媒体资源的报告时区推断出日期。

endDate

string

查询的结束日期(包含此结束日期),格式为 YYYY-MM-DD。不得早于 startDate。系统也接受 NdaysAgoyesterdaytoday 格式,在这种情况下,系统会根据媒体资源的报告时区推断出日期。

name

string

为此日期范围指定名称。报告响应中,维度“dateRange”的值为此名称。如果已设置,则不能以 date_range_RESERVED_ 开头。如果未设置,则日期范围将按照请求中的索引(从零开始)命名:date_range_0date_range_1 等。

FilterExpression

表示维度或指标过滤条件。同一过滤器表达式中的字段必须是所有维度或所有指标。

JSON 表示法
{

  // Union field expr can be only one of the following:
  "andGroup": {
    object (FilterExpressionList)
  },
  "orGroup": {
    object (FilterExpressionList)
  },
  "notExpression": {
    object (FilterExpression)
  },
  "filter": {
    object (Filter)
  }
  // End of list of possible types for union field expr.
}
字段
联合字段 expr。为 FilterExpression 指定一种类型的过滤器表达式。expr 只能是下列其中一项:
andGroup

object (FilterExpressionList)

andGroup 中的 Filter 表达式具有 AND 关系。

orGroup

object (FilterExpressionList)

orGroup 中的 Filter 表达式具有 OR 关系。

notExpression

object (FilterExpression)

Filter 表达式 不是 notExpress 表达式。

filter

object (Filter)

原初过滤器。在同一个过滤器表达式中,过滤器的所有字段名称必须是所有维度或所有指标。

FilterExpressionList

过滤表达式列表。

JSON 表示法
{
  "expressions": [
    {
      object (FilterExpression)
    }
  ]
}
字段
expressions[]

object (FilterExpression)

过滤表达式列表。

过滤

用于过滤维度或指标值的表达式。

JSON 表示法
{
  "fieldName": string,

  // Union field one_filter can be only one of the following:
  "stringFilter": {
    object (StringFilter)
  },
  "inListFilter": {
    object (InListFilter)
  },
  "numericFilter": {
    object (NumericFilter)
  },
  "betweenFilter": {
    object (BetweenFilter)
  }
  // End of list of possible types for union field one_filter.
}
字段
fieldName

string

维度名称或指标名称。必须是维度或指标中定义的名称。

联合字段 one_filter。为 Filter 指定一种类型的过滤条件。one_filter 只能是下列其中一项:
stringFilter

object (StringFilter)

与字符串相关的过滤条件。

inListFilter

object (InListFilter)

列表中值的过滤条件。

numericFilter

object (NumericFilter)

数值或日期值的过滤器。

betweenFilter

object (BetweenFilter)

介于两个值之间的过滤条件。

StringFilter

字符串的过滤器

JSON 表示法
{
  "matchType": enum (MatchType),
  "value": string,
  "caseSensitive": boolean
}
字段
matchType

enum (MatchType)

此过滤器的匹配类型。

value

string

用于匹配的字符串值。

caseSensitive

boolean

如果为 true,则字符串值区分大小写。

MatchType

字符串过滤条件的匹配类型

枚举
MATCH_TYPE_UNSPECIFIED 未指定
EXACT 与字符串值完全匹配。
BEGINS_WITH 以字符串值开头。
ENDS_WITH 以字符串值结尾。
CONTAINS 包含字符串值。
FULL_REGEXP 具有字符串值的正则表达式的完全匹配。
PARTIAL_REGEXP 具有字符串值的正则表达式的部分匹配。

InListFilter

结果必须是字符串值列表。

JSON 表示法
{
  "values": [
    string
  ],
  "caseSensitive": boolean
}
字段
values[]

string

字符串值列表。不得为空。

caseSensitive

boolean

如果为 true,则字符串值区分大小写。

NumericFilter

用于过滤数字值或日期值。

JSON 表示法
{
  "operation": enum (Operation),
  "value": {
    object (NumericValue)
  }
}
字段
operation

enum (Operation)

此过滤器的操作类型。

value

object (NumericValue)

数值或日期值。

操作

对数值过滤器应用的运算

枚举
OPERATION_UNSPECIFIED 未指定。
EQUAL 等于
LESS_THAN 小于
LESS_THAN_OR_EQUAL 小于或等于
GREATER_THAN 大于
GREATER_THAN_OR_EQUAL 大于或等于

NumericValue

用于表示数字。

JSON 表示法
{

  // Union field one_value can be only one of the following:
  "int64Value": string,
  "doubleValue": number
  // End of list of possible types for union field one_value.
}
字段
联合字段 one_value。数值 one_value 只能是下列其中一项:
int64Value

string (int64 format)

整数值

doubleValue

number

DoubleValue

BetweenFilter

用于表示结果需要介于两个数字(包括这两个数字)之间。

JSON 表示法
{
  "fromValue": {
    object (NumericValue)
  },
  "toValue": {
    object (NumericValue)
  }
}
字段
fromValue

object (NumericValue)

以此数字开头。

toValue

object (NumericValue)

以此数字结尾。

MetricAggregation

表示指标的汇总。

枚举
METRIC_AGGREGATION_UNSPECIFIED 未指定的运算符。
TOTAL SUM 运算符。
MINIMUM 最小运算符。
MAXIMUM 运算符数量上限。
COUNT 计数运算符。

OrderBy

排序依据定义了响应中的行排序方式。例如,按事件数降序对行进行排序,按事件名称字符串对行排序是一种不同的排序。

JSON 表示法
{
  "desc": boolean,

  // Union field one_order_by can be only one of the following:
  "metric": {
    object (MetricOrderBy)
  },
  "dimension": {
    object (DimensionOrderBy)
  }
  // End of list of possible types for union field one_order_by.
}
字段
desc

boolean

如果为 true,则按降序排序。

联合字段 one_order_by。为 OrderBy 指定一种排序依据类型。one_order_by 只能是下列其中一项:
metric

object (MetricOrderBy)

按指标值对结果进行排序。

dimension

object (DimensionOrderBy)

按维度值对结果进行排序。

MetricOrderBy

按指标值排序。

JSON 表示法
{
  "metricName": string
}
字段
metricName

string

排序依据请求中的指标名称。

DimensionOrderBy

按维度值排序。

JSON 表示法
{
  "dimensionName": string,
  "orderType": enum (OrderType)
}
字段
dimensionName

string

排序依据的请求中的维度名称。

orderType

enum (OrderType)

控制维度值排序规则。

OrderType

字符串维度值排序规则。

枚举
ORDER_TYPE_UNSPECIFIED 未指定。
ALPHANUMERIC 按 Unicode 代码点排序的字母数字。例如,"2"<“A”<“X”<“b”<"z"。
CASE_INSENSITIVE_ALPHANUMERIC 按小写 Unicode 代码点排序的字母数字(不区分大小写)。例如,"2"<“A”<“b”<“X”<"z"。
NUMERIC 维度值会在排序前转换为数字。例如,在排序依据为 NUMERIC 时:“25”<“100”;在 ALPHANUMERIC 中,排序依据为“100”<“25”。非数字维度值在所有数值下方均具有相同的排序值。

CohortSpec

同类群组报告的同类群组规范。

同类群组报告会为同类群组创建用户留存率时间序列。例如,您可以选择在 9 月第一周获取的用户同类群组,并在接下来的 6 周内关注该同类群组。在 cohort 对象中指定在 9 月同类群组的第 1 周获取的用户。在 cohortsRange 对象中指定该同类群组后接下来的六周。

如需查看示例,请参阅同类群组报告示例

报告响应可以显示每周时间序列,其中您的应用在 3 周后保留了该同类群组的 60%,在 6 周后保留了该同类群组的 25%。这两个百分比可以按“cohortActiveUsers/cohortTotalUsers”指标计算,在报告中显示为单独的行。

JSON 表示法
{
  "cohorts": [
    {
      object (Cohort)
    }
  ],
  "cohortsRange": {
    object (CohortsRange)
  },
  "cohortReportSettings": {
    object (CohortReportSettings)
  }
}
字段
cohorts[]

object (Cohort)

定义将用户划分到同类群组的选择条件。

大多数同类群组报告仅定义一个同类群组。如果指定了多个同类群组,则在报告中可以通过每个同类群组的名称识别每个同类群组。

cohortsRange

object (CohortsRange)

同类群组报告跟踪的是在更长的报告日期范围内的同类群组。此范围指定同类群组的偏移时长。

cohortReportSettings

object (CohortReportSettings)

同类群组报告的可选设置。

同类群组

定义同类群组选择条件。同类群组是具有共同特征的一组用户。例如,具有相同 firstSessionDate 的用户属于同一个同类群组。

JSON 表示法
{
  "name": string,
  "dimension": string,
  "dateRange": {
    object (DateRange)
  }
}
字段
name

string

为此同类群组指定名称。报告响应中,维度“cohort”的值为此名称。如果已设置,则不能以 cohort_RESERVED_ 开头。如果未设置,则同类群组按其从零开始的索引(cohort_0cohort_1 等)命名。

dimension

string

同类群组使用的维度。必需,且仅支持 firstSessionDate

dateRange

object (DateRange)

同类群组选择首次接触日期介于 dateRange 中指定的开始日期和结束日期之间的用户。此dateRange未指定同类群组报告中显示的事件数据的完整日期范围。在同类群组报告中,此dateRangecohortsRange中显示的粒度和偏移量进行扩展;延长的报告日期范围内的事件数据会显示在同类群组报告中。

在同类群组请求中,此 dateRange 是必需的,而且必须未指定 RunReportRequestRunPivotReportRequest 中的 dateRanges

dateRange 通常应与同类群组的粒度一致。如果 CohortsRange 以天为单位,则此 dateRange 可以是一天。如果 CohortsRange 使用每周粒度,则此 dateRange 可以与周边界对齐,从星期日开始到星期六结束。如果 CohortsRange 以月为粒度,则此 dateRange 可以与月份对齐,从当月第一天开始到最后一天结束。

CohortsRange

为同类群组报告配置延长的报告日期范围。指定同类群组的偏移时长。

JSON 表示法
{
  "granularity": enum (Granularity),
  "startOffset": integer,
  "endOffset": integer
}
字段
granularity

enum (Granularity)

必需。用于解读同类群组报告的扩大报告日期范围内的startOffsetendOffset的粒度。

startOffset

integer

startOffset 用于指定同类群组报告的延长报告日期范围的开始日期。startOffset 通常设置为 0,以便报告包含同类群组获取期间的数据。

如果 granularityDAILY,则延长的报告日期范围的 startDate 为同类群组的 startDate 加上 startOffset 天。

如果 granularityWEEKLY,则延长的报告日期范围的 startDate 为同类群组的 startDate 加上 startOffset * 7 天。

如果 granularityMONTHLY,则延长的报告日期范围的 startDate 为同类群组的 startDate 加上 startOffset * 30 天。

endOffset

integer

必需。endOffset 用于指定同类群组报告延长的报告日期范围的结束日期。endOffset 可以是任意正整数,但通常设置为 5 到 10,以便报告包含接下来几个粒度时间段内的同类群组数据。

如果 granularityDAILY,则延长的报告日期范围的 endDate 为同类群组的 endDate 加上 endOffset 天。

如果 granularityWEEKLY,则延长的报告日期范围的 endDate 为同类群组的 endDate 加上 endOffset * 7 天。

如果 granularityMONTHLY,则延长的报告日期范围的 endDate 为同类群组的 endDate 加上 endOffset * 30 天。

粒度

用于解读同类群组报告的扩大报告日期范围内的startOffsetendOffset的粒度。

枚举
GRANULARITY_UNSPECIFIED 不应指定。
DAILY 按天细分。通常在同类群组的 dateRange 为一天且请求包含 cohortNthDay 时使用。
WEEKLY 按周细分。如果同类群组的 dateRange 持续一周(从星期日开始到星期六结束),并且请求包含 cohortNthWeek,通常使用这种方式。
MONTHLY 按月细分。如果同类群组的 dateRange 为一个月且请求包含 cohortNthMonth,则通常使用此属性。

CohortReportSettings

同类群组报告的可选设置。

JSON 表示法
{
  "accumulate": boolean
}
字段
accumulate

boolean

如果为 true,则累计从首次联系日到结束日的结果。在RunReportRequest中不支持。

ReportMetadata

特定报告任务的报告元数据。

JSON 表示法
{
  "creationQuotaTokensCharged": integer,
  "state": enum (State),
  "beginCreatingTime": string,
  "taskRowCount": integer,
  "errorMessage": string,
  "totalRowCount": integer
}
字段
creationQuotaTokensCharged

integer

仅限输出。报告创建期间收取的配额令牌总数。由于此令牌数量取决于处于 CREATING 状态的活动,因此一旦报告任务进入 ACTIVEFAILED 状态,此令牌费用便会固定下来。

state

enum (State)

仅限输出。此报告任务的当前状态。

beginCreatingTime

string (Timestamp format)

仅限输出。调用 reportTasks.create 且报告开始处于 CREATING 状态的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

taskRowCount

integer

仅限输出。报告结果中的总行数。如果状态为活跃,系统会填充此字段。您可以在现有报告范围内使用 taskRowCount 进行分页。

errorMessage

string

仅限输出。如果报告任务在创建过程中失败,系统会填充错误消息。

totalRowCount

integer

仅限输出。Google Analytics 存储空间中的总行数。如果您想查询当前报告之外的其他数据行,它们可以根据 totalRowCount 启动新的报告任务。

taskRowCount 表示与当前报告有关的行数,而 totalRowCount 则包含从 Google Analytics 存储空间检索到的所有数据的总行数。

例如,假设当前报告的 taskRowCount 为 20,显示的是前 20 行的数据。同时,totalRowCount 为 30,表示所有 30 行的数据都存在。taskRowCount 可用于对前 20 行进行分页。要展开报告并包括全部 30 行的数据,可以使用 totalRowCount 来创建新的报告任务来访问全部 30 行价值。

处理状态。

枚举
STATE_UNSPECIFIED 绝不会使用未指定的状态。
CREATING 该报告目前正在创建中,将在未来可用。调用 CreateReport 后立即创建。
ACTIVE 报告已完全创建,可以进行查询了。
FAILED 未能创建报告。

方法

create

开始创建报告任务。

get

获取有关特定报告任务的报告元数据。

list

列出媒体资源的所有报告任务。

query

检索报告任务的内容。