Раздел вопрос-ответ как у вас на сайте считается количество просмотров?

как у вас на сайте считается количество просмотров? лучше код

share

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, всё ли вам понятно?

Добавить комментарий
    как минимум 5 символов

    ничего не понятно. что отображается на стр. уникальные просмотры?
     

    Добавить комментарий
      как минимум 5 символов

      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, чтобы поддерживать актуальность данных.

      Добавить комментарий
        как минимум 5 символов

        icon Вход в систему

        зарегистрироваться