2014-01-15 50 views
2

我正在嘗試從兩個特定dateHours之間的Google AnalyticsAPI檢索結果。我試圖使用以下過濾器:如何使用Google Analytics API上的dateHour過濾?

'filters' => 'ga:dateHour>2013120101;ga:dateHour<2013120501' 

但這不起作用。我需要做什麼? (我之前使用過其他濾鏡,而且它們工作得很好)。

回答

3

首先,您試圖對不起作用的維度使用大於和小於。維度過濾器只允許==,!=,= @,!@,=〜和!=。

所以,如果你想獲得GA:dateHour,你必須使用正則表達式過濾器:

ga:dateHour=~^2013120([1-4][0-2][0-9]|500)$;ga:dateHour!~^201312010[0-1]$ 

編輯: 我會毫不猶豫第二學習正則表達式,特別是如果你」是一名程序員。這裏有一篇關於learning regular expressions的SO帖子。

因此,要打破它:

=~ looking to match the following regex 
!= not looking to match the following regex 

(看看GA's filter operators

^一個字符串

2013120的開始,因爲整個dateHour範圍包含數字的這個字符串,尋找那

([1-4][0-2][0-9]|500)後匹配每個數字因此第一個[1-4]將匹配20131201,20131202,2013120320131204,那麼在這些字符串中,我們希望下一個數字是[0-2],並且與[0-9]同樣如此。所以看看每個[]作爲一個數字範圍的佔位符。

|手段或

500說,我們只希望500,僅此而已,所以它是非常具體的。

整個聲明被包裹在()所以我們可以說他匹配[1-4][0-2][0-9]500,在2013120之後。

然後,我們以$結束它以表示字符串的結尾。

這可能不是最簡潔的方式來描述這個過濾器是如何工作的,但我會做的是使用像regexpal或其他一些正則表達式測試工具的網站,並獲得您想要過濾的範圍和開始寫正則表達式。

祝你好運!

+0

謝謝Blexy,它的工作原理。你介意給出一個你正在使用的正則表達式的快速解釋嗎?我不完全理解它。我問,因爲我將不得不篩選各種不同的dateHours,並需要能夠編輯正則表達式。 – TheBigDoubleA

相關問題