Как стать автором
Обновить

Получаем список популярных материалов на сайте через API Яндекс.Метрики на примере battle.vseofilme.ru

Часть 1


  1. Регистрируем и размещаем счетчик метрики только на главной странице сайта (иначе метрика вообще не будет учитывать посещения) и на страницах, учавствующих в рейтинге.
  2. Для того, чтобы получать данные через API получаем авторизационный токен или просто открываем публичный доступ к счетчику

Часть 2


  1. Узнаем id счетчика. (Можно узнать из ссылки на статистику. metrika.yandex.ru/stat/dashboard/?counter_id=00000.
  2. Создаем 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. Добавляем вывод из базы на нужных страницах
  4. Ставим скрипт на выполнение каждые 3 часа (или сколько вам нужно) в кроне.
    Можно обойтись и без крона, но скрипт может увеличить время загрузки страницы.

Дополнительные параметры, которые можно передать при запросе к API



Пример работы скрипта


  • battle.vseofilme.ru — Популярные битвы на battle.vseofilme.ru
  • vseofilme.ru — Вывод 2 популярных битв в правой колонке
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.