Amsterdam'daki 200 restoran üzerinde Temmuz ayında yapılan bir test, mevcut yapay zeka asistanlarının bir masa rezervasyonunu tamamlayamadığını gösterdi; çünkü rezervasyon aracı bir iframe içinde gizlenmiş durumda.

iframe'lerin ajanları engelleme nedeni

Çoğu çevrimiçi rezervasyon aracı, gömülü bir iframe olarak sunulur. Bir ziyaretçi “Rezervasyon Yap” butonuna tıklar, bir takvim açılır ve kullanıcı bir zaman dilimi seçer. Bir insan için süreç işler; ancak bir yapay zeka ajanı için süreç tıkanır.

  • Ajan, ana HTML sayfasını ayrıştırır.
  • Rezervasyon butonu, farklı bir alan adına (domain) ait bir URL'ye işaret eder.
  • Tarayıcı, bu URL'yi bir iframe içinde yükleyerek ana sayfadan izole eder.

Aynı köken politikası (same-origin policy), ana sayfadaki betiklerin (script) iframe'in DOM yapısını okumasını veya ağ çağrılarını (network calls) yakalamasını engellediği için, sayfa içeriğini okuyan ve HTTP istekleri gönderen bir yapay zeka ajanı sadece butonu görebilir. Takvimi, zaman dilimlerini veya onay akışını asla göremez. Butona tıklasa bile, hala captcha'ları çözmek, düzen değişikliklerine uyum sağlamak veya birçok rezervasyon servisinin uyguladığı otomasyon karşıtı savunmaları aşmak zorundadır.

Eksik olan makine tarafından okunabilir bağlantı

163 işlevsel restoran sitesinin ayrı bir denetimi, makine tarafından okunabilir rezervasyon verisi sunan sadece dokuz site buldu. Bu dokuz site; isim ve adres gibi temel bilgileri schema.org işaretlemesi kullanarak listeliyordu ancak hiçbiri bir ajanın çağırabileceği rezervasyon eylemlerini içermiyordu. Schema.org bu amaç için ReserveAction gibi türler tanımlasa da, çoğu site eyleme dönüştürülebilir talimatlar yerine yalnızca tanımlayıcı meta veriler yayınlıyor.

Uygulamada bir asistan, görevin sadece ne olduğunu değil, nasıl gerçekleştirileceğini söyleyen yapılandırılmış verileri arar. Bir ReserveAction veya benzeri bir uç nokta (endpoint) olmadan ajan, yukarıda açıklandığı gibi güvenilmez olan bir yönteme, yani bir insan tıklamasını taklit etmeye geri döner.

Kullanıcı arayüzünü (UI) bozmayan pratik bir çözüm

  1. Bir rezervasyon API'si yayınlayın – Müsaitlik sorguları ve rezervasyon oluşturma için JSON isteklerini kabul eden hafif bir HTTP uç noktası (endpoint) oluşturun. API; tarih, saat, kişi sayısı ve onay kodu gibi alanlar döndürür. Herhangi bir ajan, bir sayfayı oluşturmaya (render etmeye) gerek duymadan bu API'yi kullanabilir.
  2. API'yi keşfedilebilir hale getirin/.well-known/booking gibi bilinen bir konuma bir işaretçi yerleştirin veya sayfanın schema.org işaretlemesine bir ReserveAction girişi ekleyin. Bu, ajanlara kazıma (scraping) yapmalarına gerek kalmadan “burada programatik bir rezervasyon yolu var” mesajını verir.
  3. Model Context Protocol (MCP)'u benimseyin – MCP, asistanların girişleri ileterek ve yapılandırılmış çıktılar alarak harici araçları doğrudan çağırmasına olanak tanır. Büyük yapay zeka sağlayıcıları halihazırda MCP'yi desteklemektedir; bu nedenle MCP uyumlu bir uç nokta uygulayan bir restoran, ajanlar tarafından yerleşik bir fonksiyonmuş gibi çağrılabilir.

Bu adımlar, görsel iframe'in insan kullanıcılar için kalmasını sağlarken, ajanlara aynı rezervasyon verilerine ulaşmaları için temiz ve güvenilir bir yol sunar.

Özet

Bir takvimi iframe içine gömmek, insanlar için görsel akışı korur ancak yapay zeka asistanlarını kör bırakır. Mütevazı ve iyi belgelenmiş bir rezervasyon API'si eklemek ve bunu standart meta veriler veya MCP aracılığıyla duyurmak, web sitesini tamamen değiştirmeye gerek kalmadan yeni bir rezervasyon kanalı açar. Bu çaba, yeni nesil dijital asistanlar için görünürlüğü artırır ve risk, mevcut kullanıcı arayüzünde (UI) halihazırda kullanılan güvenlik kontrolleriyle yönetilebilir.