2013-05-24 23 views
9

Sto accedendo all'API di Google Analytics con PHP che funziona sulla mia parte ma mi piacerebbe filtrare ulteriormente i risultati. In questo momento sto usando:google analytics api query a url specifico

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

Attualmente questo restituisce una serie di 25 pagine ordinate per i suoi successi. Mi piacerebbe limitare i risultati a un percorso specifico all'interno del server. Quindi ad es. solo interrogare domain.com/news e vedere solo quali sono le pagine di notizie più hit. Posso filtrare con PHP, ma preferisco che la query sia la più specifica possibile.

Grazie per l'aiuto

risposta

18

Utilizzare l'opzione 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' 
    ) 
); 

Vedere here per l'elenco delle dimensioni pagina di monitoraggio è possibile filtrare.

+0

grazie! In realtà ho trovato che l'uso di '==' insteat of = = 'funziona meglio per me, ma lo stesso problema qui: posso filtrare l'indirizzo assoluto? quindi 'domain.com/interviews/article/news' non verrebbe trovato nel risultato per' 'filters' => 'ga: pagePath ==/news', '? – Dominik

+0

'==' dovrebbe essere una corrispondenza esatta, '= @' cerca tutto ciò che contiene l'espressione. Vedi https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterOperators per tutti gli operatori che puoi utilizzare nei filtri. – Barmar

+0

sì, questo è il problema. questo ora non restituisce nulla come/news da solo non è una pagina ma 'domain.com/news/something' è .... quindi suppongo di cercare qualcosa come' 'filters' => 'ga: pagePath ==/news * ', ' – Dominik

10

è necessario utilizzare la stringa filtri per dire "se il percorso comprende/news" che può essere fatto come segue:

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

La risposta fornita dal Barmar sarà solo trovare una corrispondenza esatta per la pagina/notizie .

+0

questo è davvero. Grazie! anche se questo cercherà nell'URL e troverà tutti gli URL che hanno "/ news" nel suo percorso. domain.com/news/article e dominio.com/interviews/article/news allo stesso modo ... c'è un modo per limitare a 'domain.com/news /'? – Dominik

Problemi correlati