2013-05-24 4 views
9

Ich greife auf die Google Analytics API mit PHP zu, die an meinem Ende funktioniert, aber ich würde gerne die Ergebnisse ein wenig weiter filtern. Im Moment bin ich mit:google analytics api eine spezifische URL abfragen

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

Derzeit gibt diese eine Reihe von 25 Seiten durch seinen Treffer sortiert. Ich würde gerne die Ergebnisse auf einen bestimmten Pfad innerhalb des Servers beschränken. So z.B. Nur domain.com/news abfragen und nur sehen, was die meisten Nachrichtenseiten sind. Ich kann mit PHP filtern, sondern habe die Abfrage so spezifisch wie möglich.

Danke für die Hilfe

Antwort

18

Verwenden Sie die filters Option.

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

Siehe here für die Liste der Seiten-Tracking-Dimensionen, die Sie auf filtern.

+0

danke! Ich fand tatsächlich, dass die Verwendung des '==' insteat von '= @' für mich besser funktioniert, aber das gleiche Problem hier: kann ich die absolute Adresse filtern? '' domain.com/interviews/article/news' würde im Ergebnis nicht gefunden werden für '' filters '=>' ga: pagePath ==/news ', '? – Dominik

+0

'==' sollte eine exakte Übereinstimmung sein, '= @' sucht nach allem, was den Ausdruck enthält. Unter https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterOperators finden Sie alle Operatoren, die Sie in Filtern verwenden können. – Barmar

+0

Ja, das ist das Problem. das gibt jetzt nichts zurück, da/news allein keine seite ist, aber 'domain.com/news/etwas' ist .... also suche ich nach etwas wie '' filter '=>' ga: pagePath ==/news * ', ' – Dominik

10

Sie müssen die Filter-String verwenden, zu sagen, „wenn Pfad enthält/Nachrichten“, die wie folgt durchgeführt werden kann:

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

Die Antwort von Barmar geliefert wird nur eine genaue Übereinstimmung für die/News-Seite finden .

+0

das ist es wirklich. Vielen Dank! obwohl das in die URL schauen wird und alle URLs finden, die "/ Nachrichten" in seinem Pfad haben. domain.com/news/article und domain.com/interviews/article/news gleichermaßen ... gibt es eine Möglichkeit, auf 'domain.com/news /' zu beschränken? – Dominik