как у вас на сайте считается количество просмотров? лучше код
как у вас на сайте считается количество просмотров?
|
|
||||
|
|
3 ответа
public function getCountPageViews($pageUri, $startDate = NULL)
{
if (strpos($pageUri, '~') === 0) {
// Regular Expression
$filter = 'pagePath=' . $pageUri;
}
else {
// Equals
$filter = 'pagePath==' . $pageUri;
}
if (!$startDate) {
$startDate = date('Y-m-d', strtotime('1 month ago'));
}
else {
$startDate = date('Y-m-d', $startDate);
}
$this->_gapi->requestReportData(
$this->_config['report_id'],
array('visitorType'),
array('pageViews', 'uniquePageviews'),
NULL,
$filter,
$startDate
);
$pageviews = 0;
$uniquePageviews = 0;
foreach ($this->_gapi->getResults() as $result) {
$pageviews += $result->getPageviews();
$uniquePageviews += $result->getUniquePageviews();
}
return array(
'pageviews' => $pageviews,
'uniquePageviews' => $uniquePageviews,
);
}
Ф-я использует google analytics API. Примерное время получения ответа от google analytics - 1-1,5 секунды, что очень долго. Поэтому это делается ajaxом, чтобы пользователь не ждал. В первый параметр pageUri можно подсовывать регулярное выражение. Например, для получения кол-ва просмотров поста c id = 1001 на этом сайте, применяется такая конструкция:
$(document).ready(function(){
viewCountPageViews('~^/post/1001/.*/$', 1356958919);
});
После загрузки страницы по $(document).ready() viewCountPageViews() делает ajax запрос к моему серверу, а мой сервер к google analytics. Подробнее о том, как использовать google analytics API в Kohana можно почитать здесь. Klim, всё ли вам понятно? |
||||
|
|
|
ничего не понятно. что отображается на стр. уникальные просмотры? |
||||
|
|
|
Google API на основе данных, полученных от счётчика google analytics, возвращает мне объект с запрошенной инфой:
$this->_gapi->requestReportData(
$this->_config['report_id'],
array('visitorType'),
array('pageViews', 'uniquePageviews'),
NULL,
$filter,
$startDate
);
Параметры - это то, что я запрашиваю и по чём фильтры. Я извлекаю от туда количество просмотров конкретной страницы и количество уникальных просмотров. А затем с помощью js вставляю в dom своей траницы (на странице поста кол-во уникальных просмотров можно увидеть, подведя мышку к количеству просмотров). P.S. В разделе вопрос-ответ немного по-другому. Я сохраняю кол-во просмотров, полученное от google API к себе в базу и затем периодически обращаюсь к API, чтобы поддерживать актуальность данных. |
||||
|
|