Multi-Channel Funnels Reporting API - 参考指南

本文提供有关 Multi-Channel Funnels Reporting API 查询和响应的完整参考。

简介

利用 Multi-Channel Funnels Reporting API,您可以请求 Google Analytics(分析)多渠道路径报告数据。每个报告均包含根据跟踪代码发回给 Google Analytics(分析)的数据得到的统计信息,这些信息按维度和指标进行划分。通过自行选择维度和指标的组合,您可以使用报告 API 来根据自己的规范生成自定义报告。

该 API 包含一种请求报告数据的方法:report.get。 通过这种方法,您需要提供与您希望提取其数据的数据视图(配置文件)相对应的表格 ID。另外,您还可以指定以下各项内容:

  • 维度和指标的组合。
  • 日期范围。
  • 一组用于控制返回哪些数据的选项参数。

该 API 在 REST 端点 ( https://www.googleapis.com/analytics/v3/data/mcf) 上提供了 report.get 方法。 以下部分显示了一个示例请求,并介绍了每个参数。

请求

该 API 提供如下用于请求数据的单一方法:

analytics.data.mcf.get()

另外,也可以采用 REST 端点的形式查询该 API:

Authorization: Bearer {oauth2-token}

GET https://www.googleapis.com/analytics/v3/data/mcf
  ?ids=ga:12345
  &metrics=mcf:totalConversions,mcf:totalConversionValue
  &start-date=2011-10-01
  &end-date=2011-10-31

每个网址查询参数指定一个 API 查询参数(必须经过网址编码)。

发送到 Multi-ChannelFunnel Reporting API 的所有请求都必须进行授权(最好通过 OAuth 2.0 授权)。

查询参数汇总

下表汇总了 Multi-ChannelFunnel Reporting API 接受的所有查询参数。点击每个参数名称即可查看详细说明。

名称 必需 摘要
ids string ga:XXXX 形式的唯一表格 ID,其中 XXXX 是查询从中提取数据的 Google Analytics(分析)数据视图(配置文件)的 ID。
start-date string 获取 Google Analytics(分析)数据的开始日期。请求可以指定格式为 YYYY-MM-DD 的开始日期或相对日期(例如todayyesterdayNdaysAgo,其中 N 为正整数)。
end-date string 获取 Google Analytics(分析)数据的结束日期。请求可以指定格式为 YYYY-MM-DD 的结束日期,也可以指定相对日期(例如todayyesterdayNdaysAgo,其中 N 为正整数)。
metrics string 以英文逗号分隔的指标的列表,例如 mcf:totalConversions,mcf:totalConversionValue。有效查询必须至少指定一个指标。
dimensions string 您的“多渠道漏斗”报告的一系列以英文逗号分隔的维度,例如 mcf:source,mcf:keyword
sort string 以英文逗号分隔的一系列维度和指标,用于指示所返回数据的排序顺序和排序方向。
filters string 维度或指标过滤条件,用于限制您的请求返回的数据。
samplingLevel string 需要的抽样级别。允许的值:
  • DEFAULT — 返回的响应采用默认抽样规模,速度和准确度相平衡。
  • FASTER — 返回的响应采用较小抽样规模,但响应速度更快。
  • HIGHER_PRECISION — 返回的响应采用较大抽样规模,准确度更高,但是响应速度可能较慢。
start-index integer 要检索的第一行数据,从 1 开始。此参数可与 max-results 参数搭配使用,作为分页机制。
max-results integer 响应中包含的行数上限。

查询参数详情

ids

ids=ga:12345
必需参数。
用于检索多渠道漏斗数据的唯一 ID。此 ID 是由命名空间 ga: 与报告的数据视图(配置文件)ID 串联而成。您可以使用 analytics.management.profiles.list 方法获取报告的数据视图(配置文件)ID,此方法会在 Google Analytics(分析)Management API 的“数据视图(配置文件)”资源中提供 id

返回页首


start-date

start-date=2011-10-01
必填。
所有多渠道漏斗数据请求都必须指定一个日期范围。 如果您不在请求中添加 start-dateend-date 参数,服务器会返回错误。 日期值可以是使用 YYYY-MM-DD 模式的特定日期,也可以使用 todayyesterdayNdaysAgo 模式的相对日期值。 值必须与 [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) 匹配。
最早的有效 start-date2011-01-01start-date 没有上限限制。
相对日期始终相对于查询时的当前日期,且基于查询中指定的数据视图(配置文件)的时区。

以下示例使用相对日期表示过去 7 天的日期范围(从昨天开始向前追溯):

  &start-date=7daysAgo
  &end-date=yesterday

返回页首


end-date

end-date=2011-10-31
必填。
所有多渠道漏斗数据请求都必须指定一个日期范围。 如果您不在请求中添加 start-dateend-date 参数,服务器会返回错误。 日期值可以是使用 YYYY-MM-DD 模式的特定日期,也可以使用 todayyesterdayNdaysAgo 模式的相对日期值。 值必须与 [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) 匹配。
最早的有效 end-date2005-01-01end-date 没有上限限制。
相对日期始终相对于查询时的当前日期,且基于查询中指定的数据视图(配置文件)的时区。

以下示例使用相对日期表示过去 10 天的日期范围(从今天开始向前追溯):

  &start-date=9daysAgo
  &end-date=today

返回页首


dimensions

dimensions=mcf:source,mcf:keyword
可选。

“dimensions”参数定义了“多渠道漏斗”报告的主要数据键,如 mcf:sourcemcf:medium 使用维度对转化指标进行细分。例如,虽然您可以询问网站的总转化次数,但询问按媒介细分的转化次数可能更有趣。 在这种情况下,您将看到来自自然、引荐、电子邮件等来源的转化次数。

在数据请求中使用 dimensions 时,请注意以下限制:

  • 您在任何查询中最多只能提供 7 个维度。
  • 您不能发送完全由维度组成的查询:必须将所请求的维度与至少一个指标进行组合。

不可用的值

当无法确定维度的具体值时,Google Analytics(分析)会使用特殊的字符串 (not set)。

返回页首


metrics

metrics=mcf:totalConversions,mcf:totalConversionValue
必填。

有关用户在您网站上的活动的汇总统计信息,例如总转化次数或总转化价值。 如果查询没有 dimensions 参数,则返回的指标会提供所请求日期范围内的汇总值,例如总体总转化价值。不过,在请求维度时,值将按维度值细分。 例如,如果请求使用 mcf:source 方法,则 mcf:totalConversions 会返回每个来源的总转化次数。

请求指标时,请注意以下事项:

  • 任何请求都必须包含至少一个指标;请求不能完全由维度组成。
  • 对于任何查询,您最多可以提供 10 个指标。

返回页首


sort

sort=mcf:source,mcf:medium
可选。

用于指示返回数据的排序顺序和排序方向的一系列指标和维度。

  • 排序顺序由所列指标和维度指定,其中指标和维度的排序优先级从左到右依次降低。
  • 排序方向默认为升序。您可以通过为所请求的字段添加减号 (-) 前缀将排序方向改为降序。direction

通过对查询结果排序,您可以解决许多数据方面的疑问。例如,要解决“我的哪些转化来源最多,通过哪些媒介?”这个问题, 您可以使用以下参数进行查询。查询结果首先按 mcf:source 排序,然后按 mcf:medium 排序,并且这两个指标均按升序排序:

sort=mcf:source,mcf:medium

要回答“哪些媒介带来的转化次数最多,以及通过哪些来源带来转化?”这样的问题,您可以使用以下参数进行查询。查询结果首先按 mcf:medium 排序,然后按 mcf:source 排序,并且这两个指标均按升序排序:

sort=mcf:medium,mcf:source

使用 sort 参数时,请注意以下几点:

  • 只能按在 dimensionsmetrics 参数中使用的维度或指标值进行排序。如果您请求按未在 dimensions 或 metrics 参数中指定的字段排序,将会收到错误。
  • 默认情况下,字符串将按 en-US 语言区域的字母顺序升序排序。
  • 默认情况下,数字将按数值顺序升序排序。
  • 默认情况下,日期将按日期顺序升序排序。

返回页首


filters

filters=mcf:medium%3D%3Dreferral
可选。

filters 查询字符串参数会限制从您的请求返回的数据。如需使用 filters 参数,请提供要用作过滤依据的维度或指标,后跟过滤器表达式。例如,以下查询针对数据视图(配置文件)12134 请求 mcf:totalConversionsmcf:source,其中 mcf:medium 维度是字符串 referral

https://www.googleapis.com/analytics/v3/data/mcf
?ids=mcf:12134
&dimensions=mcf:source
&metrics=mcf:totalConversions
&filters=mcf:medium%3D%3Dreferral
&start-date=2011-10-01
&end-date=2011-10-31

有关详情,请参阅 Core Reporting API 参考

返回页首


samplingLevel

samplingLevel=DEFAULT
可选。
使用此参数设置报告查询的抽样级别(即用于计算结果的会话数)。允许的值与网页界面一致,包括:
  • DEFAULT — 返回的响应采用默认抽样规模,速度和准确度相平衡。
  • FASTER — 返回的响应采用较小抽样规模,但响应速度更快。
  • HIGHER_PRECISION — 返回的响应采用较大抽样规模,准确度更高,但是响应速度可能较慢。
如果未提供,系统将使用 DEFAULT 抽样级别。
如需详细了解如何计算查询所用会话所占的百分比,请参阅抽样部分。

返回页首


max-results

max-results=100
可选。

此响应中包含的行数上限。您可以将此参数与 start-index 结合使用,以检索一部分元素;也可以单独使用此参数,以限制返回的元素数量(从第一个元素开始返回)。 如果未提供 max-results,则查询默认最多返回 1000 行。

无论您要求返回多少行结果,对于每个请求,Multi-Channel Funnels Reporting API 最多只能返回 10000 行。如果维度细分数量达不到您的预期,API 返回的行数也可能小于请求的数量。例如,如果 mcf:medium 的可能值少于 300 个,那么当仅按媒介细分时,即使您将 max-results 设置为更高的值,所获得的行数也不能超过 300 行。

返回页首


响应

如果成功,此请求将返回具有下面定义的 JSON 结构的响应正文。

请注意:“结果”一词指的是与查询条件相符的所有行,而“响应”指的是当前结果页上返回的所有行。如果结果总数超过当前响应的页面大小,则这些 ID 可能会有所不同(如 itemsPerPage 中所述)。

响应格式

JSON 文件
{
  "kind": "analytics#mcfData",
  "id": string,
  "query": {
    "start-date": string,
    "end-date": string,
    "ids": string,
    "dimensions": [
      string
    ],
    "metrics": [
      string
    ],
    "sort": [
      string
    ],
    "filters": string,
    "samplingLevel": string,
    "start-index": integer,
    "max-results": integer
  },
  "itemsPerPage": integer,
  "totalResults": integer,
  "selfLink": string,
  "previousLink": string,
  "nextLink": string,
  "profileInfo": {
    "profileId": string,
    "accountId": string,
    "webPropertyId": string,
    "internalWebPropertyId": string,
    "profileName": string,
    "tableId": string
  },
  "containsSampledData": boolean,
  "sampleSize": string,
  "sampleSpace": string,
  "columnHeaders": [
    {
      "name": string,
      "columnType": string,
      "dataType": string
    }
  ],
  "totalsForAllResults": [
    {
      metricName: string,
      ...
    }
  ]
  "rows": [
    [
      McfData.Rows
    ]
  ],
}

返回页首

响应字段

响应正文结构的属性定义如下:

属性名称 说明
kind string 资源类型。值为“analytics#mcfData”。
id string 此数据响应的 ID。
query object 此对象包含以参数形式传递给查询的所有值。有关每个字段含义的介绍,请参阅对应查询参数的说明。
query.start-date string 开始日期。
query.end-date string 结束日期。
query.ids string 唯一表格 ID。
query.dimensions[] list 分析维度列表。
query.metrics[] list 分析指标列表。
query.sort[] list 用作数据排序依据的指标或维度列表。
query.filters string 以逗号分隔的指标或维度过滤条件列表。
query.samplingLevel string Requested sampling level.
query.start-index integer 行起始索引。默认值为 1。
query.max-results integer 每页显示的结果数上限。
startIndex integer 行起始索引由 start-index 查询参数指定。默认值为 1。
itemsPerPage integer 响应所能包含的行数上限,与返回的实际行数无关。如果指定了 max-results 查询参数,则 itemsPerPage 的值将在 max-results 或 10,000 中取较小者。itemsPerPage 的默认值为 1000。
totalResults integer 查询结果中的总行数,与响应中返回的行数无关。对于生成大量行的查询,totalResults 可以大于 itemsPerPage。请参阅 Paging,了解有关用于大型查询的 totalResultsitemsPerPage 的更多说明。
profileInfo object 与作为数据请求对象的数据视图(配置文件)相关的信息。数据视图(配置文件)数据可以通过 Google Analytics(分析)Management API 得到。
profileInfo.profileId string 数据视图(配置文件)ID,例如 1174
profileInfo.accountId string 此数据视图(配置文件)所属的账号 ID,例如 30481
profileInfo.webPropertyId string 此数据视图(配置文件)所属的网络媒体资源 ID,例如 UA-30481-1
profileInfo.internalWebPropertyId string 此数据视图(配置文件)所属的网络媒体资源的内部 ID,例如 UA-30481-1
profileInfo.profileName string 数据视图(配置文件)的名称。
profileInfo.tableId string 数据视图(配置文件)的表格 ID,由“ga:”紧接数据视图(配置文件)ID 组成。
containsSampledData boolean 当响应包含抽样数据时为 true。
sampleSize string 计算抽样数据所用的样本数量。
sampleSpace string 抽样空间总大小。指明抽样可用的样本空间的总大小。
columnHeaders[] list 列标题,其中列出维度名称和指标名称(先维度名称后指标名称)。维度和指标的顺序与请求中通过 metricsdimensions 参数指定的维度和指标的顺序相同。标头数量等于维度数量与指标数量之和。
columnHeaders[].name string 维度或指标的名称。
columnHeaders[].columnType string 列类型。值为“DIMENSION”或“METRIC”。
columnHeaders[].dataType string 数据类型。维度列标题只有 "STRING""MCF_SEQUENCE" 作为数据类型。 指标列标题包含指标值的数据类型,例如 "INTEGER""DOUBLE""CURRENCY" 等。
totalsForAllResults object 以指标名称和值这种键值对的形式,给出所请求指标值的总计。指标总计的顺序与请求中指定的指标顺序相同。
rows[] list

报告数据行,其中每行都包含一个 Mcf.Rows 对象列表。 此内部列表表示维度值后跟指标值,顺序与请求中指定的顺序相同。每行都有一个包含 N 个字段的列表,其中 N = 维度数量 + 指标数量。

Mcf.Rows 对象封装了另一个类型为 primitiveValueconversionPathValue 的对象。 维度值可以是任一类型,但所有指标值均为 primitiveValue 类型。

primitiveValue 只是封装在对象中的字符串。例如:

{
  "primitiveValue": "2183"
}

conversionPathValue 是封装对象数组的对象,其中每个对象都包含一个 nodeValue 字符串和一个可选的 interactionType 字符串。例如:

{
  "conversionPathValue": [
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    },
    {
      "interactionType" : "CLICK",
      "nodeValue" : "google"
    }
  ]
}

返回页首

错误代码

如果请求成功,Multi-Channel Funnels Reporting API 会返回 200 HTTP 状态代码。如果在处理查询期间发生错误,该 API 会返回错误代码和说明。每个使用 Analytics API 的应用都需要实现适当的错误处理逻辑。如需详细了解错误代码及其处理方式,请参阅 错误响应参考指南

返回页首

试试看!

请使用下面的 API Explorer 对实际数据调用此方法,并查看响应。

返回页首

采样

Google Analytics(分析)需要即时计算维度和指标的特定组合。为了在合理的时间内返回数据,Google Analytics(分析)可能只会处理一部分数据。

您可以通过设置 samplingLevel 参数,为请求指定要使用的抽样级别。

如果 MCF Reporting API 响应中包含抽样数据,则 containsSampledData 响应字段将为 true。此外,sampleSizesampleSpace 这两个属性还会提供有关查询的抽样级别信息。利用这两个值,您可以计算用于查询的会话所占的百分比。例如,如果 sampleSize201,000sampleSpace220,000,则报告的抽样基准是 (201,000 / 220,000) * 100 = 91.36% 的会话。

有关抽样及 Google Analytics(分析)中抽样方法的一般说明,请参阅抽样

返回页首

处理大规模的数据结果

如果您预计查询会返回大量结果,请参考以下指南,帮助您优化 API 查询、避免错误以及最大限度减少配额超支情况。请注意,我们设定了性能基准,允许每个 API 请求最多包含 7 个维度和 10 个指标。虽然某些指定大量指标和维度的查询可能比其他查询需要更长的处理时间,但限制所请求指标的数量可能不足以提高查询性能。 不过,您可以使用以下方法获得最佳性能。

减少每个查询中的维度数量

该 API 允许在任何请求中指定最多 7 个维度。 很多时候,Google Analytics(分析)必须实时计算这些复杂查询的结果。如果结果行数很多,这样做可能特别耗时。 例如,按城市(按小时)查询关键字可能会匹配数百万行数据。您可以限制查询中维度的数量,以减少 Google Analytics(分析)处理的行数,从而提高性能。

按日期范围拆分查询

对于日期范围较长的日期键结果,除了分页之外,您还可以考虑仅针对一周甚至一天创建单独查询。当然,对于大型数据集,即使请求一天的数据,返回的数量也可能会超过 max-results,在这种情况下,分页无法避免。但在任何情况下,如果与查询匹配的行数高于 max-results,对日期范围进行拆分可能会缩短获取结果所需的总时间。无论是单线程查询还是并行查询,上述方法都有助于提高性能。

分页

对结果进行分页是将较大的结果集拆分成易管理区块的有效方式。totalResults 字段指示存在多少匹配行,itemsPerPage 则提供结果中可返回的最大行数。如果 totalResultsitemsPerPage 的比率较高,则个别查询可能需要更长的时间。如果您只需要有限数量的行(例如,仅用于显示目的),您可能会发现使用 max-results 参数明确限制响应大小会非常方便。不过,如果您的应用需要处理的结果总量非常大,那么,请求行数上限将能提高效率。

使用 gzip

要降低单个请求的带宽需求,您可以选择启用 gzip 压缩,这是一种既方便又简单的方法。虽然这种方法需要一些额外的 CPU 时间对结果进行解压缩,但考虑到它对节约网络费用的贡献,通常还是值得一用的。要接收 gzip 编码的响应,您必须执行以下两项操作:设置 Accept-Encoding 标头,并修改用户代理,使其包含字符串 gzip。 下面提供了一个用于启用 gzip 压缩的格式正确的 HTTP 标头示例:

Accept-Encoding: gzip
User-Agent: my program (gzip)