Custom-счетчик с помощью API Яндекс.Метрики

Поделиться ВКонтакте
+1

Нативный счетчик Яндекс.Метрики выглядит каким-то… приевшимся. Захотелось нарисовать свой, пусть и простой… зато свой :) Ну нарисовать/сверстать счетчик то проблем нет, а вот как получить от Яндекса данные и воткнуть в этот счетчик — сейчас расскажу…

PHP-код в виджете WordPress

Т.к. я хочу выводить счетчик в сайдбаре, то мне надо, чтобы виджеты сайдбара начали понимать и исполнять код PHP. Открываем файл functions.php, он расположен в папке активной темы WordPress. В конец файла засовываем это:

Сохраняем файл. С вордпрессом все.

Получаем данные счетчика Яндекс.Метрики с помощью API

Авторизуемся в Яндексе под аккаунтом, у которого есть доступ к нужной нам метрике. Регистрируем новое приложение здесь. Приложение надо как-то назвать (без разницы как), указать что у него есть доступ к Яндекс.Метрике на чтение данных и Callback URI указать этот:

После того, как приложение будет создано — вам дадут от него пароль (для наших целей не нужен) и ID (идентификатор приложения; очень даже нужен). Теперь необходимо получить OAuth токен. Для этого копируем вот эту ссылку:

Вместо <идентификатор приложения> в ссылку вставляем полученный ранее ID и переходим по ней, затем подтверждаем права. Обратно кинет на пустую страницу, не пугайтесь! Интересующий нас токен OAuth есть в URL’е страницы. Копируем его оттуда.

Создаем новый счетчик в сайдбаре WordPress

Дизайн счетчика и его верстку я здесь описывать не буду. Перейдем сразу к коду виджета, который будет брать данные из метрики. Лично мне нужно видеть сколько человек посещало блог за текущие сутки, за остальной подробной инфой я предпочитаю сходить в саму Метрику. Итак, создаем простой текстовый виджет в сайдбаре. В него засовываем этот код:

XXX — это номер счетчика с которого надо снять данные, а YYY — это как раз тот самый OAuth токен. Этот код получит от Метрики количество посетителей за сегодня и выведет в сайдбаре. Собственно, результат вы можете видеть справа. Если есть вопросы по расширенному использованию API Яндекса — пишите в комментариях, поковыряем вместе :)

UPD #1: В WordPress 3.6.1 по-видимому есть баг (либо еще какая-то неизвестная непонятка, обнаружить которую я не смог), однако простой код

возвращает стандартное время UTC, вне зависимости от того, что там у вас стоит в настройках вордпресса. Поэтому в коде виджета первой строкой таймзону указываем насильно.


Я советую хостинг Linode и Digital Ocean. Рефам помощь в установке и настройке — бесплатно!

  • Руслан

    Здравствуйте!
    Понадобилось доковырять счетчик. Вы получаете данный за день. Скажите, как получить данные за Вчера, Сегодня и Общее ?

  • Ilya Bazhinov

    Ветка жива еще? :) задался вопросом – как получить статистику посещаемости для каждой страницы, ну т.е. для конкретного урл. никак не могу раскопать. Кто знает?