2013-05-24 21 views
9

Mam dostęp do interfejsu Google Analytics API z PHP, który działa na moim końcu, ale chciałbym odfiltrować wyniki nieco dalej. Teraz używam:google analytics api zapytanie o konkretny URL

$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' 
    ) 
); 

Obecnie ta zwraca zestaw 25 stron posortowanych według swoich przebojów. Chciałbym ograniczyć wyniki do określonej ścieżki na serwerze. Np. tylko zapytanie domain.com/news i zobacz tylko, jakie są najbardziej trafne strony z wiadomościami. Mogę filtrować za pomocą PHP, ale raczej zapytanie jest tak szczegółowe, jak to tylko możliwe.

Dzięki za pomoc

Odpowiedz

18

Użyj opcji 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' 
    ) 
); 

Zobacz here do listy wymiarów śledzenia stronie można filtrować.

+0

dziękuję! Zauważyłem, że użycie '==' insteat '= @' działa lepiej dla mnie, ale ten sam problem tutaj: czy mogę filtrować bezwzględny adres? więc 'domain.com/interviews/article/news' nie zostanie znalezione w wyniku dla' 'filters' => 'ga: pagePath ==/news', '? – Dominik

+0

'==' powinno być dokładnie dopasowane, '= @' szuka czegokolwiek zawierającego wyrażenie. Zobacz https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterOperators dla wszystkich operatorów, których możesz używać w filtrach. – Barmar

+0

tak dobrze, to jest problem. to teraz nie zwraca nic, ponieważ/news sam nie jest stroną, ale 'domain.com/news/something' jest .... więc myślę, że szukam czegoś takiego jak' 'filters' => 'ga: pagePath ==/news * ', ' – Dominik

10

Trzeba użyć ciąg filtrów powiedzieć „jeśli ścieżka zawiera/news”, które może być wykonane w następujący sposób:

$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')); 

Odpowiedź dostarczane przez Barmar znajdzie tylko dokładne dopasowanie strony/news .

+0

to wszystko. dzięki! chociaż zajrzy do adresu URL i znajdzie wszystkie adresy URL, które mają "/ news" na swojej ścieżce. domain.com/news/article i domain.com/interviews/article/news podobne ... czy istnieje sposób na ograniczenie do 'domain.com/news /'? – Dominik

Powiązane problemy