XML feed'leri hakkındaki makalelerin çoğu tişört sattığınızı varsayar.
Bu varsayım, "ürün feed'i" denince yalnızca bir Google Shopping dosyasının anlaşıldığı on yıl önce mantıklıydı. Artık geçerli değil. Bugün bir otomobil galerisi, bir iş ilanı sitesi, bir otel grubu, bir emlak portalı ve bir bahis platformu feed tabanlı reklam yürütüyor ve hiçbiri size ya da gtin göndermiyor. Onlar VIN'ler, IATA kodları, yatak odası sayıları, istihdam türleri ve maç başlama saatleri gönderiyor.
Altta yatan mekanizma aynı. Parametreler ise aynı değil.
Bu rehber her ikisini de ele alıyor: sektörden bağımsız olarak her XML feed'i için geçerli olan yapısal kurallar ve başlıca feed türlerinin her biri için özel öznitelik setleri: perakende, yerel envanter, araç, seyahat, gayrimenkul, iş ilanları ve maçlar, etkinlikler ve gösterimler gibi zamana bağlı envanter. Her biri için çalışan XML örnekleriyle.
1. XML feed'i aslında nedir?
XML feed'i, bir envanteri, bir insanın yorumlamasına gerek kalmadan makinelerin işleyebileceği şekilde tanımlayan yapılandırılmış bir dosyadır. Bir platform dosyayı belirli bir takvime göre çeker, ayrıştırır ve bulduklarından listelemeler, reklamlar veya arama sonuçları oluşturur.
Format, çoğu kişinin düşündüğünden daha az önemlidir. Önemli olan sözleşmedir: her hedef, hangi alanları zorunlu tuttuğunu, hangi değerlerin geçerli olduğunu ve bunlar hatalı olduğunda nasıl davranacağını belirten bir spesifikasyon yayınlar. Feed, bu sözleşmenin sizin tarafınızdır.
Bundan iki sonuç çıkar ve feed'lerin göründüğünden daha zor olmasının nedeni de bunlardır:
Sözleşme hedefe özeldir. Google'ın ürün spesifikasyonu, Meta'nın katalog spesifikasyonu ve Indeed'in iş ilanı XML'i neredeyse hiçbir alan adını paylaşmaz. Tek bir kaynak katalog her biri için farklı şekilde dönüştürülmelidir.
İhlaller çoğunlukla sessizce başarısız olur. Hatalı biçimlendirilmiş bir alan dosyayı nadiren bozar. Bir ürünü reddettirir, bir listelemenin seviyesini düşürür ya da reklamdan bir özniteliği düşürür ve kampanya panelinizde bunu söyleyen hiçbir şey olmaz.
2. Dosyanın anatomisi
Reklam amaçlı XML feed'lerinin çoğu, bir namespace uzantısıyla RSS 2.0 kullanır. Yapı her zaman aynı üç katmandan oluşur:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Example Store — Product Feed</title>
<link>https://example.com</link>
<description>Full catalogue, updated hourly</description>
<item>
<!-- one inventory item -->
</item>
</channel>
</rss>
- XML bildirimi kodlamayı belirler. Pratikte
UTF-8olmalıdır; başka herhangi bir kodlama İngilizce dışındaki kataloglarda karakter bozulmasına yol açar ve bozuk Türkçe, Almanca ve Çekçe ürün başlıklarının en yaygın tek nedenidir. - Namespace bildirimi (
xmlns:g="..."),<g:price>öğesini geçerli kılan şeydir. Bunu atlarsanız önekli her öğe sessizce yok sayılır: feed ayrıştırılır, ama neredeyse hiçbir şey içe aktarılmaz. <channel>feed düzeyindeki meta verileri tutar.<item>bir envanter birimidir. "Bir birim"in ne anlama geldiği verili bir şey değil, bir karardır: bir SKU, bir varyant, bir araç, bir iş ilanı, bir otel, bir maç.
Her sektör bu yapıyı kullanmaz. İş ilanı feed'leri <source><job> kullanır ve bazı pazaryerleri tamamen kendi kök öğelerini tanımlar. Üç katmanlı mantık (belge, kapsayıcı, tekrarlanan öğe) her durumda geçerlidir.
3. Evrensel çekirdek
Yedi parametre, bugüne kadar yazılmış neredeyse her feed spesifikasyonunda farklı adlarla yer alır. Bunları anlarsanız her spesifikasyonu okuyabilirsiniz.
| Kavram | Google Shopping | Meta kataloğu | Indeed iş ilanları | Amaç |
|---|---|---|---|---|
| Benzersiz ID | id | id / vehicle_id / home_listing_id | referencenumber | Senkronizasyonlar arasında kimlik |
| Ad | title | title / name | title | Ne olduğu |
| Ayrıntı | description | description | description | Neden önemli olduğu |
| Hedef URL | link | url | url | Dönüşümün gerçekleştiği yer |
| Görsel | image_link | image[0].url | — | Nasıl göründüğü |
| Fiyat | price | price | salary | Ne kadar tuttuğu |
| Durum | availability | availability | (feed'de bulunması) | Yayında olup olmadığı |
ID ile ilgili, her yerde geçerli olan ve tek başına diğer tüm alanlardan daha fazla zarara yol açan üç kural:
- Kararlı olmalıdır. ID'niz dışa aktarmada yeniden üretiliyorsa (satır sırasından, bir zaman damgasından ya da değişen içeriğin hash'inden türetiliyorsa) her senkronizasyon ürünün biriktirdiği performans geçmişini yok eder ve ürün sıfırdan başlar.
- Benzersiz olmalıdır. Yinelenen ID'ler, sonraki satırların hata mesajı olmadan düşürülmesine neden olur. Ürünler basitçe ortadan kaybolur.
- Pikselinizin veya etiketinizin gönderdiğiyle eşleşmelidir. Meta'nın katalog eşleştirmesi, Google'ın dinamik yeniden pazarlaması ve tüm yeniden hedefleme ürünleri, feed ID'si ile site etkinliği ID'sinin aynı dize olmasına dayanır. Dinamik yeniden hedeflemenin "çalışmamasının" en yaygın nedeni budur.
4. Perakende / e-ticaret parametreleri
Bu, en iyi belgelenmiş spesifikasyondur ve diğer sektörlerin çoğunun ödünç aldığı temeldir.
Zorunlu
| Öznitelik | Notlar |
|---|---|
id | En fazla 50 karakter. Kararlı, benzersiz, piksel etkinlikleriyle eşleşir. |
title | En fazla 150 karakter. Markayı ve insanların gerçekten aradığı terimleri başa alın. |
description | En fazla 5.000 karakter. Düz metin; tanıtım metni veya HTML yok. |
link | Kategori veya arama sonucu değil, ürün sayfası. Taranabilir olmalıdır. |
image_link | Ana görsel. 2026 spesifikasyonu itibarıyla en az 500x500 (aşağıya bakın). |
availability | in_stock, out_of_stock, preorder, backorder. |
price | Değer artı ISO para birimi: 899.90 TRY. Açılış sayfasıyla birebir eşleşmelidir. |
Tanımlayıcılar
brand, gtin, mpn ve identifier_exists. GTIN, ürününüzün Google'ın ürün bilgi grafiğiyle eşleşip eşleşmediğini, dolayısıyla karşılaştırma ve yapay zekâ destekli alışveriş yüzeylerinde görünüp görünmeyeceğini belirleyen alandır. Spesifikasyon ne derse desin, pratikte isteğe bağlı değildir.
Varyantlar
item_group_id, item_group_title, color, size, size_type, size_system, material, pattern, gender, age_group.
Varyantlar başlı başına bir konudur; kısaca, item_group_id bir grup genelinde aynı olmalı ve kararlı kaynak verilerden türetilmelidir; gender ve age_group grup içinde sabitken color ve size sabit değildir.
Kategorizasyon
google_product_category (Google'ın taksonomisi, ID veya tam yol), product_type (kendi taksonominiz; kampanya yapısını mümkün kılan alan budur ve serbest biçimlidir, o yüzden kullanın).
Ticari
sale_price, sale_price_effective_date, unit_pricing_measure, unit_pricing_base_measure, installment, subscription_cost, loyalty_program.
Lojistik
shipping, shipping_weight, shipping_length / _width / _height, shipping_label, transit_time_label, min_handling_time, max_handling_time, tax.
Kampanya kontrolü
excluded_destination, included_destination, ads_redirect, custom_label_0 ile custom_label_4 arası.
Beş özel etiket, tüm spesifikasyondaki en az kullanılan alanlardır. Google için hiçbir anlam taşımazlar; yalnızca segmentasyon yapabilmeniz için vardırlar. Marj aralıkları, stok derinliği, sezonsallık, ürün yaşı, GA4 performans kademesi. Kampanya yapınız bir iş kuralını ifade edemiyorsa, nedeni genellikle budur.
Medya
additional_image_link, lifestyle_image_link, virtual_model_link, video_link.
Minimal ama eksiksiz bir perakende ürünü
<item>
<g:id>KRC-4210-BLK</g:id>
<g:title>Karaca Fine Pearl 6-Person Dinner Set — Black</g:title>
<g:description>26-piece porcelain dinner set for six. Dishwasher and microwave safe.</g:description>
<g:link>https://example.com/urun/fine-pearl-6-kisilik</g:link>
<g:image_link>https://cdn.example.com/krc-4210-blk-01.jpg</g:image_link>
<g:additional_image_link>https://cdn.example.com/krc-4210-blk-02.jpg</g:additional_image_link>
<g:video_link>https://cdn.example.com/video/krc-4210.mp4</g:video_link>
<g:availability>in_stock</g:availability>
<g:price>4299.00 TRY</g:price>
<g:sale_price>3499.00 TRY</g:sale_price>
<g:sale_price_effective_date>2026-11-24T00:00+0300/2026-12-01T23:59+0300</g:sale_price_effective_date>
<g:brand>Karaca</g:brand>
<g:gtin>8680150042109</g:gtin>
<g:condition>new</g:condition>
<g:google_product_category>672</g:google_product_category>
<g:product_type>Home & Kitchen > Dinnerware > Dinner Sets</g:product_type>
<g:custom_label_0>high-margin</g:custom_label_0>
<g:custom_label_1>bf-2026</g:custom_label_1>
</item>
product_type içindeki & ve > ifadelerine dikkat edin. URL'lerde ve kategori yollarında kaçış karakteri uygulanmamış & karakterleri, tamamen ayrıştırılamayan XML dosyalarının en sık nedenidir.
5. 2026'da neler değişti?
Google'ın ürün verisi spesifikasyonundaki üç değişiklik, son tarihi beklemeden şimdiden harekete geçmeye değer.
Minimum görsel çözünürlüğü artık 500x500 px; bu, tüm kategorilerde ve pazarlama yöntemlerinde image_link ve additional_image_link için geçerli. Uyarılar Nisan 2026'da Merchant Center'da görünmeye başladı; yaptırım 31 Ocak 2027'de başlıyor. Google bazı küçük görselleri otomatik olarak büyütebilir, ancak bunu bir çözüm olarak görmek hatadır: büyütülmüş görseller büyütülmüş gibi görünür ve görsel kalitesi tıklama oranını etkileyen bir değişkendir.
video_link yayında ve gösteriliyor. Bu öznitelik üzerinden gönderilen videolar, politika ve kalite doğrulamasıyla birlikte 30 Haziran 2026'dan itibaren gösterilmeye uygun hale geldi. Hatalar videoyu engeller ama teklifi engellemez; bu da bu alanı doldurmanın düşük riskli olduğu anlamına gelir. Çoğu katalogda SKU'ların çoğu için ürün videosu yoktur; feed verilerinden ölçekli video üretmenin artık "olsa iyi olur" değil rekabette bir boşluk olmasının nedeni tam olarak budur.
Ürün düzeyinde kargo kontrolleri genişledi. handling_cutoff_time günlük sipariş işleme son saatini belirler ve minimum_order_value teslimat için minimum harcamayı belirtir. shipping özniteliği ayrıca sadakat programına özel teslimat avantajları için loyalty_program_label ve loyalty_tier_label alt özniteliklerini kazandı.
Gidişatın yönü tutarlı: Google, eskiden hesap düzeyinde tutulan ayrıntıları ürün düzeyine indirmeye devam ediyor. Ürün bazında ifade edilen her şey, bir feed katmanının otomatikleştirebileceği ve manuel bir sürecin otomatikleştiremeyeceği bir şeydir.
6. Sektör haritası
Perakende bu tablonun yalnızca bir satırıdır, tablonun kendisi değil.
| Sektör | Google hedefi | Meta katalog türü | Diğer yaygın kanallar |
|---|---|---|---|
| Perakende / e-ticaret | Shopping reklamları, ücretsiz listelemeler | Ürünler (e-ticaret) | Pazaryerleri, fiyat karşılaştırma siteleri, affiliate ağları |
| Mağaza içi perakende | Yerel envanter reklamları | Yerel stok bilgisi olan ürünler | Yerel arama platformları |
| Otomotiv | Araç reklamları, araç listelemeleri | Araçlar / araç teklifleri | İlan portalları, otomotiv pazaryerleri |
| Oteller ve konaklama | Otel reklamları (Hotel Center) | Oteller | OTA'lar, metasearch |
| Uçuşlar | Google Flights | Uçuşlar | Metasearch |
| Destinasyonlar ve paketler | — | Destinasyonlar | Seyahat affiliate'leri |
| Gayrimenkul | — | Konut ilanları | Emlak portalları, gayrimenkul toplayıcıları |
| İşe alım | İş ilanı yapılandırılmış verisi (JobPosting) | — | İş ilanı siteleri, ATS dağıtımı, iş ilanı toplayıcıları |
| Etkinlikler, maçlar, gösterimler | Ürünler (modellenmiş) | Ürünler (modellenmiş) | Biletleme platformları, DSP'ler |
Herhangi bir şey kurmadan önce içselleştirmeye değer iki yapısal kural:
Bir Meta kataloğu tam olarak bir envanter türü barındırır. Otelleri ve ürünleri karıştıramazsınız. İkisini de satıyorsanız iki kataloğa ihtiyacınız vardır.
Google sektörleri veri kaynağı düzeyinde ayırır. Bir araç veri kaynağı yalnızca araç reklamlarını hedeflemelidir. Araçları bir Shopping veri kaynağına göndermek listeleme değil, reddedilme üretir; ayrıca araç kaynakları, normal bir ürün feed'ine ait olan yedek parça veya aksesuar içermemelidir.
7. Araç feed'leri
Otomotiv, "perakende spesifikasyonunu kullanın yeter" yaklaşımının en bariz şekilde başarısız olduğu sektördür. Bir otomobil, stok derinliği olan bir SKU değil, yasal bir tanımlayıcısı olan benzersiz bir fiziksel nesnedir.
Google'ın araç öznitelikleri ortak çekirdeğin üzerine eklenir:
| Öznitelik | Notlar |
|---|---|
vin | Aracın yasal kimliği. Hatalı biçimlendirilmiş VIN'ler ve VIN/yıl uyuşmazlıkları en yaygın reddedilme nedenidir. |
year, model, trim | Bir listelemeyi aynı modeldeki rakiplerinden ayıran şey donanım paketidir (trim). |
body_style | Sabit değer listesinden seçilir. |
mileage | Değer artı birim (miles veya km). Açılış sayfasıyla eşleşmelidir. Model yılı için makul aralığın dışındaki değerler işaretlenir. |
condition | Yeni, ikinci el, sertifikalı ikinci el. |
certified_pre-owned | Ayrı bir işaret. |
engine, fuel_consumption, energy_consumption, co2_emissions, emissions_standard | AB pazarlarında giderek daha önemli. |
electric_range, fuel_consumption_discharged_battery | Elektrikli ve hibrit araçlara özel. |
date_first_registered | İlk tescil ayı ve yılı. |
vehicle_msrp, vehicle_price_type | Liste fiyatı ve teklif fiyatı. |
vehicle_fulfillment | Aracın mağazada mı olduğu, transfer edilebilir mi olduğu yoksa teslim mi edileceği. store_code alt özniteliğine sahip grup özniteliği. |
store_code | Aracın hangi fiziksel lokasyonda bulunduğu. |
<item>
<g:id>STK-88214</g:id>
<g:title>2023 Volkswagen Passat 1.5 TSI Business DSG</g:title>
<g:description>Single owner, full service history, no accident record.</g:description>
<g:link>https://example.com/ilan/88214</g:link>
<g:image_link>https://cdn.example.com/88214-01.jpg</g:image_link>
<g:price>1450000.00 TRY</g:price>
<g:condition>used</g:condition>
<g:brand>Volkswagen</g:brand>
<g:model>Passat</g:model>
<g:trim>1.5 TSI Business DSG</g:trim>
<g:year>2023</g:year>
<g:vin>WVWZZZ3CZPE000000</g:vin>
<g:mileage>
<g:value>42500</g:value>
<g:unit>km</g:unit>
</g:mileage>
<g:body_style>sedan</g:body_style>
<g:color>Grey</g:color>
<g:vehicle_fulfillment>
<g:option>in_store</g:option>
<g:store_code>IST-01</g:store_code>
</g:vehicle_fulfillment>
</item>
Araç feed'lerini operasyonel olarak farklı kılan nedir?
- Envanter tek adettir. Her ürün tek bir birimdir. Satıldığında feed'den hemen çıkmalıdır, yarınki senkronizasyonda değil. Güncelliğini yitirmiş araç listelemeleri artık var olmayan araçlar için yüksek CPC'li tıklamaları boşa harcar ve hesap kalitesine zarar verir.
- Yenileme sıklığı her şeydir. Dört saatlik yenileme döngüleri otomotivde bir optimizasyon değil, standart uygulamadır.
- Açılış sayfası tutarlılığı zorunlu tutulur. Feed'deki fiyat ve kilometre, araç detay sayfasıyla birebir eşleşmelidir. Siteyi güncelleyen ama feed'i güncellemeyen, bayi genelindeki bir fiyat değişikliği saatler içinde bir reddedilme dalgasına yol açar.
- Meta'nın otomotiv envanter reklamları ayrı bir alan sözlüğü kullanır (
state_of_vehicle,exterior_color,transmission,drivetrain,dealer_id); bu nedenle aynı kaynak veri her kanal için farklı bir dönüşüme ihtiyaç duyar.
8. Seyahat feed'leri
Seyahat üç ayrı katalog türüne ayrılır ve hata, bunları tek bir tür gibi ele almaktır.
Oteller
Tesis feed'i görece statiktir: ad, açıklama, adres, koordinatlar, yıldız sayısı, görseller, başlangıç fiyatı. Değişen şey müsaitlik ve fiyattır; otel kurulumlarının genellikle statik bir tesis feed'ini dinamik oda tipi ve fiyatlandırma feed'leriyle eşleştirmesinin nedeni de budur.
Temel parametreler: hotel_id, name, description, brand, url, image, latitude, longitude, address (city, region, country, postal_code ile), base_price, currency, star_rating, neighborhood, phone, guest_ratings.
<item>
<g:hotel_id>HTL-BDR-114</g:hotel_id>
<g:name>Blue Bay Resort Bodrum</g:name>
<g:description>Seafront resort with private beach, three restaurants and a spa.</g:description>
<g:url>https://example.com/otel/blue-bay-bodrum</g:url>
<g:image>https://cdn.example.com/htl-114-01.jpg</g:image>
<g:latitude>37.0344</g:latitude>
<g:longitude>27.4305</g:longitude>
<g:address>Yalıkavak Mah. Sahil Cad. 12, Bodrum, Muğla, TR, 48990</g:address>
<g:base_price>4200.00 TRY</g:base_price>
<g:star_rating>5</g:star_rating>
<g:neighborhood>Yalıkavak</g:neighborhood>
</item>
Uçuşlar
Ürün bir koltuk değil, bir rotadır. Kimlik, kalkış–varış çiftidir: IATA kodu olarak origin_airport ve destination_airport, artı price, url, image, description. Fiyatlar genellikle "başlayan" fiyatlardır ve sürekli değişir; bu da güncelleme sıklığını belirleyici kısıt haline getirir.
Destinasyonlar
Ürün, seyahat sattığınız bir yerdir: destination_id, name, address, neighborhood, types, price, url, image. Gezginin niyetinin olduğu ama aklında belirli bir tesisin olmadığı üst huni potansiyel müşteri kazanımı için kullanışlıdır.
Seyahatte tekrar eden sorun, fiyat ve müsaitliğin saklanmayıp hesaplanmasıdır. Bir otelin "fiyatı" tarihlere, kişi sayısına ve konaklama süresine bağlıdır; bir uçuşunki ise sorduğunuz ana. Feed'ler tek bir sayı ister. Hangi sayının seçileceği (önümüzdeki 30 gündeki en düşük müsait fiyat, gelecek hafta sonu için en düşük fiyat, ortalama) reklamlarınızın nasıl performans göstereceğini sessizce belirleyen ticari bir karardır ve dışa aktarmanın ürettiği varsayılan değere bırakmak yerine bilinçli olarak verilmeye değer.
9. Gayrimenkul / emlak feed'leri
Yapısal olarak araçlara benzer: benzersiz fiziksel varlıklar, tek adetlik envanter, tıklama başına yüksek değer ve satıldığı ya da kiralandığı anda kaybolması gereken bir ilan.
Temel parametreler: home_listing_id, name, description, address, latitude, longitude, url, image, price, currency, property_type (daire, müstakil ev, arsa, ticari), listing_type (satılık, kiralık, yeni proje), num_beds, num_baths, area_size, area_unit, year_built, availability, agent_name, agent_phone.
<item>
<g:home_listing_id>EMK-2291</g:home_listing_id>
<g:name>3+1 Apartment with Sea View — Kadıköy</g:name>
<g:description>Renovated 3+1 apartment, 4th floor, elevator, closed parking.</g:description>
<g:address>Caferağa Mah., Kadıköy, İstanbul, TR</g:address>
<g:latitude>40.9862</g:latitude>
<g:longitude>29.0299</g:longitude>
<g:url>https://example.com/ilan/2291</g:url>
<g:image>https://cdn.example.com/emk-2291-01.jpg</g:image>
<g:price>12500000.00 TRY</g:price>
<g:property_type>apartment</g:property_type>
<g:listing_type>for_sale</g:listing_type>
<g:num_beds>3</g:num_beds>
<g:num_baths>2</g:num_baths>
<g:area_size>135</g:area_size>
<g:area_unit>sq_m</g:area_unit>
<g:availability>available</g:availability>
</item>
Feed sorunu olmayan ama kampanyanızı durduracak bir şey: konut, Meta'da kısıtlı bir reklam kategorisidir. Konut ilanlarını tanıtan kampanyalar, hedefleme seçeneklerini kısıtlayan konut özel reklam kategorisi altında beyan edilmelidir. Bu ayarlanmazsa katalog kusursuz olsa bile kampanya yine başarısız olabilir.
10. İş ilanı feed'leri
İşe alım tamamen farklı bir belge yapısı kullanır (<rss> ve <item> yerine <source> ve <job>) ve bunu görmeye değer; çünkü "XML feed'i"nin tek bir şema değil, bir kalıp olduğunu gösterir.
<?xml version="1.0" encoding="UTF-8"?>
<source>
<publisher>Example Company</publisher>
<publisherurl>https://example.com</publisherurl>
<lastBuildDate>Wed, 12 Aug 2026 09:00:00 GMT</lastBuildDate>
<job>
<title><![CDATA[Senior Backend Engineer]]></title>
<date><![CDATA[Mon, 10 Aug 2026 08:00:00 GMT]]></date>
<referencenumber><![CDATA[ENG-4471]]></referencenumber>
<url><![CDATA[https://example.com/careers/eng-4471]]></url>
<company><![CDATA[Example Company]]></company>
<city><![CDATA[İstanbul]]></city>
<state><![CDATA[İstanbul]]></state>
<country><![CDATA[TR]]></country>
<postalcode><![CDATA[34394]]></postalcode>
<description><![CDATA[<p>We are hiring a senior backend engineer to work on our data pipeline...</p>]]></description>
<salary><![CDATA[120000 - 160000 TRY monthly]]></salary>
<jobtype><![CDATA[fulltime]]></jobtype>
<category><![CDATA[Engineering]]></category>
<experience><![CDATA[5+ years]]></experience>
</job>
</source>
İş ilanı feed'lerine özgü dört kural:
CDATAistisna değil, normdur. İş tanımları HTML, ve işaretleri (&) ve kesme işaretleri içerir. Her alanı<![CDATA[...]]>içine almak, bütün bir ayrıştırma hatası sınıfını önler.- Konum için en az şehir, eyalet/il ve ülke gerekir. Bunları atlarsanız ilan, büyük iş ilanı toplayıcılarında varsayılan olarak organik görünürlüğünü kaybeder.
- Doldurulan pozisyonlar kapalı olarak işaretlenmemeli, kaldırılmalıdır.
availabilitykarşılığı yoktur. Feed'de bulunmanın kendisi müsaitlik sinyalidir ve toplayıcılar güncelliğini yitirmiş ilanlar taşıyan feed'leri cezalandırır. - Bir dil, bir iş ilanı girdisi. İki dilde yayınlanan bir ilan, farklı referans numaralarına sahip iki ayrı girdi gerektirir.
Feed'den ayrı olarak, kariyer sayfasındaki JSON-LD formatında JobPosting yapılandırılmış verisi, bir pozisyonu arama sonuçlarındaki iş ilanlarına uygun hale getiren şeydir. İkisi birbirini tamamlar: feed toplayıcılara dağıtımı, yapılandırılmış veri ise organik aramayı üstlenir. İşe alım ekiplerinin çoğu birini yapar, diğerini yapmaz.
11. Zamana bağlı envanter
En ilginç feed kategorisinin resmi bir spesifikasyonu yoktur, çünkü platformlar bunu hiç öngörmedi: tanımlayıcı özelliği ne değil, ne zaman olan envanter.
Futbol maçları. Konserler. Sinema gösterimleri. Uçuş kalkışları. Açık artırma lotları. Restoran rezervasyon saatleri. Teslimat zaman aralıkları.
Bunların hepsi ürünlerin tüm özelliklerine sahiptir (bir kimlik, bir fiyat, bir görsel, bir açılış sayfası) ve buna ek olarak perakende spesifikasyonunda alanı olmayan bir özelliğe: saatlerle ölçülen bir raf ömrüne. Başlamış bir maç "stokta yok" değildir, anlamsızdır.
İşe yarayan yaklaşım, bunları standart katalog ürünleri olarak modellemek ve zaman boyutunu platformun zaten anladığı alanlara kodlamaktır:
<item>
<g:id>MTC-2026-08-16-GS-FB</g:id>
<g:title>Galatasaray - Fenerbahçe | Super League, Week 2</g:title>
<g:description>Saturday 16 August, 19:00. Live odds and in-play betting.</g:description>
<g:link>https://example.com/mac/2026-08-16-gs-fb</g:link>
<g:image_link>https://cdn.example.com/creatives/mtc-2026-08-16-gs-fb.jpg</g:image_link>
<g:availability>in_stock</g:availability>
<g:price>1.00 TRY</g:price>
<g:product_type>Football > Super League > Week 2</g:product_type>
<g:custom_label_0>2026-08-16</g:custom_label_0>
<g:custom_label_1>derby</g:custom_label_1>
<g:custom_label_2>ms1-2.10</g:custom_label_2>
<g:expiration_date>2026-08-16T19:00+0300</g:expiration_date>
</item>
Bunu çalışır kılan üç şey:
expiration_dateveya eşdeğer bir kaldırma kuralı; böylece ürün bir sonraki planlı senkronizasyonda değil, maç başladığı anda katalogdan çıkar.- Zaman boyutunu taşıyan özel etiketler; böylece kampanyalar "bu hafta sonu", "derbi" veya "oran 2.0'ın üzerinde" gibi kavramlar etrafında yapılandırılabilir.
- Her ürün için bir kreatif. Yaklaşımın genellikle tıkandığı yer burasıdır. Haftada birkaç yüz maçlık bir fikstür listesi, her biri takımları, tarihi, saati ve güncel oranları taşıyan birkaç yüz görsel gerektirir. Hiçbir tasarım ekibi bunu üretemez. Kreatifi feed satırından üretmek, bu tempoya ayak uyduran tek yöntemdir; Bilyoner'in ilk kez katalog reklamları yayınlaması ve ROAS'ı %49 artırması da tam olarak böyle oldu.
Envanterinizin bir başlangıç saati varsa, bir katalogda yer almalıdır. Engel neredeyse her zaman kavram değil, formattır.
12. Yerel envanter feed'leri
Yerel envanter, perakende ile dikey sektörler arasında yer alır: aynı ürünler, her fiziksel lokasyon için ayrı ayrı tanımlanır.
Parametreler: id, store_code, quantity, price, sale_price, sale_price_effective_date, availability, pickup_method (satın al, rezerve et, mağazaya gönder, desteklenmiyor), pickup_sla (aynı gün, ertesi gün, birkaç gün).
Yapısal nokta şudur: yerel feed bir yedek değil, bir ektir. Birincil ürün feed'indeki ürünlere id ile referans verir ve mağaza bazındaki bilgileri ekler. Tek ürün, çok sayıda mağaza, çok sayıda satır.
Belirtmeye değer bir 2026 notu: aynı ürünün farklı fiyat veya stok durumuna sahip online ve mağaza içi versiyonları artık tek bir ürüne birleştirilmek yerine ayrı ürün ID'lerine ihtiyaç duyuyor. Bunları birleştirmiş olan feed'lerden ayırmaları isteniyor.
13. Biçimlendirme kuralları
Bunlar bu makaledeki her feed türü için geçerlidir ve birlikte, tamamen başarısız olan feed'lerin büyük çoğunluğunun nedenidir.
Kodlama. Her zaman UTF-8; XML bildiriminde belirtilmiş ve eşleşen bir Content-Type başlığıyla sunulmuş olmalıdır. Bildirilen ve gerçek kodlama arasındaki uyuşmazlıklar ASCII dışındaki her karakteri bozar.
Kaçış karakterleri. XML içeriğinde beş karakterin kaçışlanması gerekir: & → &, < → <, > → >, " → ", ' → '. İzleme URL'lerindeki kaçışlanmamış ve işaretleri (&), ayrıştırılamayan feed'lerin bir numaralı nedenidir. Alternatif, iş ilanı feed'lerinde standart uygulama olan ve açıklamaların işaretleme içerdiği her yerde işe yarayan CDATA'dır.
Tarihler. Açık bir saat dilimi farkıyla ISO 8601. 16.08.2026 19:00 değil, 2026-08-16T19:00+0300. Saat dilimi bilgisi içermeyen tek bir kaynaktan birden fazla pazara hizmet veren feed'ler, saatler erken veya geç sona eren ürünler üretir.
Fiyatlar. Değer ve ISO 4217 para birimi; ondalık ayırıcı virgül değil nokta, binlik ayırıcı yok. 4299.00 TRY. Ve feed'deki fiyat açılış sayfasıyla eşleşmelidir; bu, çoğu platformda tarama yoluyla denetlenir.
Sabit listeli değerler büyük/küçük harfe ve biçime duyarlıdır ve platforma göre farklılık gösterir. Google in_stock bekler; Meta in stock bekler. Bu tek fark, diğer her şeyden daha fazla katalog içe aktarımını bozmuştur. Bir sabit listeli değerin hedefler arasında aynen geçerli olduğunu asla varsaymayın.
Dosya teslimi. Büyük dosyalar için Gzip sıkıştırma, kararlı bir HTTPS URL'si, platform açıkça desteklemedikçe kimlik doğrulama duvarı olmaması ve platformun zaman aşımı süresi içinde yanıt veren bir sunucu. Cloudflare bot korumasının arkasındaki bir feed URL'si, çekilmeyen bir feed URL'sidir.
Güncelleme sıklığı bir alışkanlığa değil, altta yatan verinin oynaklığına göre belirlenmelidir: oranlar, uçuş fiyatları ve hızlı değişen perakende stoku için saatlik veya daha sık; araçlar ve gayrimenkul için birkaç saatte bir; stabil kataloglar için günlük.
14. XML, CSV, JSON ve API karşılaştırması
| Format | En uygun olduğu durum | Dikkat edilmesi gerekenler |
|---|---|---|
| XML | İç içe ve tekrarlanan yapılar: bölgeye göre kargo, çoklu görseller, grup öznitelikleri | Ayrıntılı ve hacimli; kaçış hataları tüm dosyayı bozar |
| CSV | Basit düz kataloglar, hızlı manuel düzenlemeler | Başlık ve açıklamalardaki virgüller; tırnak hataları |
| TSV | Aynı kullanım, daha güvenli şekilde | Neredeyse hiç; sekme karakterleri ürün verilerinde nadiren bulunur |
| JSON | Modern API'ler, geliştiricilerin kurduğu veri hatları | Her hedef tarafından kabul edilmez |
| API | Gerçek zamanlı güncellemeler, çok büyük kataloglar, kısmi güncellemeler | Mühendislik maliyeti; istek limitleri |
XML, iç içe yapı içeren her şey için varsayılan olmaya devam ediyor; araç, seyahat ve kargo ağırlıklı perakende feed'lerinin genellikle XML, basit moda kataloglarının ise çoğu zaman TSV olmasının nedeni budur. Ayrıca birçok büyük hedefin API öncelikli veri alımına doğru ilerlediğini de unutmayın; dolayısıyla dosyayı tek entegrasyon yolunuz olarak görmek orta vadeli bir risktir.
Başlıklarınız virgül içeriyorsa (renk ve beden içeren başlıklar neredeyse her zaman içerir) CSV yerine TSV kullanın. Bütün bir ayrıştırma hatası sınıfı ortadan kalkar.
15. Yayın öncesi kontrol listesi
- [ ] Dosya, bir platformun yakınına bile gitmeden önce bir XML doğrulayıcıda ayrıştırılıyor
- [ ]
UTF-8doğru şekilde bildirilmiş ve sunuluyor; ASCII dışındaki karakterler düzgün görüntüleniyor - [ ] Her URL'deki her
&kaçışlanmış ya da alanCDATAiçine alınmış - [ ] ID'ler benzersiz, senkronizasyonlar arasında kararlı ve piksel veya etiket etkinliklerinizle eşleşiyor
- [ ] Hedef için tüm zorunlu öznitelikler mevcut; genel bir spesifikasyona göre değil, o hedefin spesifikasyonuna göre doğrulanmış
- [ ] Sabit listeli değerler kopyalanmamış, her hedef için dönüştürülmüş
- [ ] Fiyatlar, para birimi ve vergi uygulaması dahil açılış sayfalarıyla birebir eşleşiyor
- [ ] Tarihler saat dilimi farkıyla ISO 8601 formatında
- [ ] Görseller 500x500 minimumunu karşılıyor ve yönlendirme olmadan HTTPS üzerinden açılıyor
- [ ] Satılan, doldurulan, süresi dolan veya kalkışı gerçekleşen ürünler feed'den doğru zamanda çıkıyor
- [ ] Güncelleme sıklığı, altta yatan verinin gerçekte ne kadar hızlı değiştiğiyle uyumlu
- [ ] Feed URL'si herkese açık olarak erişilebilir ve bot koruması tarafından engellenmiyor
- [ ] Beklenmedik ürün sayısı değişiklikleri için bir izleme kuralı mevcut
16. SSS
XML 2026'da hâlâ doğru format mı?
İç içe veri içeren her şey için evet. Düz kataloglar için TSV daha basit ve daha az kırılgandır. Gerçek zamanlı gereksinimler için bir API entegrasyonu her dosyadan üstündür. Format alışkanlığa değil, veriye göre seçilmelidir.
Her platform için tek bir feed kullanabilir miyim?
Tek bir kaynak, evet. Tek bir dosya, hayır. Alan adları, sabit listeli değerler, karakter sınırları ve zorunlu öznitelikler hedefe göre farklılık gösterir ve bu farklar yüzeysel değildir. Uygulanabilir mimari, dışa aktarmada kanala özel dönüşümlerin uygulandığı tek bir kanonik katalogdur.
Envanterim ürün değilse ne olacak?
O zaman perakende spesifikasyonuna değil, kendi sektörünüzün spesifikasyonuna ihtiyacınız vardır. Araçların, otellerin, uçuşların, destinasyonların, gayrimenkulün ve iş ilanlarının hepsinin kendi spesifikasyonu vardır. Envanteriniz hiçbir platformun spesifikasyonu olmayan bir şeyse (maçlar, gösterimler, zaman aralıkları, lotlar) onu ürün olarak modeller ve eksik boyutu mevcut alanlara kodlarsınız.
Feed ne sıklıkla güncellenmeli?
Altta yatan veri önemli ölçüde değiştiği sıklıkta. Bu sabah satılmış ve bu öğleden sonra hâlâ reklamı yapılan bir araç, hiçbir şey için para harcıyor demektir.
GTIN'lere ihtiyacım var mı?
Perakende için fiilen evet. GTIN, ürününüzü bir platformun ürün bilgisine bağlayan şeydir ve bu da karşılaştırma yüzeylerinde ve yapay zekâ destekli alışveriş sonuçlarında görünüp görünmeyeceğinizi giderek daha fazla belirler. Araçlar, gayrimenkul ve iş ilanları için eşdeğer kimlik alanları vin, ilan ID'si ve referans numarasıdır.
İşin zorlaştığı yer
Bu makaledeki kuralların hiçbiri tek başına zor değildir. Zorluk, bunlardan birkaç yüz tane olması, hedefe göre farklılık göstermeleri, haber vermeden değişmeleri ve ihlal edildiklerinde sessizce başarısız olmalarıdır.
Google, Meta, TikTok ve üç pazaryerine aktarılan tek bir katalog, tek bir doğruluk kaynağından aynı anda karşılanan altı farklı sözleşme demektir. Bunu elle yapmak, altı dosyanın bakımını yapmak ve katalog her değiştiğinde bunları uzlaştırmak anlamına gelir.
Feedance tam olarak bu katman için geliştirildi: öznitelikleri kaynakta normalleştiren feed kuralları, kaynak verilerinize dokunmadan 200'den fazla hedefin her biri için doğru dönüşümü uygulayan kanal dışa aktarımları, eksik öznitelikleri ve beklenmedik ürün sayısı değişikliklerini bir platformdan önce yakalayan Feed Protection ve manuel üretimin hiçbir zaman gerçekçi olmadığı kataloglar için her feed satırından bir görsel veya video üreten Creative Suite.
Perakende dışı sektörleri sonradan akla gelen bir ek olarak değil, birinci sınıf vatandaş olarak destekler: canlı fiyatlandırmalı seyahat envanteri, maç saati verili bahis katalogları, otomotiv, gayrimenkul ve iş ilanı dağıtım kanalları.
Herhangi bir şeyi değiştirmeden önce mevcut feed'inizin nerede durduğunu öğrenmek isterseniz, ücretsiz feed denetim aracımız onu eksiksizlik, veri kalitesi ve teknik sağlık açısından ücretsiz olarak puanlar. Ya da 15 dakikalık bir demo planlayın, birlikte inceleyelim.
Son inceleme: Ağustos 2026. Platform spesifikasyonları sık sık değişir; uygulamaya geçmeden önce güncel gereksinimleri her hedefin resmi dokümantasyonundan doğrulayın.

Feedance'ın kurucu ortağıdır; bilgisayar mühendisliği ve pazarlama alanındaki geçmişini analitik içgörüler üretmek için kullanır. Verileri uygulanabilir stratejilere dönüştürmeye odaklanarak markaların dijital dünyada kayda değer bir büyüme elde etmesine yardımcı olmaya kendini adamıştır.
LinkedIn
















