[EVO] Сниппет посещаемости страницы на основе Google Analytics

Встал вопрос о выводе количества посещаемости страницы, информации по этому вопросу было не много, были решения, использующие стандартные возможности modx, но они были не точными, поэтому решил воспользоваться данными из Google Analytics.

Надеюсь сниппет будет полезен не только мне.

Сниппет выводит данные об уникальных посещениях страницы:


Прочитать о разнице между типами посещений можно в официальной поддержке Google Analytics.

Поэксперементировать с параметрами ввода и возвращаемыми значениями можно на этой странице.

Сам сниппет очень маленький, в основном состоит из библиотеки gapi

Установка

Создаем сниппет pageAnalytics, вставляем в него следующий код:
<?php
return require MODX_BASE_PATH.'assets/snippets/pageanalytics/pageanalytics.php';
?>

Сохраняем. После чего должен появиться код файла. Тут нужно будет внести изменения:
  • введите логин от аккаунта, который имеет доступ к статистике (наличие прав администратора необязательно).
  • Пароль от этого аккаунта.
  • Идентификатор представления. Получить его можно двумя способами:
  • Введите дату начала сбора статистики в формате YYYY-MM-DD

Сохраняем и можем использовать, но необходимо учесть:
  • Вызов сниппета некэшируемый
  • Сниппет не использует api modx
  • Поэтому он не будет работать при вызове в Ditto (сделаю это позже)
  • При изменении адреса страницы данные обнуляются.
  • Данные в GA обновляются с небольшой задержкой.

Скачать архив: pageAnalytics

8 комментариев

avatar
Если данные обновляются с задержкой, то лучше было бы их кэшировать, а не запрашивать каждый раз при просмотре страницы — опять же у api гугла могут быть ограничения на количество запросов.
avatar
Информации про ограничение api analytics я не нашел, но вполне возможно. А если кэшировать, то придется периодически чистить кэш, чтобы обновить статистику страницы.
Столкнулся с другой проблемой, время формирования страницы увеличивается почти на секунду.
avatar
В том же RSS cache, который используется в админке, можно задавать время жизни кэша. Проблему с задержкой опять же кэширование решило бы частично, а еще можно счетчик посещений показывать через аякс (но тогда в пролете Ditto).
Проблема есть еще одна, более глобальная — с этим решением не получится, например, отсортировать страницы по количеству просмотров или вывести список самых посещаемых.
Так что получается, что относительная точность требует как-то много усилий, а нужна ли она вообще обычному посетителю?
Комментарий отредактирован 2014-02-24 17:41:29 пользователем Pathologic
avatar
В evo на сколько я знаю нельзя задавать время жизни кэша, поэтому переделаю сниппет в плагин, с записью в tv.
avatar
В evo на сколько я знаю нельзя задавать время жизни кэша, поэтому переделаю сниппет в плагин, с записью в tv.
Вам же верно говорят:
В том же RSS cache, который используется в админке, можно задавать время жизни кэша.
Так что откройте код класса и посмотрите как пользоваться этим делом.
Комментарий отредактирован 2014-02-25 14:31:55 пользователем Agel_Nash
avatar
Где можно скачать?
avatar
Сниппету 4 года, API аналитикса уже много раз поменялось, скорее всего, уже неактуально.
avatar
Жаль, очень нужен такой сниппет.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.