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(分析)存储空间总共有 30 万行,则初始报告任务的前 10000 行,上限为 10,000 行,偏移量为 0。随后,另一个报告任务可以涵盖接下来的 10,000 行,但上限为 10,000,偏移为 10,000。

limit

string (int64 format)

可选。报告中要返回的行数。如果未指定,将返回 10,000 行。无论您请求返回多少行,每个请求最多返回 250,000 行。“limit”必须为正数。

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

metricAggregations[]

enum (MetricAggregation)

可选。指标聚合。汇总的指标值将在“dimensionValues”设置为“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 的行。

维度

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

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

string

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

如果指定了 dimensionExpression,则 name 可以是您希望在允许的字符集中添加的任何字符串。例如,如果 dimensionExpressioncountrycity 串联在一起,您可以调用该维度 countryAndCity。您选择的维度名称必须与正则表达式 ^[a-zA-Z0-9_]$ 匹配。

尺寸由 namedimensionFilterorderBysdimensionExpressionpivots 中引用。

dimensionExpression

object (DimensionExpression)

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

DimensionExpression

用于表示一个维度,该维度是多个维度的公式的结果。用法示例:1) lowerCase(dimension) 2) concatenate(dimension1, signed, 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(国家/地区, ", ", 城市)。

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

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

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

指标由 metricFilterorderBysexpression 中的 name 引用。

expression

string

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

invisible

boolean

指明指标是否在报告响应中不可见。如果指标不可见,则该指标不会在响应中生成列,但可以在 metricFilterorderBysexpression 中使用。

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

表示维度或指标过滤条件。同一 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 中的 FilterExpressions 具有 AND 关系。

orGroup

object (FilterExpressionList)

orGroup 中的 FilterExpressions 具有 OR 关系。

notExpression

object (FilterExpression)

FilterExpression 不是 notExpression。

filter

object (Filter)

初始过滤器。在同一 FilterExpression 中,过滤器的所有字段名称都需要是所有维度或所有指标。

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

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

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 月第一周同类群组中获取的用户。在接下来的六周内,追踪该同类群组在 cohortsRange 对象中指定。

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

报告响应可以显示每周时间序列,其中假设您的应用在三周后保留了此同类群组的 60%,在六周后保留了此同类群组的 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,以便报告包含同类群组接下来的用户获取数据。

如果“granularity”为“DAILY”,则延长的报告日期范围的startDate为同类群组的 startDate 外加 startOffset 天。

如果“granularity”为“WEEKLY”,则延长的报告日期范围的startDate为同类群组的 startDate 外加 startOffset * 7 天。

如果“granularity”为“MONTHLY”,则延长的报告日期范围的startDate为同类群组的 startDate 外加 startOffset * 30 天。

endOffset

integer

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

如果“granularity”为“DAILY”,则延长的报告日期范围的endDate为同类群组的 endDate 外加 endOffset 天。

如果“granularity”为“WEEKLY”,则延长的报告日期范围的endDate为同类群组的 endDate 外加 endOffset * 7 天。

如果“granularity”为“MONTHLY”,则延长的报告日期范围的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

检索报告任务的内容。