2013-05-24 40 views
9

Tôi đang truy cập API phân tích của Google với PHP hoạt động trên đầu của tôi nhưng tôi muốn lọc kết quả hơn một chút. Ngay bây giờ tôi đang sử dụng:truy vấn google analytics api một url cụ thể

$OBJresult = $analytics -> data_ga -> get(
    'ga:' . $profilID, 
    '2012-01-01', 
    date("Y-m-d"), 
    'ga:visits', 
    array(
     'dimensions' => 'ga:pagePath', 
     'metrics' => 'ga:pageviews', 
     'sort' => '-ga:pageviews', 
     'max-results' => '25' 
    ) 
); 

Hiện này trả về một tập của 25 trang được sắp xếp theo hit của mình. Tôi muốn giới hạn kết quả đến một đường dẫn cụ thể trong máy chủ. Vì vậy, ví dụ: chỉ truy vấn domain.com/news và chỉ xem những trang tin tức được truy cập nhiều nhất là gì. Tôi có thể lọc bằng PHP nhưng có truy vấn càng cụ thể càng tốt.

Thanks for the help

Trả lời

18

Sử dụng tùy chọn filters.

$OBJresult = $analytics->data_ga->get(
    'ga:' . $profilID, 
    '2012-01-01', 
    date("Y-m-d"), 
    'ga:visits', 
    array(
     'filters' => 'ga:pagePath==/news', 
     'dimensions' => 'ga:pagePath', 
     'metrics' => 'ga:pageviews', 
     'sort' => '-ga:pageviews', 
     'max-results' => '25' 
    ) 
); 

Xem here để biết danh sách thứ nguyên theo dõi trang bạn có thể lọc.

+0

cảm ơn bạn! Tôi thực sự tìm thấy bằng cách sử dụng '==' insteat của '= @' hoạt động tốt hơn cho tôi nhưng cùng một vấn đề ở đây: tôi có thể lọc địa chỉ tuyệt đối? vì vậy 'domain.com/interviews/article/news' sẽ không được tìm thấy trong kết quả cho' 'filters' => 'ga: pagePath ==/news', '? – Dominik

+0

'==' phải là kết hợp chính xác, '= @' tìm bất kỳ thứ gì chứa biểu thức. Xem https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterOperators cho tất cả các toán tử bạn có thể sử dụng trong các bộ lọc. – Barmar

+0

vâng, đó cũng là vấn đề. điều này bây giờ trả về không có gì là/tin tức một mình không phải là một trang nhưng 'domain.com/news/something' là .... vì vậy tôi đoán tôi đang tìm một cái gì đó như' 'bộ lọc' => 'ga: pagePath ==/tin tức * ', ' – Dominik

10

Bạn cần sử dụng chuỗi bộ lọc để nói "nếu đường dẫn bao gồm/news" có thể được thực hiện như sau:

$OBJresult=$analytics->data_ga->get(
    'ga:'.$profilID, 
    '2012-01-01', 
    date("Y-m-d"), 
    'ga:visits', 
    array(
     'filters' => 'ga:[email protected]/news', 
     'dimensions' => 'ga:pagePath', 
     'metrics' => 'ga:pageviews', 
     'sort' => '-ga:pageviews', 
     'max-results' => '25')); 

Câu trả lời được cung cấp bởi Barmar sẽ chỉ tìm thấy một kết hợp chính xác cho trang/news .

+0

thats it really. cảm ơn! mặc dù điều này sẽ xem xét url và tìm tất cả các url có "/ news" trong đường dẫn của nó. domain.com/news/article và domain.com/interviews/article/news giống nhau ... có cách nào để giới hạn ở 'domain.com/news /' không? – Dominik

Các vấn đề liên quan