Понедельник, 22 февраля 2016 17:47

API Яндекс Метрика и Google Charts

Оцените материал
(4 голосов)

Просматривая документацию API Яндекс Метрика и попутно ища в вебе примеры решений, реализованных на основе этого, весьма, на мой взгляд, дружелюбного API... неожиданно для самого себя я убедился, что общедоступных, общеупотребимых разработок здесь очень немного.

По сути, количество визитов на счетчике сайта - практически единственный способ отображения в открытом доступе данных web-аналитики Яндекса; и это при том, что возможности отчетов Яндекс Метрики, с учетом новых функций сегментации и параметризации - поистине впечатляют. Отличный продукт, вполне достойный того, чтобы потратить время на его изучение. Да, все мы порой бегло анализируем данные Яндекс Метрики, авторизовавшись на Яндексе, и, как правило - не более того... почему? Должным образом структурированные отчеты аналитики, опубликованные на страницах вашего web-ресурса, вполне могли бы способствовать росту его популярности, представляя из себя хорошо оформленные информативные виджеты. Почему бы и нет, кто сказал, что статистика сайта уместна только в бакенде? Например, интерактивно обновляемый перечень самых посещаемых страничек или же популярность сайта в социальных сетях по версии Яндекс Метрика - вполне могли бы не только украсить страницы интернет-портала или корпоративной web-странички, но и привлечь новых посетителей.

 

Разработка сайтов

 

Попробуем? Мне, например, раньше как-то не приходило в голову, что, судя по приведенной в начале статьи статистике визитов, структурированной по регионам, странички этого блога пользуются у американцев даже несколько большей популярностью, нежели у европейцев... оригинальный чарт Яндекс Метрика сформирован иначе, и подобное сравнение не сразу бросается в глаза. Хотя, может быть, оно и к лучшему, что "не бросается", в свете последних-то событий? Взгляните; как ни странно, русскоязычный этот сайт по-прежнему немало популярен среди навсегда братского, как мне всю жизнь внушали, народа Украины, с которым теперь уже не разделяет вообще ничего, кроме сущего пустяка: войны... поискав глазами в перечне стран, по какой-то странной и абсурдной, внезапно пришедшей в голову аналогии, Турцию и Сирию - я понял, что кое-какие технические моменты представленного решения еще нуждаются в доработке. Оставим это на будущее; отбросим сейчас попытки очень невеселого юмора и сходу перейдем к технической части.

 

29.02.2024. Отказался от использования кода Яндекс.Метрика в этом блоге, месяц назад закрыл договор с РСЯ. Все новые и новые технические проблемы сервисов Яндекса раздражают все более, перспектива же общения с саппортами Яндекса не прельщает от слова вообще. Подробнее по ссылкам. Если в двух словах - прощай, Яндекс.

 

Прежде всего, следует отметить, что идея обойтись сугубо js - успешного продолжения не получила: Яндекс Метрика явно не желает отдавать правильные корсы (подробнее см. статью Про cross-origin и джаваскрипты), а обращаться к JSONProxy нет никакого желания. Почему так происходит у Яндекса - это уже вопрос к представителям технической поддержки Яндекса; а в ожидании ответа - придется нам с вами прибегнуть в контексте демки к php и Google Charts.

Итак, все несложно; выбираем среди галереи Google Charts понравившийся шаблон, формируем запрос к API и далее прибегаем к несложному циклу для обработки получаемого JSON таким примерно образом... не забудьте, вам придется подставить вместо звездочек номер вашего счетчика на Яндекс Метрика и токен:

 

<?
$obj = json_decode(file_get_contents('https://api-metrika.yandex.ru/stat/v1/data?id=********&dimensions=ym:s:regionCountry&metrics=ym:s:visits&oauth_token=*************************'), true);
for( $i = 0; $i < 12; $i++){
echo '[', "'", $obj['data'][$i]['dimensions'][0]['name'], "'", ', ', $obj['data'][$i]['metrics']['0'], '],';
}
?>

 

Если не указывать специально CSV в качестве формата получения данных, а также временной отрезок - получаем по-дефолту статистику за недельный отрезок времени в формате JSON. Собственно, всегда возможны варианты; например, в контексте сообщения команды Яндекс Метрика о том, что, начиная с 13 февраля 2019 года передача токена авторизации в параметрах URL как устаревшего способа авторизации, перестанет поддерживаться - вы можете реализовать авторизацию по токену в HTTP-заголовке. За подробностями - велкам на форум.

 

Продолжение темы - в материале API Яндекс Метрика и Highcharts. Попробуйте сравнить возможности Google Charts и Highcharts!

 

Документация API Яндекс Метрика содержит, в частности, ряд примеров, к которым вы вполне можете обратиться при формировании токена и написании запросов: рекомендую, к слову, использовать именно актуальную версию API взамен устаревшей. Полностью код продемонстрированного виджета Яндекс Метрики всегда доступен на форуме; ну а продолжение, как обычно, следует.

Последнее изменениеЧетверг, 29 февраля 2024 19:32

2 комментарии

  • Комментировать Aleksej Вторник, 12 апреля 2016 13:26 написал Aleksej

    Как решить? - натурально, по аналогии, Михаил. Статьи о Highcharts и JSONP присутствуют на сайте, проиллюстрированы примерами кода и живыми демками. Но учтите, JSONP на сегодняшний день уже мало кем поддерживается.

  • Комментировать Михаил Вторник, 12 апреля 2016 11:36 написал Михаил

    А как решить эту задачу, используя JSONP и Highcharts?

Оставить комментарий

Добавьте ваш комментарий

All sorts of things