Select URL, temel depolanan verileri göstermeden Shared Storage verilerine göre kullanıcıya hangi içeriğin gösterileceğini seçmenize olanak tanır.
Siteler arası verilere dayalı içerikleri gizliliğe saygılı bir şekilde göstermek istediğiniz durumlarda Select URL API'yi kullanabilirsiniz. URL Seçme API'si aşağıdaki gibi kullanım alanlarında iyi sonuç verir:
- Birden fazla sitede tutarlı bir kullanıcı deneyimi için içerik A/B testi.
- Hesabı olan ve olmayan kullanıcılar için farklı bir giriş düğmesi gösterme.
- Kullanıcının aynı reklamı birden fazla sitede görme sıklığını sınırlamak için reklam öğelerini döndürme
Select URL API nedir?
Select URL API, siteler arası verilere göre bir dizi URL arasından seçim yapmanıza olanak tanır. API, Shared Storage üzerine kurulmuştur ve kullanılabilir siteler arası verileri okumak ve sağlanan URL'lerden birini seçmek için SharedStorageWorklet kullanır. Seçilen URL, arayan kişiye yalnızca sınırlı bir çerçeve içinde okunmasını sağlayacak şekilde döndürülür. URL, en az 2026'ya kadar bir iframe'de de oluşturulabilir.

Önceki şemada, shoes.example sitesi news.example gibi diğer yayıncı sitelerine yerleştirilebilir ve yerleştirilecek uygun içeriği seçmek için SelectURL with Shared Storage'ı kullanarak aynı verilere erişmeye devam edebilir.
URL seçme özelliğinin işleyiş şekli
Siteler arası verileri kullanarak fenced frame veya iFrame'de oluşturulacak bir URL'yi seçmek için Select URL API'yi kullanabilirsiniz. JavaScript'i kullanarak SharedStorage'da siteler arası verileri okuyup yazın, ardından depolanan verilerinize göre sağlanan listeden bir URL seçin.

Oluşturulan URL, her türlü içeriği (reklamlar, makaleler, resimler, HTML, harekete geçirici mesajlar (ör. düğmeler) vb.) içerebilir.
Bu örnekte, bir seyahat sitesi işlettiğinizi ve üç farklı reklam öğesiyle bir reklam kampanyası yayınladığınızı varsayalım. Bu reklam öğelerini kullanıcının etkileşimlerine (görüntüleme veya tıklama) göre sıralamak istiyorsunuz.
Bir site ilk kez kazanan bir reklam alanı gözlemlediğinde, bu reklam öğesi için bir kimlik ve tıklama durumu, Paylaşılan Depolama'da saklanabilir.
Örneğin:
await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');
Bu, kullanıcının ziyaret ettiği diğer sitelerde bir reklam açık artırmasını kazandığınızda bu verilere göre farklı bir reklam gösterebileceğiniz anlamına gelir.

JavaScript'iniz bu bilgileri almak için bir
SharedStorageWorklet
içinde çalışır ancak kodunuz, üst sayfadaki iFrame veya fenced frame dışında etkileşimde bulunamaz ya da iletişim kuramaz.
Başka bir örnek olarak, yerleştirilmiş bir bağlamda hangi makalenin daha iyi performans göstereceğini test etmek isteyebilirsiniz. Bunu test etmek için, sitenizde gördüğünüz bir kullanıcıyı deneme grubuna atayabilir, ardından bu grup kimliğini siteler arası bağlamda erişilebilmesi için Shared Storage'da saklayabilirsiniz. Başka bir sitede, SelectURL API'yi kullanarak, kullanıcıların Shared Storage ile depolanan deneme grubuna göre fenced frame'de oluşturulacak en uygun URL'yi seçebilirsiniz.
URL seçme özelliğini kullanarak, kullanıcı bilgilerini (ör. tarayıcı geçmişi veya diğer kişisel bilgiler) yerleştirme yapılan bir siteyle paylaşmadan ya da verileri kendi sunucularınıza sızdırmadan siteler arası verilere dayalı olarak bilinçli kararlar verebilirsiniz.
Bütçeler
Siteler arası veri sızıntısı riskini azaltmak için Select URL API, uzun vadeli ve kısa vadeli bütçelerin bir kombinasyonunu içeren bir bütçelendirme sistemi kullanır:
- Uzun vadeli bütçe:
selectURL()kullanılırken uzun vadeli bütçe, arayan site başına günlük 12 bit'tir. Bu bütçe yalnızca seçilen URL'yi barındıran çerçeve üst düzey bir gezinme işlemi gerçekleştirdiğinde ücretlendirilir. Bu durumda maliyetlog2(number of URLs)olarak hesaplanır. Bu nedenle, aralarından seçim yapabileceğiniz 8 URL sağlarsanız maliyet 3 bit olur. Gün için kalan bütçe12 - (sum of bits deducted in the last 24 hours)olarak hesaplanır. Yeterli bütçe kalmamışsa varsayılan URL (listedeki ilk URL) döndürülür ve varsayılan URL'ye gidilirse 1 bit kaydedilir. Kısa vadeli bütçeler: Kısa vadeli bütçeler, fenced frame'ler tam olarak uygulanana ve etkinlik düzeyinde raporlama kullanılabilir olmaya devam edene kadar sayfa yükleme başına ek sınırlardır. Tek bir çağıran sitenin
selectURL()kullanarak ne kadar bilgi sızdırabileceğini sınırlayan, sayfa yükleme başına, çağıran site başına 6 bit bütçe vardır. Ayrıca, sayfa yükleme başına toplam 12 bit bütçe vardır. Bu, sayfadaki tüm çağırma siteleri için birleştirilmiş bir sınırdır.Kayıtlı sorgular, kısa vadeli bütçe kullanımını azaltarak aynı sayfada önceki bir
selectURL()sonucu yeniden kullanmanıza olanak tanır.selectURL(), kaydedilmiş bir sorgu adıyla ilk kez çağrıldığında sonuç dizini sayfanın ömrü boyunca saklanır. Takip eden çağrılar içinselectURL()aynı kayıtlı sorgu adıyla çağrıldığında, depolanan dizin döndürülür ve kayıtlı işlem çalıştırılmaz. Bu durumda bütçe yalnızca ilk kullanımda alınır. Aynı sayfa yüklemesi içinde yeniden kullanıldığında ise yeni bir bilgi ortaya çıkmadığı için bütçe alınmaz.Kayıtlı sorguları, bu örnekte gösterildiği gibi, seçenekler nesnesine seçtiğiniz sorgu adıyla birlikte savedQuery özelliğini ekleyerek uygulayabilirsiniz.
işaretleriyle Canary M132+ başlatılarak test edilebilir.const topProductUrls = [ { url: 'https://ad.example/default-top-product.html' }, { url: 'https://ad.example/experiment-top-product.html' }]; const relatedProductUrls = [ { url: 'https://ad.example/default-related-product.html' }, { url: 'https://ad.example/experiment-related-product.html' }]; // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'` // on this page, so it will be charged to both per-page budgets. const topProductsConfig = await sharedStorage.selectURL( 'productExperiment', topProductUrls, { savedQuery: 'control_or_experiment', keepAlive: true, resolveToConfig: true }); document.getElementById('topProductsFencedFrame').config = topProductsConfig; // This next call with this savedQuery won't charge either of the per-page budgets. const relatedProductConfig = await sharedStorage.selectURL( 'productExperiment', relatedProductUrls, { savedQuery: 'control_or_experiment', resolveToConfig: true }); document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
URL API kullanım alanlarını seçin
Farklı alanlarda çalışması gereken özelliklere sahip bir web sitesi oluşturuyorsanız aşağıdaki kullanım alanlarından birine sahip olabilirsiniz:
- Reklam öğelerini döndürme: Kullanıcıların farklı sitelerde hangi reklam öğelerini göreceğini belirlemek için reklam öğesi kimliği, görüntüleme sayısı ve kullanıcı etkileşimi gibi verileri depolayarak kullanıcının aynı reklamı birden fazla sitede görme sıklığını sınırlayın. Bu sayede, görüntülemeleri dengeleyebilir ve belirli içeriklerin aşırı doygunluğunu önleyerek olası olumsuz kullanıcı deneyimini sınırlayabilirsiniz. Bu kullanım alanı hakkında daha fazla bilgi için Reklam öğelerini döndürme başlıklı makaleyi inceleyin.
- Sıklığa göre reklam öğesi seçme: Kullanıcının aynı reklamı birden fazla sitede görme sıklığını sınırlamak için tarayıcı görüntüleme sayılarını Shared Storage'da saklayın. Bu kullanım alanı hakkında daha fazla bilgi için Sıklığa göre reklam öğesi seçme başlıklı makaleyi inceleyin.
- Bilinen müşteriler için kullanıcı deneyimini özelleştirme: Farklı alanlarınızda tutarlı bir deneyim sunun. Kullanıcının kayıt durumuna veya diğer kullanıcı durumlarına göre özel içerikler ve harekete geçirici mesajlar paylaşın, farklı alanlarınızda tutarlı bir deneyim sunun. Bu kullanım alanı hakkında daha fazla bilgi için Bilinen müşteriler için kullanıcı deneyimini özelleştirme başlıklı makaleyi inceleyin.
- A/B testi yapın: A/B testi, hangi yapılandırmanın daha iyi performans gösterdiğini belirlemek için bir yapılandırmanın iki veya daha fazla sürümünü karşılaştırır. Bir kullanıcıyı deneme grubuna atayabilir, ardından bu grubu siteler arası erişim için Paylaşılan Depolama'da saklayabilirsiniz. Bu sayede, kullanıcıları izlemeden siteler ağınızdaki kullanıcı davranışları hakkında analizler toplayabilirsiniz. Bu kullanım alanı hakkında daha fazla bilgi için A/B testi çalıştırma başlıklı makaleyi inceleyin.
Shared Storage ile Select URL API, farklı üst düzey sitelerde aynı depolama alanına erişerek bu kullanım alanlarını geliştirmenize olanak tanır.
Demeyle denemeler yapın
Shared Storage demosunu kullanarak URL seçme özelliğini deneyebilirsiniz.
Bu demo, farklı yayıncıların sitelerinde bilgi depolamak isteyen bir reklamverenin, reklam teknolojisi şirketinin, içerik dağıtımcısının veya başka bir üçüncü taraf hizmetinin bakış açısıyla hazırlanmıştır. Demoda, her kullanım alanı için hem A yayıncısının hem de B yayıncısının sitesinde aynı üçüncü taraf kodu çalıştırılır. Verilerin siteler arası bağlamda nasıl paylaşıldığını görmek için her yayıncının sayfasını ziyaret edin.
Demodaki kodu GitHub'da da inceleyebilirsiniz.
API durumu
Select URL API'si genel kullanıma sunulmuştur. Select URL API'yi kullanmak veya yerel geliştirme için etkinleştirmek istiyorsanız Özel Korumalı Alan'a kaydolma talimatlarını uygulayın.
| Teklif | Durum |
|---|---|
İçerik Seçimi (selectURL()) için etkinlik düzeyinde raporlama |
En az 2026'ya kadar kullanılabilir |
| Site başına bütçe Açıklayıcı |
M119'da kullanılabilir |
| DevTools ile Ortak Depolama iş akışlarında hata ayıklama Bölüm |
M120'de kullanılabilir |
Etkileşim kurma ve geri bildirim paylaşma
Select URL API teklifinin aktif olarak tartışılıp geliştirildiğini ve bu nedenle değişebileceğini unutmayın.
Select URL API hakkındaki düşüncelerinizi öğrenmek istiyoruz.
- Teklif: Ayrıntılı teklifi inceleyin.
- Tartışma: Soru sormak ve görüşlerinizi paylaşmak için devam eden tartışmaya katılın.