使用google-api npm从google analytics拉取数据。
当我试着查询一个特定的日期2020-05-01使用 查询资源管理器 ,总用户数为204人。
当添加中 ga:medium
总数是205。
我的查询方式是
source,medium,pagePath,channelGrouping,deviceCategory,和date作为维度。
所以总用户数接近300.我正在保存这个查询的响应数据。
我需要显示一天的总用户数。我如何处理这个问题?
查询内容如下
const res = await analyticsreporting.reports.batchGet({
requestBody: {
reportRequests: [
{
viewId: defaultProfileId,
dateRanges: dateRanges,
includeEmptyRows: false,
'pageSize': 10000,
metrics: [
{
expression: 'ga:users',
},
{
expression: 'ga:sessions',
},
{
expression: 'ga:bounces',
},
{
expression: 'ga:avgSessionDuration',
},
{
expression: 'ga:pageviews',
},
{
expression: 'ga:newUsers',
},
{
expression: 'ga:sessionDuration',
},
{
expression: 'ga:pageviewsPerSession',
},
{
expression: 'ga:bounceRate',
},
{
expression: 'ga:goalCompletionsAll',
},
],
dimensions: [
{
name: 'ga:source'
},
{
name: 'ga:medium'
},
{
name: 'ga:pagePath'
},
{
name: 'ga:channelGrouping'
},
{
name: 'ga:deviceCategory'
},
{
name: 'ga:date'
}
]
},
],
},
});
Google analytics是一个多维数据库。
A 多维数据库 是由多个关系型数据库创建的。关系型数据库允许用户以查询的形式访问数据,而多维数据库则允许用户提出与业务或市场趋势有关的分析问题。
多维数据库使用MOLAP(多维在线分析处理)来访问其数据。它们通过相当快地生成和分析数据,让用户迅速得到请求的答案。
多维数据库中的数据是以数据立方体的形式存储的。这意味着可以从多个维度和角度来观察和理解数据。
它的工作方式是在你所请求的维度上进行分析,并给你一个响应。 你不能在两件不相关的事情上进行分析,并期望得到相同的结果。 唯一能让你得到结果的方法是它们有完全相同的维度。
你可以比较苹果,并得到苹果的总数量,但如果有一个苹果不是标签苹果,如果它的标签granny smith好,这不会被包括,因为它没有标签苹果。
Google analytics的问题是数据缺失,如果你的数据没有一个叫medium的维度,而且它是空的,那么你的请求中就不会包含,因为数据不存在。
同样,这不是一个关系型数据库,你不能把它当作关系型数据库。