Google Analytics API V4:includeEmptyRows:'true',不工作

Google Analytics API V4: includeEmptyRows: 'true', Not Working

我正在将我的应用程序迁移到 V4,问题是您需要将 includeEmptyRows 设置为 TRUE,而这正是我刚刚完成的。然而,空行根本没有填充。

function queryReports() {
    gapi.client.request({
        path: '/v4/reports:batchGet',
        root: 'https://analyticsreporting.googleapis.com/',
        method: 'POST',
        body: {
            reportRequests: [
                {
                    **includeEmptyRows: 'true',**
                    //**this above for empty rows

                    viewId: VIEW_ID,
                    dateRanges: [
                        {
                            startDate: startDate0,
                            endDate: endDate0
                        }
                    ],
                    //**below samplimg levels
                    samplingLevel: 'LARGE',
                    //request metrics here
                    metrics: [
                        {
                            expression: 'ga:sessions',
                        }
                        ,
                        {
                            expression:'ga:goalCompletionsAll',
                        },
                        {
                            expression:'ga:transactionRevenue',
                        },
                        {
                            expression:'ga:transactions',
                        },
                    ],
                    //request dimensions here
                    dimensions: [
                        {
                            name:'ga:channelGrouping',
                        },

                        {
                            name:'ga:yearMonth',
                        },
                    ],
                }
            ]
        }
    }).then(displayResults, console.error.bind(console));
}

我得到的只是非空行值,因此对于没有任何特定频道数据的月份,我会直接跳过:/

不确定这里出了什么问题,我遵循了文档中的规范,但它根本不起作用。

希望有人能帮帮我,

非常感谢 J.

文档可能会更好 - 不幸的是,它让人们相信您会为具有零值的每个维度组合返回行。不幸的是,事实并非如此。如果您要从查询中排除 ChannelGrouping,您确实会获得日期范围内所有 yearMonth 值的行,即使有 0 个会话。

换句话说,当您在查询中仅包含日期维度(而不是时间维度)时,这会像您预期的那样工作。

我认为这是因为每个日期段内每个维度的基数未知。您是否希望每个 yearMonth 和 ChannelGrouping 组合都有 0 个会话的行?如果添加国家和城市作为维度会怎样?

有可能获得您想要的结果,而不是来自针对 API 的单个查询。以下是使用 Analytics Canvas 的步骤大纲,但您可以使用 JavaScript(或任何语言进行 API 调用)和 SQL 自行执行相同的步骤.

要获得您想要的结果,请进行以下 3 次查询:

1) yearMonth and sessions with empty rows:

2) channelGrouping and sessions over the time period

3) yearMonth, channelGrouping, and sessions(你的查询如上图):

现在对查询 1 和 2 执行 cross join,从输出中删除会话。您将拥有一个 table,其中包含您的时间段内 yearMonth 和 channelGrouping 的所有组合。我们称之为 Table 4.

接下来对 Table 4 和查询 3 执行左外连接,从查询 3 中删除 yearMonth 和 channelGrouping。

您现在有 Table 5,其中包含 yearMonth 和 channelGrouping 的每个组合,其中包含该组合中的会话的会话的值,以及其余的空值。

最后用零替换空值,你就得到了你想要的数据集。

isnull([Original.sessions], 0)