Google AnalyticsAPI API4:includeEmptyRows:'true',Not Working

时间:2017-05-17 13:23:24

标签: google-analytics-v4

我正在将我的应用程序迁移到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));
}

我只获得空行值,所以几个月内没有关于任何特定频道的数据只是跳过:/

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

希望有人能帮助我,

非常感谢 学家

1 个答案:

答案 0 :(得分:2)

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

换句话说,当你只在查询中包含日期维度(而不是时间维度)时,这可以正常工作。

我认为这是因为每个日期的每个维度的基数都是未知的。你希望每年有一个0次会话,每个月和ChannelGrouping组合?如果您将国家/地区和城市添加为维度怎么办?

可以获得您所追求的结果,而不是针对API的单个查询。以下是使用Analytics Canvas的步骤概述,但您可以使用JavaScript(或任何用于调用API的语言)和SQL自行执行相同的步骤。

workflow to includeEmptyRows with various dimensions using Analytics Canvas

要获得您之后的结果,请进行以下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,从输出中删除会话。您将拥有一个表格,其中包含您的时间段内yearMonth和channelGrouping的所有组合。我们称之为表4。

result of cross join and dropping sessions column

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

left outer join dropping columns

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

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

isnull([Original.sessions], 0)

includeEmptyRows final result