Получаем список популярных материалов на сайте через API Яндекс.Метрики на примере battle.vseofilme.ru
Ожидает приглашения
Часть 1
- Регистрируем и размещаем счетчик метрики только на главной странице сайта (иначе метрика вообще не будет учитывать посещения) и на страницах, учавствующих в рейтинге.
- Для того, чтобы получать данные через API получаем авторизационный токен или просто открываем публичный доступ к счетчику
Часть 2
- Узнаем id счетчика. (Можно узнать из ссылки на статистику. metrika.yandex.ru/stat/dashboard/?counter_id=00000.
- Создаем php файл, который будет получать список популярных страниц и сохранять его в базу.
<?$xml=file_get_contents("http://api-metrika.yandex.ru/stat/content/popular?id=0000"); //вместо 0000 вставляем сюда наш id $xmlp = xml_parser_create(); xml_parser_set_option($xmlp, XML_OPTION_SKIP_WHITE, 1); //устанавливает опции XML-разборщика xml_parse_into_struct($xmlp, $xml, $element, $index); //разбирает XML-данные в структуру массива xml_parser_free($xmlp); $i=7; //каждый 7 элемент в массиве $element - ссылка на страницу while($element[$i]){ if(substr($element[$i][value], 0, 34)=="http://battle.vseofilme.ru/battle/"){ //проверяем, что ссылка ведет на страницу, которую мы хотим отобразить в рейтинге. нужно заменить 34 и http://battle.vseofilme.ru/battle/ на ваш адрес и его длину //формируем html, который мы будем выводить на странице с рейтингом, для записи в базу } $i=$i+6;//каждый 7 элемент в массиве $element - ссылка на страницу} //сохраняем в базу ?>
- Добавляем вывод из базы на нужных страницах
- Ставим скрипт на выполнение каждые 3 часа (или сколько вам нужно) в кроне.
Можно обойтись и без крона, но скрипт может увеличить время загрузки страницы.
Дополнительные параметры, которые можно передать при запросе к API
- per_page, Число, Количество элементов на странице выдачи. По умолчанию выводится 100 записей.
Пример: api-metrika.yandex.ru/stat/content/popular?id=0000&per_page=50 - date1 и date2, Строка, Дата начала/окончания периода выборки в формате YYYYMMDD… По умолчанию выводится записи за последнюю неделю.
Пример: api-metrika.yandex.ru/stat/content/popular?id=0000&date1=20120101&date2=20120505
Пример работы скрипта
- battle.vseofilme.ru — Популярные битвы на battle.vseofilme.ru
- vseofilme.ru — Вывод 2 популярных битв в правой колонке