YouTube Analytics API - Data Model

借助 YouTube Analytics API,您可以生成包含 YouTube 数据分析数据的自定义报告。该 API 支持频道和内容所有者的报告。 报告字段分为维度或指标:

  • 维度是用于汇总数据的常见条件,例如操作发生的日期或用户所在的国家/地区。

    在报告中,每行数据都具有唯一的维度值组合。因此,您为报告选择的维度决定了 YouTube 如何计算该报告中指标的值。

  • 指标是与用户活动、广告效果或估算收入相关的单项衡量数据。用户活动指标包括视频观看次数和评分(顶和踩)等。

Analytics API 提供了过滤和排序参数,因此调用应用无需原生支持这些功能。该 API 还可让您检索 YouTube 数据分析群组的数据,其中群组是一个由视频、播放列表、频道或资产组成的自定义集合,最多可包含 500 项内容。

选择报告参数

当您使用 API 的 reports.query 方法请求报告时,API 请求包含五个参数,用于确定如何计算报告值:

  • startDate 和 endDate 参数用于指定报告将包含哪个时间段的数据。API 响应实际上包含截至指定最后一天的数据,前提是查询中的所有指标在查询时都可用。

  • metrics 参数指定将包含在报告中的测量结果。在频道报告中,指标用于衡量用户活动,包括观看次数和顶的次数等值。部分指标还可衡量广告效果或估算收入。

  • dimensions 参数说明了指标的分组方式。

  • filters 参数说明了如何过滤报告数据。例如,报告可以经过滤后仅包含某个国家/地区、视频或视频组的指标,而不是返回频道的所有数据。

    注意:该 API 允许您为 video、playlist 和 channel 过滤条件指定多个值。如果您这样做,则还可以在维度列表中添加该过滤条件,以便返回的指标也按视频、播放列表或频道分组。

示例报告选项

例如,假设频道所有者想要检索视频设备类型报告,以确定频道的视频在移动设备、游戏机、电视等设备上获得了多少观看次数。

  • 频道所有者将 startDate 参数设置为 2015-06-01,将 endDate 参数设置为 2015-07-31。根据这些值,报告将包含两个月的数据。

  • 设备类型报告支持 views 和 estimatedMinutesWatched 指标,因此频道所有者将 metrics 参数设置为 views,estimatedMinutesWatched。

  • 对于 dimensions 参数,频道所有者有多种选择。以下列表中显示了其中两个,第三个将在本部分后面介绍 filters 参数值时进行讨论。

    • 将参数值设置为 deviceType 意味着,在报告涵盖的整个时间段内,观看次数和观看时长统计信息将按设备类型分组。因此,通过此值,报告数据将回答以下问题:

    • 2015 年 6 月 1 日至 2015 年 7 月 31 日期间,该频道的视频在移动设备上被观看了多少次?

    • 在 2015 年 6 月 1 日至 2015 年 7 月 31 日期间,该频道的视频在游戏机上被观看了多少次?

    该报告实际上会包含每种设备类型的总观看次数和观看时长。

    • 将参数值设置为 day,deviceType 意味着,系统会按设备类型计算报告期内每天的观看次数和观看时长。因此,通过此值,报告数据将回答以下问题:

    • 2015 年 6 月 1 日,该频道的视频在移动设备上被观看了多少次?

    • 2015 年 7 月 14 日,该频道的视频在电视上被观看了多少次?

  • 最后,filters 参数允许频道所有者限制报告,使其仅包含与特定过滤条件值匹配的数据。该报告支持的过滤选项太多,无法一一说明,因此这些示例仅代表您可以生成的报告的一小部分。

    • 频道所有者可以过滤请求,以便仅返回 Android 操作系统的相关值。(在报告期内,Android 移动设备上发生了多少次观看?)

    • 频道所有者可以过滤请求,以便仅返回特定国家/地区的值。(在报告期内,视频在加拿大每天的观看次数是多少?)

    • 频道所有者可以过滤请求,以便仅返回特定视频的值。不过,video 过滤条件支持逗号分隔列表的值,因此报告实际上可能包含多个视频的数据。

    此外,如果 video 过滤条件指定了多个值,则 video 也可以指定为维度。这意味着 dimensions 参数还支持值 deviceType,video 和 day,deviceType,video。

    • 如果频道所有者在维度列表中添加了 video,则指标会为每个视频指定单独的值。(2015 年 6 月 1 日,视频 XYZ 在游戏机上被观看了多少次?)
    • 如果频道所有者未在维度列表中添加视频,则指标会指定涵盖所有指定视频的总值。(2015 年 6 月 1 日,视频 ABC、DEF 和 XYZ 在游戏机上被观看了多少次?)

数据新鲜度和延迟时间

虽然 YouTube Analytics API 支持定向查询,但底层分析数据并非实时数据。数据处理通常会产生 48 到 72 小时的延迟。因此,API 响应不包含最近几天的数据,并且报告的 endDate 仅包含截至所有请求的指标都已完全处理的最后一天的相关数据。

由于数据延迟,您可能会发现 API 返回的数据与 YouTube 工作室中显示的实时指标之间存在差异。如果您的应用需要单个视频的实时统计信息(例如当前观看次数、顶次数或评论数),请使用 YouTube Data API 的 videos.list 方法,而不是 YouTube Analytics API。

正在检索报告

如需检索报告,请向 API 的 reports.query 方法发送已获授权的 GET 请求,并指定用于定义要检索的报告的参数。

如需查看该 API 支持的报告列表,请参阅频道报告和内容所有者报告文档。每个报告定义都会标识报告允许的 metrics、dimensions 和 filters 参数值。

最佳做法

使用 YouTube Analytics API 的应用应始终遵循以下做法:

  • 使用响应的标题行来确定报告列的顺序。 例如,不要因为观看次数是报告说明中列出的第一个指标,就认为它是响应中返回的第一个指标。而是应使用响应的标题行来确定哪一列包含该数据。
  • 使用 YouTube Data API 检索 YouTube Analytics API 响应中标识的资源的其他元数据。如 YouTube API 服务开发者政策(第 III.E.4.b 至 III.E.4.d 节)中所述,API 客户端必须在 30 天后删除或刷新该 API 中存储的资源元数据。

汇总指标和已删除的内容

YouTube Analytics API 响应不包含已删除内容的指标细分。例如,如果频道所有者删除了某个视频,那么该视频将不再列在返回逐个视频指标的 API 响应中。不过,汇总一组资源的指标的报告仍会包含与已删除项关联的指标。

例如,假设频道所有者检索了两个报告。第一份报告列出了特定时间段内频道所有视频的每日总观看次数。第二份报告列出了同一时间段内每个视频的每日总观看次数。

在这种情况下,第一份报告中的数字将包含后来被删除的视频的观看次数,因为第一份报告包含每日汇总数据。不过,第二份报告不会包含与已删除内容相关的观看次数,因为第二份报告会逐个列出视频的观看次数。因此,如果频道在报告涵盖的时间段内删除了视频,则第一份报告中显示的每日总观看次数可能会高于第二份报告中每日特定视频观看次数的总和。

数据匿名化

如果相关指标达不到特定阈值,YouTube 数据分析中会有一些数据因受到限制而不予显示。很多报告都可能会出现这种情况。在实践中,这意味着如果出现以下情况,报告可能不会包含您的所有(或任何)数据:

  1. 视频或频道在指定时间段内流量有限,

    或

  2. 您选择了特定过滤条件或维度(例如流量来源或国家/地区),但其值未达到特定阈值。

在数据因受限而不予显示时,不同报告中显示的总计数可能会有所不同,具体取决于这些报告汇总数据的方式。

例如,假设频道所有者检索了两个报告。第一份报告列出了特定视频的总观看次数,第二份报告则按国家/地区列出了该视频的总观看次数。如果在指定时间段内,该视频的观看次数为 1,000 次,其中 500 次观看发生在美国,498 次观看发生在加拿大,2 次观看发生在法国。

在此示例中,第一份报告会显示该视频的观看次数为 1, 000 次。第二份报告仅会显示该视频在美国被观看了 500 次,在加拿大被观看了 498 次。由此可看出,两份报告中的总观看次数存在差异。请注意,第二份报告不会显示发生的另外两次观看,即不会显示发生在法国的任何观看次数。

受限的数据类型

YouTube 数据分析报告中的以下数据可能会受到限制:

  • 受众特征数据,例如年龄和性别。
  • 地理位置数据,包括与观看者所在国家/地区相关的指标或维度,例如其国家/地区。 但请注意,报告不会对收入指标应用地理位置阈值。
  • 与特定流量来源相关的指标,例如引导观看者观看您视频的搜索字词或外部网址。例如,带来极少观看次数的搜索字词和网址不会显示在报告中,但您仍会看到为您的内容带来大量观看者的字词和网址。

如需详细了解 YouTube 数据分析报告中因受限而不予显示的数据,请参阅 YouTube 帮助中心。

配额用量

您发出的每个 API 请求都会计为 1 个单位的 API 使用配额。配额限制会显示在 Google Cloud 控制台的配额面板中。