工具:run_report
返回包含 Google Analytics 事件数据的自定义报告。
以下示例演示了如何使用 curl 调用 run_report MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://analyticsdata.googleapis.com/mcp/v1' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "run_report", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
生成报告的请求。
RunReportRequest
| JSON 表示法 |
|---|
{ "property": string, "dimensions": [ { object ( |
| 字段 | |
|---|---|
property |
要跟踪其事件的 Google Analytics 媒体资源标识符。在网址路径中指定,而不是在正文中指定。如需了解详情,请参阅在哪里查找媒体资源 ID。在批处理请求中,此属性应未指定或与批处理级属性保持一致。 示例:properties/1234 |
dimensions[] |
所请求和显示的维度。 |
metrics[] |
请求和显示的指标。 |
dateRanges[] |
要读取的数据的日期范围。如果请求了多个日期范围,则每个响应行都将包含一个从零开始的日期范围索引。如果两个日期范围重叠,则重叠日期的事件数据会包含在两个日期范围的响应行中。在同类群组请求中,此 |
dimensionFilter |
借助维度过滤条件,您可以要求报告中仅显示特定的维度值。如需了解详情,请参阅维度过滤条件基础知识,其中包含相关示例。此过滤条件不支持使用指标。 |
metricFilter |
指标的过滤条件子句。在汇总报告的行后应用,类似于 SQL 的 having 子句。此过滤条件中不能使用维度。 |
offset |
起始行的行数。第一行计为第 0 行。 分页时,第一个请求不指定偏移量;或者等效地将偏移量设置为 0;第一个请求返回前 如需详细了解此分页参数,请参阅分页。 |
limit |
要返回的行数。如果未指定,则返回 10,000 行。无论您请求多少行,该 API 每次请求最多返回 25 万行。 如果维度值的数量少于 如需详细了解此分页参数,请参阅分页。 |
metricAggregations[] |
指标的聚合。汇总指标值将显示在 dimension_values 设置为“RESERVED_(MetricAggregation)”的行中。包含比较和多个日期范围的汇总将根据日期范围进行汇总。 |
orderBys[] |
指定响应中各行的排序方式。如果请求同时包含比较和多个日期范围,则会针对比较应用排序。 |
currencyCode |
采用 ISO4217 格式的币种代码,例如“AED”“USD”“JPY”。如果该字段为空,报告将使用媒体资源的默认币种。 |
cohortSpec |
与此请求关联的同类群组。如果请求中包含同类群组,则必须包含“cohort”维度。 |
keepEmptyRows |
如果为 false 或未指定,则不会返回所有指标都等于 0 的每一行。如果为 true,则在未被过滤器单独移除的情况下,系统会返回这些行。 无论此 例如,如果某媒体资源从未记录过 |
returnPropertyQuota |
切换是否返回相应 Google Analytics 媒体资源的配额的当前状态。配额将在 PropertyQuota 中返回。 |
comparisons[] |
可选。所请求和显示的比较配置。该请求只需要一个 comparisons 字段,即可在响应中收到比较列。 |
维度
| JSON 表示法 |
|---|
{
"name": string,
"dimensionExpression": {
object ( |
| 字段 | |
|---|---|
name |
维度的名称。如需查看核心报告方法(例如 如果指定了 维度在 |
dimensionExpression |
一个维度可以是多个维度表达式的结果。例如,维度“国家/地区、城市”:concatenate(国家/地区, ",", 城市)。 |
DimensionExpression
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 one_expression。为 DimensionExpression 指定一种维度表达式。one_expression 只能是下列其中一项: |
|
lowerCase |
用于将维度值转换为小写。 |
upperCase |
用于将维度值转换为大写。 |
concatenate |
用于将维度值合并为单个维度。例如,维度“国家/地区、城市”:concatenate(国家/地区, ",", 城市)。 |
CaseExpression
| JSON 表示法 |
|---|
{ "dimensionName": string } |
| 字段 | |
|---|---|
dimensionName |
维度的名称。该名称必须指回请求的维度字段中的某个名称。 |
ConcatenateExpression
| JSON 表示法 |
|---|
{ "dimensionNames": [ string ], "delimiter": string } |
| 字段 | |
|---|---|
dimensionNames[] |
维度的名称。这些名称必须与请求的维度字段中的名称相对应。 |
delimiter |
放置在维度名称之间的分隔符。 分隔符通常是单个字符,例如“|”或“,”,但也可以是较长的字符串。如果维度值包含分隔符,则两者都会显示在响应中,但不会区分。例如,如果维度 1 的值为“US,FR”,维度 2 的值为“JP”,分隔符为“,”,则响应将包含“US,FR,JP”。 |
指标
| JSON 表示法 |
|---|
{ "name": string, "expression": string, "invisible": boolean } |
| 字段 | |
|---|---|
name |
相应指标的名称。如需查看核心报告方法(例如 如果指定了 指标在 |
expression |
派生指标的数学表达式。例如,“每位用户的事件数”指标为 |
invisible |
指示指标在报告响应中是否不可见。如果某个指标处于不可见状态,则该指标不会在响应中生成列,但可用于 |
DateRange
| JSON 表示法 |
|---|
{ "startDate": string, "endDate": string, "name": string } |
| 字段 | |
|---|---|
startDate |
查询的开始日期(含此日期),格式为 |
endDate |
查询的结束日期(含此日期),格式为 |
name |
为相应日期范围分配名称。在报告响应中,维度 |
FilterExpression
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 expr。为 FilterExpression 指定一种过滤条件表达式。expr 只能是下列其中一项: |
|
andGroup |
and_group 中的 FilterExpressions 具有 AND 关系。 |
orGroup |
or_group 中的 FilterExpression 具有 OR 关系。 |
notExpression |
FilterExpression 不是 not_expression。 |
filter |
一种基本过滤条件。在同一 FilterExpression 中,过滤条件的所有字段名称必须全部为维度或全部为指标。 |
FilterExpressionList
| JSON 表示法 |
|---|
{
"expressions": [
{
object ( |
| 字段 | |
|---|---|
expressions[] |
过滤条件表达式列表。 |
过滤
| JSON 表示法 |
|---|
{ "fieldName": string, // Union field |
| 字段 | |
|---|---|
fieldName |
维度名称或指标名称。 在大多数方法中,维度和指标可以首次在此字段中使用。不过,在 RunPivotReportRequest 中,此字段还必须在 RunPivotReportRequest 的维度或指标中按名称指定。 |
联合字段 one_filter。为 Filter 指定一种过滤条件类型。one_filter 只能是下列其中一项: |
|
stringFilter |
与字符串相关的过滤条件。 |
inListFilter |
用于过滤列表中的值的过滤条件。 |
numericFilter |
用于过滤数值或日期值的过滤条件。 |
betweenFilter |
一种用于过滤两个值的过滤条件。 |
emptyFilter |
用于过滤空值(例如“(未设置)”值和“”值)的过滤条件。 |
StringFilter
| JSON 表示法 |
|---|
{
"matchType": enum ( |
| 字段 | |
|---|---|
matchType |
相应过滤条件的匹配类型。 |
value |
用于匹配的字符串值。 |
caseSensitive |
如果为 true,则字符串值区分大小写。 |
InListFilter
| JSON 表示法 |
|---|
{ "values": [ string ], "caseSensitive": boolean } |
| 字段 | |
|---|---|
values[] |
字符串值列表。不得为空。 |
caseSensitive |
如果为 true,则字符串值区分大小写。 |
NumericFilter
| JSON 表示法 |
|---|
{ "operation": enum ( |
| 字段 | |
|---|---|
operation |
相应过滤条件的操作类型。 |
value |
数值或日期值。 |
NumericValue
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 one_value。数值 one_value 只能是以下值之一: |
|
int64Value |
整数值 |
doubleValue |
DoubleValue |
BetweenFilter
| JSON 表示法 |
|---|
{ "fromValue": { object ( |
| 字段 | |
|---|---|
fromValue |
以该数字开头。 |
toValue |
以该数字结尾。 |
OrderBy
| JSON 表示法 |
|---|
{ "desc": boolean, // Union field |
| 字段 | |
|---|---|
desc |
如果为 true,则按降序排序。 |
联合字段 one_order_by。为 OrderBy 指定一种排序依据类型。one_order_by 只能是下列其中一项: |
|
metric |
按指标值对结果进行排序。 |
dimension |
按维度值对结果进行排序。 |
pivot |
按数据透视列组中的指标值对结果进行排序。 |
MetricOrderBy
| JSON 表示法 |
|---|
{ "metricName": string } |
| 字段 | |
|---|---|
metricName |
请求中用于排序的指标名称。 |
DimensionOrderBy
| JSON 表示法 |
|---|
{
"dimensionName": string,
"orderType": enum ( |
| 字段 | |
|---|---|
dimensionName |
请求中用于排序的维度名称。 |
orderType |
控制维度值排序的规则。 |
PivotOrderBy
| JSON 表示法 |
|---|
{
"metricName": string,
"pivotSelections": [
{
object ( |
| 字段 | |
|---|---|
metricName |
在“按顺序排列”的响应中,按此列对行进行排序。必须是请求中的指标名称。 |
pivotSelections[] |
用于选择维度名称和值透视。如果指定了多个透视选择,则排序会发生在所有透视选择维度名称和值对都与相应行的维度名称和值对匹配的行上。 |
PivotSelection
| JSON 表示法 |
|---|
{ "dimensionName": string, "dimensionValue": string } |
| 字段 | |
|---|---|
dimensionName |
必须是请求中的维度名称。 |
dimensionValue |
仅当指定维度的值为此值时才进行排序。 |
CohortSpec
| JSON 表示法 |
|---|
{ "cohorts": [ { object ( |
| 字段 | |
|---|---|
cohorts[] |
定义将用户分组到同类群组中的选择条件。 大多数同类群组报告仅定义一个同类群组。如果指定了多个同类群组,则可以在报告中按名称识别每个同类群组。 |
cohortsRange |
同类群组报告会在较长的报告日期范围内跟踪同类群组。此范围指定了要跟踪的同群组的偏移时长。 |
cohortReportSettings |
同类群组报告的可选设置。 |
同类群组
| JSON 表示法 |
|---|
{
"name": string,
"dimension": string,
"dateRange": {
object ( |
| 字段 | |
|---|---|
name |
为此群组分配名称。在报告响应中,维度 |
dimension |
同类群组使用的维度。必需,且仅支持 |
dateRange |
同类群组会选择首次接触日期介于 在同类群组请求中,此 此 |
CohortsRange
| JSON 表示法 |
|---|
{
"granularity": enum ( |
| 字段 | |
|---|---|
granularity |
必需。用于解读同类群组报告的扩展报告日期范围的 |
startOffset |
如果 如果 如果 |
endOffset |
必需。 如果 如果 如果 |
CohortReportSettings
| JSON 表示法 |
|---|
{ "accumulate": boolean } |
| 字段 | |
|---|---|
accumulate |
如果为 true,则从首次触达日期到结束日期累积结果。在 |
比较
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
name |
每次比较都会在响应中生成单独的行。在响应中,此比较对象将通过此名称进行标识。如果未指定名称,我们将使用已保存的比较的显示名称。 |
联合字段 one_comparison。一种比较值 one_comparison 只能是以下值之一: |
|
dimensionFilter |
基本比较。 |
comparison |
由比较对象的资源名称标识的已保存比较对象。例如,'comparisons/1234'。 |
MatchType
字符串过滤器的匹配类型
| 枚举 | |
|---|---|
MATCH_TYPE_UNSPECIFIED |
未指定 |
EXACT |
字符串值完全匹配。 |
BEGINS_WITH |
以字符串值开头。 |
ENDS_WITH |
以字符串值结尾。 |
CONTAINS |
包含字符串值。 |
FULL_REGEXP |
正则表达式与字符串值完全匹配。 |
PARTIAL_REGEXP |
字符串值与正则表达式的部分匹配。 |
操作
应用于数字过滤器的操作
| 枚举 | |
|---|---|
OPERATION_UNSPECIFIED |
未指定。 |
EQUAL |
等于 |
LESS_THAN |
小于 |
LESS_THAN_OR_EQUAL |
小于或等于 |
GREATER_THAN |
大于 |
GREATER_THAN_OR_EQUAL |
大于或等于 |
MetricAggregation
表示指标的汇总。
| 枚举 | |
|---|---|
METRIC_AGGREGATION_UNSPECIFIED |
未指定运算符。 |
TOTAL |
SUM 运算符。 |
MINIMUM |
最小值运算符。 |
MAXIMUM |
最大值运算符。 |
COUNT |
Count 运算符。 |
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”。所有非数值维度值的排序值都相等,且低于所有数值。 |
粒度
用于解读同类群组报告的扩展报告日期范围的 startOffset 和 endOffset 的粒度。
| 枚举 | |
|---|---|
GRANULARITY_UNSPECIFIED |
切勿指定。 |
DAILY |
每日粒度。如果群组的 dateRange 为单日,且请求包含 cohortNthDay,则通常使用此值。 |
WEEKLY |
每周粒度。如果群组的 dateRange 为一周(从周日开始到周六结束),且请求包含 cohortNthWeek,则通常使用此函数。 |
MONTHLY |
月度粒度。如果群组的 dateRange 为一个月,且请求包含 cohortNthMonth,则通常使用此值。 |
输出架构
与请求对应的响应报告表。
RunReportResponse
| JSON 表示法 |
|---|
{ "dimensionHeaders": [ { object ( |
| 字段 | |
|---|---|
dimensionHeaders[] |
描述维度列。DimensionHeaders 的数量和顺序与行中存在的维度一致。 |
metricHeaders[] |
描述指标列。MetricHeaders 的数量和顺序与行中存在的指标相匹配。 |
rows[] |
报告中维度值组合和指标值的行。 |
totals[] |
如果请求了指标,则为指标的总计值。 |
maximums[] |
如果请求,则为指标的最大值。 |
minimums[] |
如果请求,则为指标的最小值。 |
rowCount |
查询结果中的总行数。 如需详细了解此分页参数,请参阅分页。 |
metadata |
报告的元数据。 |
propertyQuota |
相应 Google Analytics 媒体资源的配额状态(包括此请求)。 |
kind |
指明相应消息所属的资源种类。此 |
DimensionHeader
| JSON 表示法 |
|---|
{ "name": string } |
| 字段 | |
|---|---|
name |
维度的名称。 |
MetricHeader
| JSON 表示法 |
|---|
{
"name": string,
"type": enum ( |
| 字段 | |
|---|---|
name |
指标的名称。 |
type |
指标的数据类型。 |
行
| JSON 表示法 |
|---|
{ "dimensionValues": [ { object ( |
| 字段 | |
|---|---|
dimensionValues[] |
所请求的维度值列表。在 PivotReport 中,仅列出透视中包含的维度的 dimension_values。 |
metricValues[] |
请求的可见指标值列表。 |
DimensionValue
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 one_value。一种维度值 one_value 只能是以下值之一: |
|
value |
如果维度类型为字符串,则为字符串形式的值。 |
MetricValue
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
value |
衡量价值。请参阅 MetricHeader 以了解类型。 |
ResponseMetaData
| JSON 表示法 |
|---|
{ "dataLossFromOtherRow": boolean, "samplingMetadatas": [ { object ( |
| 字段 | |
|---|---|
dataLossFromOtherRow |
如果为 true,则表示某些维度组合的桶会汇总到“(其他)”行中。高基数报告可能会出现这种情况。 metadata 参数 dataLossFromOtherRow 会根据报告中使用的汇总数据表进行填充。无论报告中存在哪些过滤条件和限制,系统都会准确填充相应参数。 例如,由于请求包含针对 sessionSource = google 的过滤条件,因此报告中可能会舍弃“(other)”行。如果用于生成此报告的输入汇总数据中存在来自其他行的数据丢失,系统仍会填充此参数。 如需了解详情,请参阅“(其他)”行和数据抽样简介。 |
samplingMetadatas[] |
如果此报告的结果是抽样的,则此属性会说明此报告中使用的事件百分比。每个日期范围都会填充一个 不过,如果结果未经过抽样,则不会定义此字段。 |
联合字段
|
|
schemaRestrictionResponse |
描述了在创建此报告时有效实施的架构限制。如需了解详情,请参阅访问权限和数据限制管理。 |
联合字段
|
|
currencyCode |
相应报告中使用的币种代码。旨在用于格式化货币指标(例如 货币代码是 ISO 4217 标准 (https://en.wikipedia.org/wiki/ISO_4217) 中货币类型的字符串编码;例如“USD”“EUR”“JPY”。如需了解详情,请访问 https://support.google.com/analytics/answer/9796179。 |
联合字段
|
|
timeZone |
房源的当前时区。旨在用于解读基于时间的维度,例如 |
联合字段
|
|
emptyReason |
如果指定了空原因,则报告为空。 |
联合字段
|
|
subjectToThresholding |
如果 |
SchemaRestrictionResponse
| JSON 表示法 |
|---|
{
"activeMetricRestrictions": [
{
object ( |
| 字段 | |
|---|---|
activeMetricRestrictions[] |
在创建报告时主动强制执行的所有限制。例如, |
ActiveMetricRestriction
| JSON 表示法 |
|---|
{ "restrictedMetricTypes": [ enum ( |
| 字段 | |
|---|---|
restrictedMetricTypes[] |
相应指标受到限制的原因。 |
联合字段
|
|
metricName |
受限指标的名称。 |
SamplingMetadata
| JSON 表示法 |
|---|
{ "samplesReadCount": string, "samplingSpaceSize": string } |
| 字段 | |
|---|---|
samplesReadCount |
相应日期范围内此抽样报告中读取的事件总数。这是相应媒体资源的数据子集的大小,该子集的数据已在此报告中进行分析。 |
samplingSpaceSize |
相应日期范围内,相应媒体资源的数据中可在此报告中进行分析的事件总数。抽样可发掘出有关更大数据集的有意义信息,而这是更大数据集的大小。 如需计算此报告中使用的可用数据百分比,请计算 |
PropertyQuota
| JSON 表示法 |
|---|
{ "tokensPerDay": { object ( |
| 字段 | |
|---|---|
tokensPerDay |
标准 Google Analytics 媒体资源每天最多可以使用 20 万个令牌;Google Analytics 360 媒体资源每天可以使用 200 万个令牌。大部分请求消耗的令牌数都少于 10 个。 |
tokensPerHour |
标准 Google Analytics 媒体资源每小时最多可以使用 4 万个令牌;Google Analytics 360 媒体资源每小时可以使用 40 万个令牌。一个 API 请求会消耗一定数量的令牌,该数量会从所有的小时配额、每日配额和每个项目的小时配额中扣除。 |
concurrentRequests |
标准 Google Analytics 媒体资源最多可以同时发送 10 个请求;Google Analytics 360 媒体资源最多可以同时发送 50 个请求。 |
serverErrorsPerProjectPerHour |
标准版 Google Analytics 媒体资源和云项目对每小时最多可以有 10 个服务器错误;Analytics 360 媒体资源和云项目对每小时最多可以有 50 个服务器错误。 |
potentiallyThresholdedRequestsPerHour |
Google Analytics 媒体资源每小时最多可以发送 120 个包含可能达到阈值的维度的请求。在批量请求中,如果报告请求包含可能受阈值限制的维度,则每个报告请求都会单独计入此配额。 |
tokensPerProjectPerHour |
Google Analytics 媒体资源每小时每个项目最多可以使用 35% 的令牌。也就是说,标准 Google Analytics 媒体资源每小时每个项目最多可以使用 14,000 个令牌,而 Google Analytics 360 媒体资源每小时每个项目最多可以使用 140,000 个令牌。一个 API 请求会消耗一定数量的令牌,该数量会从所有的小时配额、每日配额和每个项目的小时配额中扣除。 |
QuotaStatus
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
consumed |
相应请求消耗的配额。 |
联合字段
|
|
remaining |
此请求后的剩余配额。 |
MetricType
指标的值类型。
| 枚举 | |
|---|---|
METRIC_TYPE_UNSPECIFIED |
未指定的类型。 |
TYPE_INTEGER |
整数类型。 |
TYPE_FLOAT |
浮点类型。 |
TYPE_SECONDS |
以秒为单位的时长;一种特殊的浮点类型。 |
TYPE_MILLISECONDS |
以毫秒为单位的时长;一种特殊的浮点类型。 |
TYPE_MINUTES |
以分钟为单位的时长;一种特殊的浮点类型。 |
TYPE_HOURS |
以小时为单位的时长;一种特殊的浮点类型。 |
TYPE_STANDARD |
标准类型的自定义指标;一种特殊的浮点类型。 |
TYPE_CURRENCY |
一笔金额;一种特殊的浮点类型。 |
TYPE_FEET |
以英尺为单位的长度;一种特殊的浮点类型。 |
TYPE_MILES |
以英里为单位的长度;一种特殊的浮点类型。 |
TYPE_METERS |
以米为单位的长度;一种特殊的浮点类型。 |
TYPE_KILOMETERS |
以公里为单位的长度;一种特殊的浮点类型。 |
RestrictedMetricType
您可能无法在某些 Google Analytics 媒体资源中查看的数据类别。
| 枚举 | |
|---|---|
RESTRICTED_METRIC_TYPE_UNSPECIFIED |
未指定的类型。 |
COST_DATA |
费用指标,例如 adCost。 |
REVENUE_DATA |
收入指标,例如 purchaseRevenue。 |
工具注释
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:✅