2017-05-17 106 views
0

我正在將我的應用程序遷移到V4,問題是您需要將includeEmptyRows設置爲TRUE,這就是我剛纔所做的。然而,空行根本沒有填充。Google Analytics API V4:includeEmptyRows:'true',Not Working

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.

回答

1

的文件可能是好多了 - 不幸的是它會導致人們相信,你會得到行維度的每個組合返回有零值。不幸的是,這不是事實。如果您要從查詢中排除ChannelGrouping,即使有0個會話,您也確實會獲得日期範圍內所有yearMonth值的行。

換句話說,當您在查詢中只包含日期維度(而不是時間維度)時,它的工作方式與您期望的相同。

我相信這是因爲每個日期的每個維度的基數是未知的。你會期望每一年MONO和ChannelGrouping組合有0個會話嗎?如果將國家和城市作爲維度添加,會怎麼樣?

有可能得到你之後的結果,而不是針對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(查詢如上圖所示):

現在在查詢器上執行cross join 1和2,從輸出中刪除會話。您將有一張表格,其中包含yearMonth和channelGrouping的所有組合。讓我們把這個表4

result of cross join and dropping sessions column

下一頁上的表4和查詢3執行左外連接,從查詢下探yearMonth和channelGrouping 3.

left outer join dropping columns

你現在有表5 ,它具有yearMonth和channelGrouping的所有組合,會話的值在該組合中有會話,其餘爲空值。

最後用零替換空值,並且獲得了您之後的數據集。

isnull([Original.sessions], 0) 

includeEmptyRows final result

+1

偉大的答案。我遇到了很多問題。谷歌需要在他們的文檔中更清楚地說明這一點! – OllyBarca

+1

真棒,非常好的推理。我採用了不同的方法,並將Google Analytics給出的monthYear值與所請求的時間範圍內給出的值進行比較,然後填補差距中的零。非常感謝! –

相關問題