Технічні вимоги

Експорт даних для розміщення заголовків і анотацій новин на yandex.ua (зокрема й на сайті Яндекс.Новони) здійснюється в XML-based форматі RSS 2.0. Далі наведено описи елементів RSS 2.0, що використовуються для експорту даних, необхідні коментарі та зразок експортного файлу.

  1. Опис елементів RSS 2.0, що використовуються для експорту даних
  2. Символи та кодування
  3. Механізм експорту даних
  4. Приклад експортного файлу

Опис елементів RSS 2.0, що використовуються для експорту даних

Кореневим елементом RSS-файлу є rss, атрибут version якого повинен мати значення 2.0.

<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

Усередині елемента rss знаходиться елемент channel, який містить інформацію про джерело та його вміст.

Опис структури елемента <channel>

Елемент channel містить інформацію про сайт джерела.

Примітка. Обов’язкові елементи позначено значком .
Елемент Опис
title

Назва RSS-потоку.

Якщо експортується вміст цілого сайту, в title передається його назва.

<title>Російські новини</title>

Якщо експортується розділ сайту, то в назві має бути відображено, який саме.

<title>Російські новини: технології</title>

На yandex.ua назва RSS-потоку не показується, дані, що експортуються, позначаються тією назвою джерела, яку було вказано в анкеті під час підключення до сервісу Яндекс.Новини.

link

URL сайту, дані якого транслюються в потоці.

<link>http://www.rossiyskie-novosti.ru</link>
description

Опис потоку одним реченням.

Увага. В елементі description HTML-розмітка заборонена.
<description>Щоденна московська суспільно-політична газета</description>
yandex:analytics

Лічильник системи статистики для обліку відвідуваності Турбо-сторінок.

Увага. Елемент обов’язковий, якщо використовується атрибут turbo=«true».

Підтримуються один або декілька лічильників Яндекс.Метрики і по одному лічильнику LiveInternet, Google Analytics, MailRu і Rambler.

Щоб трафік на Турбо-сторінках враховувався у різних системах статистики, в елемент channel можна додати одразу декілька елементів yandex:analytics:

  • Для лічильника Яндекс.Метрики вкажіть тип системи статистики «Yandex» і id із числовим ідентифікатором лічильника.
  • Для лічильника Liveinternet зазначте тип системи статистики «LiveInternet» без id.

    Якщо лічильник використовується для декількох хостів, ви можете додати атрибут params із назвою лічильника. Тоді статистика буде збиратися саме в ньому. Для лічильника, прив’язаного до одного хосту, атрибут params додавати не потрібно.

  • Для лічильника Google Analytics зазначте тип системи статистики «Google» і id з ідентифікатором лічильника.
  • Для лічильника Mail.ru зазначте тип системи статистики «MailRu» і id з ідентифікатором лічильника.
  • Для лічильника Rambler зазначте тип системи статистики «Rambler» і id з ідентифікатором лічильника.
<yandex:analytics id="ідентифікатор на Яндекс.Метриці" type="Yandex"></yandex:analytics>
<yandex:analytics id="ідентифікатор іншого лічильника на Яндекс.Метриці" type="Yandex"></yandex:analytics>
<yandex:analytics type="LiveInternet" params="назва лічильника"></yandex:analytics>
<yandex:analytics id="ідентифікатор на Google Analytics" type="Google"></yandex:analytics>
<yandex:analytics id="ідентифікатор на Mail.ru" type="MailRu"></yandex:analytics>
<yandex:analytics id="ідентифікатор на Rambler" type="Rambler"></yandex:analytics>
yandex:adNetwork

Ідентифікатор рекламного блоку Рекламної мережі Яндекса.

Використовується для відображення рекламного блоку на Турбо-сторінках і для обліку доходів від реклами під час використання Турбо-сторінок. Додається один раз. Регістр у назві yandex:adNetwork має значення — літера «N» має бути великою.

Підтримуються лише ID Рекламної мережі Яндекса, який можна отримати після підписання додаткової угоди до поточного договору з Рекламною мережею Яндекса. В елемент потрібно додати атрибути type із типом рекламної мережі «Yandex» і id із буквено-числовим ідентифікатором рекламного блоку.

<yandex:adNetwork type="Yandex" id="SomeId"></yandex:adNetwork>
item

Новинне повідомлення.

Кожен item описує лише одне повідомлення. У channel може міститись будь-яка кількість елементів item.

У item передаються такі обов’язкові елементи:

  • title — заголовок повідомлення,
  • link — URL повідомлення,
  • pubDate — час публікації повідомлення на сайті джерела.
  • yandex:full-text — повний текст новини.
Примітка. Для підтримки формату Турбо-сторінок у відкривний тег item кожного повідомлення слід додати атрибут turbo="true".
<item turbo="true">

Опис структури елементу <item>

Елемент item містить інформацію про повідомлення.

Примітка. Обов’язкові елементи позначено значком .
Елемент Опис
title

Заголовок повідомлення

<title>Яндекс шукає на президентському сайті</title>

Елемент title повинен містити актуальний варіант заголовка повідомлення, такого ж, як на сторінці з новиною на сайті.

Максимальна довжина заголовка — 200 символів.

Увага. Заборонено:
  • Передавати заголовок повідомлення, написаний повністю великими літерами.
  • Ставити крапку в кінці заголовка.
  • Зазначати у заголовку назву джерела, дату або час повідомлення.
  • Додавати у заголовок службові примітки (наприклад, «оновлено», «доповнено», «фоторепортаж», «відео») і неінформативні звороти, які не складають невід’ємну частину заголовка (наприклад, «Терміново!» або «Сенсація»).
link

URL повідомлення.

<link>http://www.rossiyskie-novosti.ru/2003/03/25/yandex.html</link>

Усі URL в експортному файлі мають бути унікальними. Наявність у ньому двох або більше новин з однаковими URL неприпустима. Не індексуються URL із доменним іменем, що відрізняється від доменного імені сайту партнера.

Максимальна довжина URL повідомлення — 243 ASCII-символи.

Кожне повідомлення має розташовуватися на окремій сторінці, що відкривається за вказаною адресою. При цьому заголовок і початок тексту повідомлення мають бути доступні на першому екрані за роздільної здатності 1024 х 768.

Увага. Заборонено:
  • Передавати за одним URL більше ніж одну новину (стрічку новин). У разі переходу із заголовка, розміщеного на Яндекс.Новинах, має відкриватися сторінка, яка містить лише одне повідомлення, що відповідає заголовку.
  • Передавати адреси, що відрізняються лише «якорями» або «хешами» (після # і #!). Наприклад, http://www.some-host.ru/news.html#2545 і http://www.some-host.ru/news.html#5794. Такі посилання вважаються тотожними й не допускаються до передачі всередині одного елементу item.
pubDate

Час публікації повідомлення на сайті джерела.

Передається у форматі RFC-822. Регістр у назві pubDate має значення — літера «D» має бути великою.

<pubDate>Tue, 21 Apr 2015 14:15:00 +0300</pubDate>
<!-- Значення «+0300» визначає часовий пояс. Запис означає, що новина датована 21 квітня 2015 р., 14:15 московського часу. -->
Увага. Зазначений в експортному файлі час має збігатись із фактичним часом публікації на сайті.

Актуальними вважаються повідомлення за останні 8 днів. Решту проіндексовано не буде.

yandex:full-text

Текст новини.

Елемент yandex:full-text має містити повний актуальний текст новини. Він використовується для індексування пошуковим роботом, на yandex.ua текст не розміщується. Якщо текст новини на сайті було змінено після публікації, його слід оновити й у yandex:full-text.

<yandex:full-text>повний текст новини</yandex:full-text>

В елементі yandex:full-text заборонено передавати:

  • Назву джерела.
  • Дату та час повідомлення.
  • Контактну інформацію.
  • Посилання на зображення, аудіо- та відеофайли (для цих посилань потрібно формувати окремі теги enclosure, media:group).
yandex:related

Блок із посиланням на інші новини джерела. Відображається лише на Турбо-сторінках.

Кількість елементів link усередині yandex:related може бути будь-якою. Елемент link може містити атрибут img із URL ілюстрації до новини за посиланням.
<yandex:related>
<link url="http://www.rossiyskie-novosti.ru/2002/12/05/new-internet-giants.html" img="http://www.rossiyskie-novosti.ru/searchengines-compilation.png">Нові гравці на ринку e-commerce</link>
</yandex:related>
pdalink

Посилання на версію повідомлення, адаптовану для мобільних пристроїв.

Щоб мобільна версія повідомлення була доступна на https://m.news.yandex.ru/, передайте в елементі pdalink посилання на відповідне повідомлення в мобільній версії сайту джерела.
<pdalink>http://www.m.rossiyskie-novosti.ru/2003/03/25/yandex.html</pdalink>
amplink

Посилання на AMP-версію повідомлення.

Посилання на сторінку в форматі AMP, якщо вони містяться у вашому експортному файлі, будуть використовуватись у версії Яндекс.Новин для пристроїв із сенсорним екраном замість посилань на звичайні мобільні й адаптивні сторінки.

Щоб передавати AMP-версії новин, зазначте в елементі amplink посилання на AMP-версію сторінки з відповідним повідомленням.

<amplink>http://amp.vesti.ru/doc.html?id=2733279</amplink>
description

Короткий опис повідомлення (анотація, лід).

Увага. В елементі description HTML-розмітка заборонена.
<description>Продукт Яndex.Site встановлено на сайті президента Росії</description>
yandex:genre

Жанр повідомлення.

Вказується латиницею:

  • lenta (коротке новинне повідомлення, 50–80 символів),
  • message (розгорнутіше новинне повідомлення),
  • article (стаття),
  • interview (інтерв’ю).
<yandex:genre>article</yandex:genre>
author

Автор повідомлення

<author>Іван Петров</author>
category

Рубрика (розділ, категорія).

Зазначається оригінальна (як у виданні) назва рубрики, у якій опубліковано повідомлення. Одному повідомленню може відповідати лише одна рубрика.

<category>Технології</category>
Увага. Про зміну рубрикації видання або про додавання до експортного файлу матеріалів нових рубрик слід повідомляти на адресу info@news.yandex.ru. Інакше повідомлення, що належать до неіснуючих раніше чи перейменованих рубрик видання, проіндексовано не буде.
enclosure

Ілюстрації, аудіо та відеофайли.

В одному елементі вказується посилання на одну ілюстрацію, аудіо чи відеофайл. Якщо в повідомленні міститься декілька ілюстрацій, або ілюстрація й відеофайл, використовуйте декілька елементів enclosure.

Вимоги до ілюстрацій:

  • Ширина не менше ніж 240 пікселів, довжина не менше ніж 300 пікселів. Ілюстрації меншого розміру не індексуються.

    Якщо є декілька варіантів однієї ілюстрації, що відрізняються розміром, в enclosure має бути вказано URL зображення найбільшого розміру.

  • Ілюстрації мають бути дозволені до індексування у файлі robots.txt. Докладніше

Для зображень параметр type має збігатись із тим, що віддається за вказаним URL. Значення url обов’язкове. Значення type вкрай рекомендоване, а якщо неможливо визначити тип контенту за розширенням файлу, то обов’язкове.

<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex.jpg" type="image/jpeg"/>
media:group

Група пов’язаних медіаоб’єктів.

Можна вказати будь-яку кількість елементів media:group. Вкладені групи не допускаються. Атрибутів у елементу немає.

Елемент media:group застосовується у таких випадках:

  • Для об’єднання двох відео, що відрізняються форматами. Різні за змістом відео об’єднувати не рекомендується.
  • Для об’єднання плеєра і тумбнейла. Ширина тумбнейла має бути не менша ніж 240 пікселів, довжина — не менше ніж 300 пікселів. Відео, що супроводжується тумбнейлом розміром менше ніж 300 х 240 пікселів, проіндексовано не буде.
  • Для групування відео й аудіо, якщо аудіофайл є звуковою доріжкою до відео.
  • Для якіснішого індексування відеофайлів, що супроводжують повідомлення, разом із елементом enclosure або замість нього.

У media:group можуть бути такі вкладені елементи:

  • Один або декілька елементів media:content (обов’язковий елемент), в одному з яких може бути проставлено атрибут isDefault.
  • Лише один елемент media:player (обов’язковий елемент). Якщо в групі міститься media:player, то замість прямого посилання на файл зазначте посилання на плеєр.
  • Один або декілька елементів media:thumbnail, їх слід указувати за спаданням пріоритету.
<media:group>
<media:content url="посилання на відеофайл на вашому сайті"/>
<media:player url="посилання на плеєр на вашому сайті"/>
<media:thumbnail url="посилання на ілюстрацію, яка має бути використана як preview"/>
</media:group>

Опис елементів для онлайн-трансляцій

Примітка. Онлайнові трансляції спортивних подій індексуються за допомогою спеціальних сформованих вами експортних файлів, технічні вимоги до яких опубліковано в розділі «Технічні документи» партнерського інтерфейсу.

Якщо в експортному файлі є посилання на онлайн-конференції або онлайн-репортажі, у свій звичний фід для Яндекс.Новин до елементу item повідомлення-трансляції додайте елемент yandex:online і помістіть у нього посилання на ще один фід, у якому має бути представлено безпосередньо текст трансляції.

Структура експортного файлу онлайн-трансляції:

  • title — заголовок трансляції,
  • link — URL трансляції на сайті,
  • pubDate — дата оновлення,
  • yandex:genre зі значенням «online» — укажіть жанр повідомлення «online», щоб посилання на повідомлення-трансляцію потрапило до списку «Усі онлайн-трансляції»,
  • item — повідомлення трансляції (одна «репліка» всередині трансляції):
    • description — текст трансляції (обов’язковий елемент),
      Увага. В елементі description HTML-розмітка заборонена.
    • link — URL повідомлення,
    • pubDate — час повідомлення (обов’язковий елемент).
<item>
<title>заголовок новини</title>
<link>http://www.babruysk.com/revolution.html</link>
<pubDate>дата повідомлення</pubDate>
<yandex:full-text>повний текст повідомлення</yandex:full-text>
<yandex:online>http://babruysk.com/translation.xml</yandex:online>
<yandex:genre>online</yandex:genre>
</item>

<yandex:online>http://babruysk.com/translation.xml</yandex:online>
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Революція в Бобруйську</title>
<link>http://www.babruysk.com/revolution.html</link>
<pubDate>Mon, 27 Dec 2011 16:45:00 +0000</pubDate>
<item>
<description>Бобруйські робітники здійснили спробу атакувати будівлю адміністрації</description>
<link>http://www.babruysk.com/revolution.html#1488</link>
<pubDate>Mon, 27 Dec 2011 16:45:00 +0000</pubDate>
</item>
</channel>
</rss>

Опис елементів для відео- і фоторепортажів

Відео- і фоторепортажі можна транслювати в Яндекс.Новинах, навіть якщо вони не супроводжуються опублікованим на вашому сайті текстом або розшифруванням.

Для трансляції такого відео потрібно у відповідному item:

  1. Вказати посилання на відео в елементі enclosure або media:group.
  2. Вказати жанр повідомлення «video» в елементі yandex:genre.
  3. Сформувати елемент description, що повинен містити короткий опис (лід) відеорепортажу.
  4. Сформувати елементи yandex:tags і помістити в них ключові слова для відео. Кожне ключове слово має бути в окремому елементі yandex:tags. Мінімальна кількість — 5 ключових слів.

    Ви можете не публікувати ключові слова на своєму сайті, вони потрібні для правильної роботи алгоритму кластеризації.

    <yandex:tags>путін</yandex:tags>
    <yandex:tags>порошенко</yandex:tags>
    <yandex:tags>меркель</yandex:tags> 
    <yandex:tags>лукашенко</yandex:tags>
    <yandex:tags>мінськ</yandex:tags>

Для трансляції фоторепортажів потрібно у відповідному item:

  1. Вказати посилання на всі ілюстрації, що входять до фоторепортажу, в елементі enclosure або media:content.
  2. Вказати жанр повідомлення «photogallery» в елементі yandex:genre.
  3. Сформувати елемент description, який має містити короткий опис (лід) фоторепортажу.
  4. Сформувати теги yandex:tags і помістити в них ключові слова для фоторепортажу. Кожне ключове слово має бути в окремому елементі yandex:tags. Мінімальна кількість — 5 ключових слів.

    Ви можете не публікувати ключові слова на своєму сайті, вони потрібні для правильної роботи алгоритму кластеризації.

    <yandex:tags>путін</yandex:tags>
    <yandex:tags>порошенко</yandex:tags>
    <yandex:tags>меркель</yandex:tags> 
    <yandex:tags>лукашенко</yandex:tags>
    <yandex:tags>мінськ</yandex:tags>

Символи та кодування

За замовчуванням (якщо інше явно не зазначено в заголовку) кодуванням файлу вважається UTF-8. Виставлення кодування XML-файлу обов’язкове. Найчастіше вживані кодування: UTF-8, Windows-1251, KOI8-R.

Увага. Фактичне кодування, що віддається веб-сервером, завжди має збігатись із кодуванням, зазначеним у заголовку XML.

У всіх елементах item і channel (yandex:full-text, link, title, enclosure тощо) потрібно кодувати такі символи:

Символ Назва Код заміни
& Амперсанд &amp;
> Права кутова дужка >
< Ліва кутова дужка <
" Знак лапок &quot;
' Апостроф '

Наприклад, посилання http://some.host.ru/?id=1&page=10 слід привести до вигляду http://some.host.ru/?id=1&amp;page=10.

Якщо RSS-файл передається в KOI8-R, слід також замінити наявні в тексті символи кодування Windows-1251 на аналоги із KOI8-R:

Символ Назва Код заміни
... Три крапки 133
Коротке тире (en-dash) 150
Довге тире (em-dash) 151
' ' «Згладжені» апострофи 145 і 146
" " «Згладжені» лапки 147 і 148
«» Лапки «ялинки» 171 і 187
Номер 185

Механізм експорту даних

Для експорту даних потрібно викласти RSS-файл на сервер видання та оновлювати його з певною періодичністю (наприклад, файл може поповнюватись протягом дня й перезаписуватись уранці). Файл має бути доступний через http або https, його індексування (скачування) виконується щодві хвилини. Експортний файл, який не вдалось повністю завантажити за 10 секунд, вважається недоступним.

Для коректного індексування файлу потрібно, щоб у робота Яндекса був дозвіл на завантаження RSS-фіда у файлі robots.txt. Для цього на початку файлу robots.txt додайте рядки:

User-agent: YandexNews
Allow: шлях до експортного файлу без імені хосту (наприклад, /file.rss)
...
#останній рядок має бути порожнім

Перевірити коректність додавання рядків можна в Яндекс.Вебмайстрі.

Якщо ви використовуєте в robots.txt директиву Crawl-delay, то переконайтесь, що її значення достатньо мале для того, щоб робот YandexNews міг оперативно перевантажувати RSS-фід. Цю директиву краще прописати для робота YandexNews окремо. Її значення має бути задано в діапазоні від 0.1 до 2.

User-agent: YandexNews
Allow: /file.rss
Crawl-delay: 0.1
...
#останній рядок має бути порожнім

Приклад експортного файлу

<?xml version="1.0" encoding="windows-1251"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>

<title>Російські новини</title>
<link>http://www.rossiyskie-novosti.ru/</link>
<description>Щоденна ілюстрована московська суспільно-політична газета.</description>
<yandex:analytics type="Yandex" id="00000000"></yandex:analytics>

<item turbo="true">
<title>Яндекс шукає на президентському сайті</title>
<link>http://www.rossiyskie-novosti.ru/2003/03/25/yandex.html</link>
<pdalink>http://www.m.rossiyskie-novosti.ru/2003/03/25/yandex.html</pdalink>
<description>Програмний продукт Яndex.Site встановлено на офіційному сайті президента Росії</description>

<author>Іван Петров</author>
<category>Технології</category>

<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex.jpg" type="image/jpeg"/>
<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex1.jpg" type="image/jpeg"/>
<enclosure url="http://www.rossiyskie-novosti.ru/video/100237" type="video/x-ms-asf"/>

<pubDate>Sun, 29 Sep 2002 19:59:01 +0300</pubDate>

<yandex:genre>message</yandex:genre>

<yandex:full-text>Для пошуку на сайті www.kremlin.ru вибрано програму Яndex.Site. Цей програмний продукт було досліджено провайдером президентського сайта — Федеральною агенцією урядового зв’язку й інформації. ФАУЗІ визнало можливим використання пошукової системи <Яндекса> на www.kremlin.ru. За результатами дослідження програму було скомпільовано, протестовано та встановлено на сайт.</yandex:full-text>

<yandex:related>
<link url=http://www.rossiyskie-novosti.ru/2002/10/11/yandex-start.html" img="http://www.rossiyskie-novosti.ru/yndx-old-logo.jpg">Новий сервіс Яндекса</link>
<link url="http://www.rossiyskie-novosti.ru/2002/12/05/new-internet-giants.html" img="http://www.rossiyskie-novosti.ru/searchengines-compilation.png">Нові гравці на ринку e-commerce</link>
</yandex:related>

</item>
</channel>
</rss>