我有Node.js的代碼看起來有點像這樣:如何使用Google Analytics API過濾大量網址列表?
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有可能是一個非常大的陣列。
爲了給出一些上下文,我有一個網站,每個用戶都可以上傳圖像,最終擁有自己的唯一網址(例如/file/:some_unique_hash
),我希望能夠過濾掉每個用戶的分析數據。現在唯一的方法是取出用戶上傳的文件列表,並將可能非常大的URL列表傳遞給Google Analytics API的過濾器參數。
如果每個URL都以用戶的用戶名(如/:some_username/:some_file
)作爲前綴,因爲這可以讓我簡單地將正則表達式傳遞給過濾器,那將會容易得多。但不幸的是,我認爲我不能更改URL結構。
我相信一個解決方案是使用客戶端腳本將附加數據傳遞給GA,以將某些頁面視圖「標記」爲「屬於」用戶,然後使用該自定義變量過濾出GA數據。那可能嗎?其他建議來解決這個問題?
「urlPaths可能是一個非常大的數組」,不是真的,因爲你只限於一個字符串過濾器將花費多長時間我認爲如果內存服務的最大長度是2000. – DaImTo
我認爲該選項將在您將數據插入Google Analytics時添加自定義維度,然後過濾自定義維度。 – DaImTo
「並不是真的,因爲你僅限於字符串過濾器需要多長時間」是的,這是問題...「當我將數據插入到谷歌分析時添加一個自定義維度」這是我建議的解決方案。你有沒有示例代碼或文檔參考? –