api google analytics запрашивает определенный URL-адрес
Я получаю доступ к API Google analytics с помощью PHP, который работает с моей стороны, но я бы хотел немного отфильтровать результаты. Прямо сейчас я использую:
$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'
)
);
В настоящее время это возвращает набор из 25 страниц, отсортированных по его обращениям. Я бы хотел ограничить результаты определенным путем внутри сервера. Так, например, только запрос domain.com/news и смотрите только самые популярные новостные страницы. Я могу фильтровать с помощью PHP, но предпочитаю, чтобы запрос был как можно более конкретным.
Спасибо за помощь
3 answers
Используйте опцию 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'
)
);
Смотрите здесь список параметров отслеживания страниц, по которым вы можете фильтровать.
Вам нужно использовать строку фильтров, чтобы сказать "если путь включает /новости", что можно сделать следующим образом:
$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'));
Ответ, предоставленный Barmar, будет точно соответствовать только странице /новости.
Пример отчета V4, который может быть полезен. Слава богу, что эти запросы, их объекты и плохая документация могут вызвать серьезный рак задницы..
function segmentRequest(&$analyticsreporting) {
$query = [
"viewId" => "XXXXXXX",
"dateRanges" => [
"startDate" => "2018-02-01",
"endDate" => "2018-02-15"
],
"metrics" => [
"expression" => "ga:pageviews"
],
"dimensions" => [
"name" => "ga:pagepath"
],
"dimensionFilterClauses" => [
'filters' => [
"dimension_name" => "ga:pagepath",
"operator" => "EXACT",
"expressions" => "/en/some_cool_page.php"
]
]
];
// Call the batchGet method.
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $query) );
$response = $analyticsreporting->reports->batchGet( $body );
printResults($response->getReports());
}