如何使用 Google Analytics API 按非常大的 URL 列表进行过滤?
How to filter by a very large list of URLs with the Google Analytics API?
我有 Node.js 代码,看起来有点像这样:
analytics.data.ga.get({
metrics: 'ga:pageviews,ga:users',
dimensions: 'ga:date',
filters: urlPaths.map(path => `ga:pagePath==${path}`).join(','),
'start-date': '30daysAgo',
'end-date': 'yesterday',
// sort: '-ga:date',
'max-results': 30,
}, (err, response) => {
if (err) return next(err)
res.json(response)
})
其中 urlPaths 可能是一个非常大的数组。
为了提供一些背景信息,我有一个网站,每个用户都可以上传图片,这些图片最终都有自己独特的 url(例如 /file/:some_unique_hash
),我希望能够过滤为每个用户输出我的分析数据。现在唯一的方法是提取用户上传的文件列表,并将可能非常大的 URL 列表传递给 Google Analytics API 的过滤器参数。
如果每个 URL 都以用户的用户名作为前缀(例如 /:some_username/:some_file
),那会容易得多,因为这样我就可以简单地将正则表达式传递给过滤器。但不幸的是,我认为我无法更改 URL 结构。
我相信一种解决方案是使用他们的客户端脚本将额外的数据传递给 GA,以 "tag" 某些页面视图作为 "belonging" 给用户,然后使用该自定义变量过滤掉 GA数据。那可能吗?解决此问题的其他建议?
我通过在 Google Analytics 中创建一个 "author" 自定义维度并在我的所有 /file/...
页面浏览量上设置该维度来解决这个问题。然后,我可以在使用 Google Analytics Core API 检索数据时按作者维度进行过滤。这是一个有帮助的 link:http://www.vsellis.com/add-author-tracking-google-analytics-wordpress-website/
我有 Node.js 代码,看起来有点像这样:
analytics.data.ga.get({
metrics: 'ga:pageviews,ga:users',
dimensions: 'ga:date',
filters: urlPaths.map(path => `ga:pagePath==${path}`).join(','),
'start-date': '30daysAgo',
'end-date': 'yesterday',
// sort: '-ga:date',
'max-results': 30,
}, (err, response) => {
if (err) return next(err)
res.json(response)
})
其中 urlPaths 可能是一个非常大的数组。
为了提供一些背景信息,我有一个网站,每个用户都可以上传图片,这些图片最终都有自己独特的 url(例如 /file/:some_unique_hash
),我希望能够过滤为每个用户输出我的分析数据。现在唯一的方法是提取用户上传的文件列表,并将可能非常大的 URL 列表传递给 Google Analytics API 的过滤器参数。
如果每个 URL 都以用户的用户名作为前缀(例如 /:some_username/:some_file
),那会容易得多,因为这样我就可以简单地将正则表达式传递给过滤器。但不幸的是,我认为我无法更改 URL 结构。
我相信一种解决方案是使用他们的客户端脚本将额外的数据传递给 GA,以 "tag" 某些页面视图作为 "belonging" 给用户,然后使用该自定义变量过滤掉 GA数据。那可能吗?解决此问题的其他建议?
我通过在 Google Analytics 中创建一个 "author" 自定义维度并在我的所有 /file/...
页面浏览量上设置该维度来解决这个问题。然后,我可以在使用 Google Analytics Core API 检索数据时按作者维度进行过滤。这是一个有帮助的 link:http://www.vsellis.com/add-author-tracking-google-analytics-wordpress-website/