Yandex.Haberler için teknik gereksinimler

Yandex.com.tr’ye (yani Yandex.Haberler sitesine) haber başlıkları ve özetleri yerleştirmek için
Veri aktarımı, XML-tabanlı (http://www.w3.org/TR/REC-xml) RSS 2.0 biçiminde
(http://blogs.law.harvard.edu/tech/rss) gerçekleştirilir. Veri aktarımı için kullanılan RSS 2.0
öğelerine ilişkin açıklamalar, zorunlu notlar ve dosya aktarımı örneği aşağıda bulunmaktadır.

1. Veri aktarımı için kullanılan RSS 2.0 elementleri açıklaması
RSS dosyası kök elementi <rss> olan, özellik version'ı 2.0 değerine sahip olması gerekmektedir:
<rss xmlns:yandex="http://haber.yandex.com.tr/"
xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<rss> öğesi kendi içinde, kaynak bilgisini ve içeriğini açan bir <channel> öğesi barındırır. Zorunlu
<channel> öğeleri aşağıda yazılıdır:
<title> - RSS beslemesinin adı.
Tüm sitenin içeriğinin aktarılması halinde, burada onun adı da bulunmalıdır.
Örnek: <title>Examplehaber</title>; eğer sitenin yalnızca bir bölümü aktarılıyorsa,
adlandırmaya tam olarak hangi bölümün aktarıldığı da yansıtılmalıdır: <title>Examplehaber:
Ekonomi</title>. RSS beslemesinin adı Yandex.com.tr’de gösterilmez; aktarılan Veriler formda
belirtilmiş olan kaynak adı ile işaretlenir.
<link> - Beslemede verileri aktarılan sitenin URL’si.
Örnek: <link>http://www.examplehaber.com.tr</link>
<description> - beslemenin açıklaması. Tek cümledir.
Örnek: <description>Halkın online politik gazetesi</description>
<image> - yayının logosu. Zorunlu öğe.
Yandex.Haberlerde de aynı şekilde, <channel> içinde <image> zorunlu öğesi, yayının logo
görseli olan grafik dosyasına giden bağlantıyı içinde bulundurmak zorundadır.
Bu bağlantı <url> içinde verilir, ad (alt html özelliği ile yazılacaktır) - <title> (yayının adının bir
kez daha tekrarlanması gereklidir), URL yayını - <link>. Logo; jpg/jpeg, png veya gif
(animasyonsuz) biçiminde olmalıdır. Logonun boyutu en fazla 100 piksel olmalıdır.
<image>
<url>http://www.examplehaber.com.tr/logo.gif</url>
<title>Examplehaber</title>
<link>http://www.examplehaber.com.tr/</link>
</image>

<item> - zorunlu öğe.
Her <item> bir mesajı temsil eder ve <title> (mesajın başlığı) Verisi aktarımı için zorunlu tüm
öğeleri içermelidir. <channel> içinde dilenen miktarda <item> öğesi bulunabilir.

<title> - mesajın başlığı. Zorunlu öğe.
Başlığın tamamen BÜYÜK harflerle yazılması yasaktır. Başlığın sonunda nokta kullanılması da
yasaktır. Başlıkta, kaynağın adı ve mesajın tarihi/saati ve ayrıca hizmete dair yazılar
(“güncel”, ”ek bilgi”, “fotoğraf”, “görüntü” ve benzeri) ve hizmetle ilgili olmayan, habere ilişkin
bilgi sunma amacı taşımayan yazılar (“Acil”, “Sansasyon” ve benzeri) bulunamaz.

Örnek: <title>Halit Ergenç, Kanuni Sultan Süleyman’ı canlandırıyor</title>
<link> - Mesajın URL’si, onun özgün tanımlayıcısıdır. Zorunlu öğe.
Dikkat: Her mesaj, belirtilen adreste açılan ve 1024x768 ekran çözünürlüğünde sayfayı
kaydırmaya gerek kalmadan mesaj metni ve başlığı görüntülenecek şekilde ayrı bir sayfada yer
almalıdır.

Yandex.Haberler’de yer alan başlığa gidildiğinde, yalnızca başlığa uygun haber metnini içeren
tek bir sayfa açılmalıdır.
<link> öğesinde belirtilen URL’de birden fazla haber (haber ağı) bulunamaz.

Yalnızca kısmen “#”den sonra birbirinden ayrılan URL’ler: http://www.somehost.
ru/news.html#2545 ve http://www.some-host.ru/news.html#5794 aynı gibi değerlendirilir
ve kullanımına izin verilmez.

Örnek: <link>http://www.examplehaber.com.tr/2011/10/18/deneuve.html</link>
<pdalink> - pda/palm/wap/kpk sürümü haberler için bağlantı. Zorunlu olmayan öğe.

Örnek: <pdalink>http://pda.examplehaber.com.tr/2011/10/18/deneuve.html</pdalink>
<description> - haber metni. Zorunlu olmayan öğe.
Örnek: <description>Osmanlı Devleti’nin muhteşem yüzyılını anlatan dizide Halit Ergenç, Kanuni
Sultan Süleyman’ı canlandırıyor.</description>
<yandex:genre> - haberin türü. Zorunlu olmayan öğe.
Haberin türü Latin harfleriyle belirtilmelidir: lenta (kısa haber metni, 50-80 karakter), message
(daha geniş haber metni), article (makale), interview (röportaj).
Örnek: <yandex:genre>article</yandex:genre>
<author> - haberin yazarı. Zorunlu olmayan öğe.
Örnek: <author>Hasan Aklı</author> (Yandex.Haberlerde RSS 2.0 belirtimiyle yazılmış yazar email’i
kullanılmaz).
<category> - haber metninin bölüm başlığı (bölümü, kategorisi). Zorunlu olmayan öğe.
Dikkat: Bu öğe zorunlu değildir ancak eğer yayının bir bölüm başlığı varsa burada haber
metninin yayınlanmış olduğu bölümün adı (yayında bulunan orijinal haliyle) bulunmalıdır. Bir
Yandex.Haberler için teknik gereksinimler
3
haber metni yalnızca bir bölüm başlığına ait olabilir.
Örnek: <category>Teknoloji</category>
Yayının bölüm başlığındaki değişiklikler veya aktarılan dosyaya yeni bölüm başlıklarına ait
materyallerin eklenmesi destek@haber.yandex.com.tr adresine bildirilmek zorundadır. Bu
şekilde bir mesaj bildirimi yapılmazsa, daha önceki başlığa uygun olmaması veya bölüm
başlığının yeniden isimlendirilmesi halinde, haber metni dizinlenmez.
<enclosure> - Görsel, ses ve video dosyalarına yönelik öğe. Zorunlu olmayan öğe.
Haber metninin içinde birden fazla görsel veya görsel ve video dosyası bulunması halinde,
<enclosure> öğesi tekrar eder. En az 100 ve en fazla 600 piksel genişliğindeki görseller
kullanılabilir. Eğer bir görselin, boyutları farklı olan birkaç seçeneği varsa <enclosure> öğesinde,
en büyük boyutlu fotoğrafın URL’si belirtilmelidir.
Görseller, robots.txt dosyasına dizinlenmeye izin verilecek şekilde konulmalıdır. <enclosure
url="http://www.examplehaber.com.tr/2011/10/18/deneuve.jpg" type="image/jpeg"/>
Görselin type parametresi, belirtilen URL’de verilene uygun olmalıdır.
<enclosure> etiketi ile birlikte veya kullanılmadan haber metnine eşlik eden video dosyalarının
dizinlenmesinden daha iyi sonuç alabilmek için aktarım dosyasına
<pubDate> - Yayını yapan sitedeki haber metninin yayınlanma zamanı. Zorunlu öğe.
RFC-822 biçiminde (bkz. http://asg.web.cmu.edu/rfc/rfc822.html#sec-5).
<pubDate> adı kaydında D harfi büyük harfle yazılmalıdır.
Örnek: <pubDate>Tue, 18 Sep 2011 14:53:01 +0300</pubDate>
Bu kayıt, haberin 18 Kasım 2011’de Türkiye saatiyle 14:53’de yayınlandığı anlamına gelir.
Dikkat: +0300 , zaman üzerinde hiçbir aritmetik etkiye sahip değildir ve yalnızca saat dilimini
gösterme amacı taşımaktadır (verilen örnekte Türkiye saatini gösterir).
Saat farkı (+0300), kış/yaz saatine göre değişmeyen GMT’ye göre belirlenir.
Aktarım dosyasında belirtilen saatin, sitedeki gerçek yayın saatine uygun olması zorunludur.
<yandex:related> Eğer haber metninin kaynak sayfasında haber niteliği olmayan başka
kaynaklara bağlantılar verildiyse bu haber metninin <item> öğesine onlara açılan bağlantılar da
eklenmek zorundadır. Bunun için <yandex:related> şeklinde özel bir blok biçimlendirilmiştir. Bu
bloğun içindeki <link> öğelerinin sayısı her türlü olabilir.
Örnek:
<yandex:related>
<link url="http://www.imdb.com/name/nm0000366/">Muhteşem Yüzyıl</link>
</yandex:related>
<yandex:full-text> Tüm haber metnini aktarmak için özel element
Veri aktarımı için kullanılan standart RSS 2.0 öğeleri dışında, tüm haber metnini içermesi
gereken <yandex:full-text> özel öğesi de kullanılır. Bu öğe zorunludur. Tüm haber metni
arama robotu tarafından dizinlenmek için gereklidir ve Yandex.com.tr’de yer almaz.

Tüm metinde, kaynağın adı ve haber metninin tarihi/saati yer almak zorunda değildir; ayrıca
iletişim bilgileri ve her haber metninde tekrarlanan diğer bilgilerin de yer alma zorunluluğu
bulunmaz.
Dikkat: Artık sizden, metnin tamamından biçimlendirme etiketlerini çıkartmanızı istemeyeceğiz.
Örnek: <yandex:full-text>FDA Haber Ağı’nın yöneticisi Ahmet Canlı, Osmanlı Devleti’nin
muhteşem yüzyılını anlatan dizide Halit Ergenç’in, Kanuni Sultan Süleyman’ı canlandırdığını iletti.
Yakında ekranlardaki yerini alacak dizi için “Ergenç’le anlaşmaya vardık. Bu önemli bir rol
olduğundan dolayı, kendisi oynamayı kabul etti. Bir dev, başka bir devi canlandıracak”şeklinde
sözlerine devam etti. Dizide Halit Ergenç’in dışında, ekranlardan tanıdığınız birçok önemli
sanatçı rol alacak.".</yandex:full-text>
2. Semboller ve kodlama
Varsayılan olarak, dosyanın karakter kodlaması utf-8’dir. Aksi halde, xml dosyasının kodlamasını
sunulması zorunludur. En sık kullanılan kodlamalar: windows-1251, utf-8, koi8-r
Dikkat: Web sunucusu tarafından verilen gerçek kodlama, HER ZAMAN XML başlığında
belirtilenle aynı olmalıdır.
Metinde karşılaşılan < > & ' " sembolleri aşağıda yazılı öğelerle değiştirilmelidir:
& ile &amp;
< ile &lt;
> ile &gt;
' ile &apos;
" ile &quot;
(burada kullanılan noktalı virgül, liste için bir ayırıcı değil, zorunlu öğelerin bir parçasıdır!)
Değişikliklerin tüm <item> ve <channel> öğelerinde, <yandex:full-text>, <link>, <title>,
<enclosure> öğelerinin içinde ve diğerlerinde gerçekleştirilmesi zorunludur.
Örneğin, "http://some.host.com.tr/?id=1&page=10" bağlantısı,
"http://some.host.com.tr/?id=1&amp;page=10" şeklini alır.
Eğer RSS dosyası koi8-r içinde aktarılıyorsa metinde karşılaşılan Windows-1251 kodlamasındaki
sembollerin koi8-r’den analoga çevrilmesi gereklidir:
üç nokta – sembol kodu 133
en-dash (kısa tirе) – sembol kodu 150
em-dash (uzun tire) – sembol kodu 151
“Rusça” numara – sembol kodu 185
Tırnak işareti - sembol kodu 171 ve 187
"Düzeltme” tırnak işareti – sembol kodu 147 ve 148
Kesme işareti – sembol kodu 145 ve 146
Yandex.Haberler için teknik gereksinimler
5
3. Veri aktarım sistemi
Veri aktarabilmek için yayının sunucusuna RSS dosyası yerleştirmek ve belirli zaman aralıklarıyla
onu güncellemek zorunludur (örneğin, dosya bir gün kalır ve sabah yenilenir). Dosya http
üzerinden erişilebilir olmalı ve her 10 dakikada bir dizinlenmelidir(indirilmeli). 10 saniye
içerisinde tamamen yüklenemeyen aktarım dosyası erişilemez olarak değerlendirilir.
Doğru dizinlenme için, Yandex.Haberler robotunun RSS beslemesi indirmesine robots.txt
dosyasında izin verilmelidir.
Eğer RSS dosyasının, diğer arama robotları tarafından indirilmesine izin verilmiyorsa robots.txt
dosyasının sonuna şöyle bir satır eklemek gereklidir:
User-agent: YandexNews
Disallow:
veya
User-agent: YandexNews
Allow: {RSS yolu, örneğin /file.rss}
Вu durumda, dosya Yandex.Haberler robotu tarafından erişilebilir olacaktır, Yandex’in diğer
robotları ise dosyaya erişemez.
Eğer robots.txt dosyasında Crawl-delay direktifi kullanıyorsanız robotun etkin olarak RSS
beslemesi indirebilmesi için değerinin yeterince düşük olması gereklidir.
Yandex.Haberler için teknik gereksinimler
6
4. Aktarım dosyası örneği
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://
haber.yandex.com.tr" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>Examplehaber</title>
<link>http://www.examplehaber.com.tr</link>
<description>Halkın online politik gazetesi.</description>
<image>
<url>http://www.examplehaber.com.tr/logo.gif</url>
<title>Examplehaber</title>
<link>http://www.examplehaber.com.tr/</link>
</image>
<item>
<title>Halit Ergenç, Kanuni Sultan Süleyman’ı canlandırıyor</title>
<link>http://www.examplehaber.com.tr/2011/10/18/deneuve.html</link>
<pdalink>http://pda.examplehaber.com.tr/2011/10/18/deneuve.html</pdalink>
<description>Osmanlı Devleti’nin muhteşem yüzyılını anlatan dizide Halit Ergenç, Kanuni Sultan
Süleyman’ı canlandırıyor</description>
<author>Hasan Aklı</author>
<category>Кültür</category>
<enclosure url="http://www.examplehaber.com.tr/2011/10/18/deneuve.jpg"
type="image/jpeg"/>
<enclosure url="http://www.examplehaber.com.tr/2011/10/18/deneuve1.jpg"
type="image/jpeg"/>
<enclosure url=" http://www.examplehaber.com.tr/video/100237" type="video/x-ms-asf"/>
<pubDate>Tue, 18 Sep 2011 14:53:01 +0300</pubDate>
<yandex:genre>message</yandex:genre>
<yandex:full-text>FDA Haber Ağı’nın yöneticisi Ahmet Canlı, Osmanlı Devleti’nin muhteşem
yüzyılını anlatan dizide Halit Ergenç’in, Kanuni Sultan Süleyman’ı canlandırdığını iletti. Yakında
ekranlardaki yerini alacak dizi için “Ergenç’le anlaşmaya vardık. Bu önemli bir rol olduğundan
dolayı, kendisi oynamayı kabul etti. Bir dev, başka bir devi canlandıracak”şeklinde sözlerine
devam etti. Dizide Halit Ergenç’in dışında, ekranlardan tanıdığınız birçok önemli sanatçı rol
alacak.
</yandex:full-text>
<yandex:related>
<link url="http://www.imdb.com/name/nm0000366/">Muhteşem Yüzyıl</link>
</yandex:related>
</item>
</channel>
</rss>