Мне нужно перебирать большое количество URL-адресов через google-analytics-api (PHP) и извлекать разные показатели, такие как pageViews, bounceRate и organicSearches.
Чтобы получить их, я попробовал следующее, что также объясняется здесь: google analytics api запрашивает определенный URL-адрес
$data = $service->data_ga->get(
"ga:".$targetId,
'2014-08-10',
date("Y-m-d"),
"ga:users,ga:sessions",
array(
'filters' => 'ga:pagePath=='.$url.', ga:medium==organic',
'dimensions' => 'ga:pagePath',
'metrics' => 'ga:pageViews, ga:bounceRate, ga:avgSessionDuration, ga:organicSearches',
'sort' => '-ga:pageviews',
'max-results' => '25'
)
);
Я также читал, что вы должны указать "ga: medium", чтобы иметь возможность получать "органический" трафик. Но объединение этих двух значений (pagePath и medium) приводит к исключению Google-Service-Exception, в котором используется параметр "Недопустимое значение" ga: medium == organic, ga: pagePath == URL "для фильтров. После удаления" ga: medium == органический "параметр работает и извлекает все параметры - кроме organicSearches", который остается нулевым.
Как я могу объединить конкретный pagePath и органический параметр?
Думаю, это сработает для вас. Только заменить
'filters' => 'ga:pagePath=='.$url.' to ''filters' => 'ga:pagePath==/page-slug',' .
и ваш код становится
$data = $service->data_ga->get(
"ga:".$targetId,
'2014-08-10',
date("Y-m-d"),
"ga:users,ga:sessions",
array(
'filters' => 'ga:pagePath==/page-slug', ga:medium==organic',
'dimensions' => 'ga:pagePath',
'metrics' => 'ga:pageViews, ga:bounceRate, ga:avgSessionDuration, ga:organicSearches',
'sort' => '-ga:pageviews',
'max-results' => '25'
)
);
Вам нужно удалить пространство между
ga:medium==organic, ga:pagePath==URL
Причина, заключающаяся в пробеле, будет закодирована до %20 и не будет действительна, и вы, вероятно, имеете в виду AND, который представлен a; а не OR, который между ними.
Поэтому ваш фильтр должен читать:
ga:medium==organic;ga:pagePath==URL