0

我正在尝试使用 Google AppsScript 将我所有的 YouTube 视频按照他们上个月获得的收入进行排序。但是,当我将“尺寸”设置为视频时,我不断收到错误消息:

Error:{  
   "error":{  
      "errors":[  
         {  
            "domain":"global",
            "reason":"badRequest",
            "message":"The query is not supported. Check the documentation at https://developers.google.com/youtube/analytics/v1/available_reports for a list of supported queries."
         }
      ],
      "code":400,
      "message":"The query is not supported. Check the documentation at https://developers.google.com/youtube/analytics/v1/available_reports for a list of supported queries."
   }
}(line 53,
file "Code",
project "YoutubeAnalytics")

这是我的代码:

var analyticsResponse = YouTubeAnalytics.reportsQuery('channel==' + channelId,
    oneMonthAgoFormatted,
    todayFormatted,
    'views', 

{
    dimensions:
    'video',
    maxResults:
    5,
    sort:
    '-views'
});

如果我只是将“视频”更改为“天”或“7DayTotals”,它会按预期工作,因为这些也是此处列出的示例维度:https ://developers.google.com/youtube/analytics/v1/dimsmets/dims

(有趣的是,一个可能的提示是,“性别”维度也不起作用,并引发与上述相同的错误“)

我怀疑,通过查看 StackOverflow 上的类似问题,问题可能是必须声明 maxResults,并且由于某种原因我的不起作用。即使我将维度设置为“天”并获得无错误报告,maxResults 也永远不会限制为我分配给它的整数。相反,它会给出 30 个结果,因为我有一个 30 天的范围并给它一个“天”维度。

任何帮助将不胜感激,谢谢。

4

2 回答 2

0

好的。我假设他们不喜欢我使用视频作为维度是正确的,因为 maxResults 不起作用。

在 AppsScript 中格式化 maxResults 的正确方法是:'max-results': '5'

所以完成的、工作的、代码行是:

    var analyticsResponse = YouTubeAnalytics.reportsQuery('channel==' + channelId,
    oneMonthAgoFormatted,
    todayFormatted,
    'views', 

{
    dimensions: 'video',
    'max-results': '5',
    sort: '-views'
});
于 2017-10-16T19:46:15.213 回答
0

我认为这badRequest error是因为在dimensions现场,您没有放置有效的 videoID,而是放置了文字“视频”字样。检查文档

视频(核心维度)

YouTube 视频的 ID。在 YouTube 数据 API 中,这是视频资源的 id 属性的值。这是一个核心维度,受弃用政策的约束。

于 2017-10-05T08:10:22.787 回答