Bu makale kimler için hazırlandı?
Bu yayın, deneysel Protected Audience API'nin mevcut iterasyonuna teknik bir referanstır.
Protected Audience API, teklifle ilgili daha az teknik bir genel bakış sunar ve aynı zamanda bir sözlük içerir.
Protected Audience demosu, temel FLEDGE dağıtımının adım adım açıklamalı kılavuzunu sunar.
Protected Audience demo videosunda demo kodunun işleyiş şekli ve Protected Audience hata ayıklaması için Chrome Geliştirici Araçları'nın nasıl kullanılacağı gösterilmektedir.
Protected Audience nedir?
Protected Audience API, yeniden pazarlama ve özel kitle kullanım alanları sunan bir Özel Korumalı Alan teklifidir. Bu API, üçüncü tarafların sitelerdeki kullanıcı göz atma davranışını izlemek için kullanılamayacaktır. API, kullanıcının daha önce ziyaret ettiği web siteleri için alakalı reklamları seçmek amacıyla tarayıcı tarafından cihaz üzerinde açık artırmalar yapılmasını sağlar.
Protected Audience, Chromium'da TURTLEDOVE teklif ailesinde uygulanan ilk denemedir.
Aşağıdaki şemada, FLEDGE yaşam döngüsüne genel bir bakış sunulmaktadır:
Protected Audience'ı nasıl deneyebilirim?
Korunan kitle demosu
Reklamveren ve yayıncı siteleri genelinde temel Protected Audience dağıtımının adım adım açıklamalı kılavuzunu Protected-audience-demo.web.app adresinde bulabilirsiniz.
Tanıtım videosunda demo kodunun işleyiş şekli ve Protected Audience hata ayıklaması için Chrome Geliştirici Araçları'nın nasıl kullanılacağı gösterilmektedir.
Protected Audience kaynak denemesine katılma
Protected Audience, Topics ve Attribution Reporting API'leri için Chrome Beta 101.0.4951.26 ve sonraki sürümlerde Özel Korumalı Alan Alaka Düzeyi ve Ölçüm kaynak denemesi kullanıma sunulmuştur.
Programa katılmak için kaynak deneme jetonuna kaydolun.
Denemeye başarıyla kaydolduktan sonra, geçerli bir deneme jetonu sağlayan sayfalarda Protected Audience JavaScript API'yi deneyebilirsiniz. Örneğin, tarayıcıdan bir veya daha fazla ilgi alanı grubuna katılmasını isteyebilir ve ardından bir reklam seçip göstermek için reklam açık artırması düzenleyebilirsiniz.
Protected Audience demosu, uçtan uca Protected Audience dağıtımının temel bir örneğini sağlar.
Protected Audience API kodunu çalıştırmak istediğiniz her sayfa için bir deneme jetonu sağlayın:
<head> içinde bir meta etiket olarak:
<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
HTTP üstbilgisi olarak:
Origin-Trial: TOKEN_GOES_HERE
Jetonu programatik olarak sağlayarak:
const otMeta = document.createElement('meta'); otMeta.httpEquiv = 'origin-trial'; otMeta.content = 'TOKEN_GOES_HERE'; document.head.append(otMeta);
Protected Audience kodunu çalıştıran bir iframe'in (ör. bir ilgi alanı grubu sahibi tarafından yapılan navigator.joinAdInterestGroup()
çağrısı) kaynağıyla eşleşen bir jeton sağlaması gerekir.
Önerilen İlk Korunan Kitle Kaynak Denemesi Ayrıntıları, ilk denemenin hedefleri hakkında daha fazla ayrıntı sağlar ve hangi özelliklerin desteklendiğini açıklar.
Bu API'yi test et
Masaüstü bilgisayarda Chrome Beta 101.0.4951.26 ve sonraki sürümlerde Protected Audience'ı tek bir kullanıcı için test edebilirsiniz:
chrome://settings/adPrivacy
kapsamındaki tüm reklam gizliliği API'lerini etkinleştirerek- Komut satırından işaretleri ayarlayarak.
iframe'ler veya korumalı çerçeveler içinde reklam oluşturun
Reklamlar, hangi işaretlerin ayarlandığına bağlı olarak <iframe>
veya <fencedframe>
içinde oluşturulabilir.
Reklamları oluşturmak üzere <fencedframe>
kullanmak için:
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames
Reklamları oluşturmak üzere <iframe>
kullanmak için:
--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames
Geçici hata ayıklama kaybı/kazanma raporlama yöntemlerini etkinleştirmek için BiddingAndScoringDebugReportingAPI
işaretini ekleyin.
Chrome'u işaretlerle çalıştırma, Chrome ve diğer Chromium tabanlı tarayıcıları komut satırından çalıştırırken işaretlerin nasıl ayarlanacağını açıklar. Protected Audience işaretlemelerinin tam listesine Chromium Code Search'ten ulaşabilirsiniz.
Chrome'un son sürümünde hangi özellikler destekleniyor?
Protected Audience, Protected Audience teklifinin aşağıdaki özelliklerini test etmek için ilk deneme olarak Chromium'daki özellik bayraklarının arkasında kullanıma sunulmaktadır:
- İlgi alanı grupları: Tarayıcı tarafından saklanır ve reklam teklif vermeyi ve oluşturmayı yapılandırmak için ilişkili meta verilerle birlikte.
- Alıcılara göre cihaz üzerinde teklif verme (TTP veya reklamveren): Kayıtlı ilgi alanı gruplarına ve satıcıdan gelen sinyallere göre.
- Satıcı (STP veya yayıncı) tarafından cihaz üzerinde reklam seçimi: Açık artırma tekliflerine ve alıcılardan gelen meta verilere dayanır.
- Kısıtlanmış Çerçeveler'in geçici olarak rahat bir sürümünde reklam oluşturma: Reklam oluşturma için ağ erişimi ve günlük kaydına izin verilir.
API açıklayıcısı, özellik desteği ve kısıtlamalar hakkında daha fazla ayrıntı sağlar.
İlgi alanı grubu izinleri
Protected Audience'ın mevcut uygulamasında varsayılan olarak, alanlar arası iframe'ler de dahil olmak üzere sayfanın herhangi bir yerinden joinAdInterestGroup()
çağrılmasına izin verilir. Gelecekte, site sahipleri alanlar arası iframe izin politikalarını ayarladığında, açıklayıcının da belirttiği gibi alanlar arası iframe'lerden gelen çağrılara izin verilmemelidir.
Key/Value hizmeti
Protected Audience reklam açık artırmasının parçası olarak tarayıcı, reklam alıcısına kalan kampanya bütçesi gibi bilgileri sağlamak için basit anahtar/değer çiftleri döndüren bir anahtar/değer hizmetine erişebilir. Protected Audience teklifi, bu sunucunun "etkinlik düzeyinde günlük kaydı gerçekleştirmediğini ve bu isteklere dayalı başka yan etkisi olmadığını" zorunlu kılar.
Korunan Kitle Anahtarı/Değeri hizmet kodu artık Özel Korumalı Alan GitHub deposunda bulunabilir. Bu hizmet, Chrome ve Android geliştiricileri tarafından kullanılabilir. Durum güncellemesi için duyuru blog yayınına göz atın. Protected Audience Anahtar/Değer Hizmeti hakkında daha fazla bilgiye API açıklayıcısı ve güven modeli açıklayıcısı üzerinden ulaşabilirsiniz.
İlk test için "Kendi Sunucunuzu Getirin" modeli kullanılır. Uzun vadede, reklam teknolojilerinin gerçek zamanlı verileri almak için güvenilir yürütme ortamlarında çalışan açık kaynaklı Protected Audience Anahtar/Değer Hizmetleri hizmetlerini kullanması gerekecektir.
Ekosistemin test için yeterli zamana sahip olmasını sağlamak amacıyla, üçüncü taraf çerezleri için desteğin sonlandırılmasının sonrasına kadar açık kaynak Anahtar/Değer Çiftleri hizmetlerinin veya TEE'lerin kullanılmasını zorunlu tutmuyoruz. Geliştiricilerin, bu geçiş gerçekleşmeden önce test etmeye ve benimsemeye başlamaları için önemli bir bildirimde bulunacağız.
Özellik desteğini algıla
API'yi kullanmadan önce, API'nin tarayıcı tarafından desteklenip desteklenmediğini ve dokümanda mevcut olup olmadığını kontrol edin:
'joinAdInterestGroup' in navigator &&
document.featurePolicy.allowsFeature('join-ad-interest-group') &&
document.featurePolicy.allowsFeature('run-ad-auction') ?
console.log('navigator.joinAdInterestGroup() is supported on this page') :
console.log('navigator.joinAdInterestGroup() is not supported on this page');
Protected Audience'ı nasıl devre dışı bırakabilirim?
Protected Audience API'ye erişimi site sahibi veya bireysel kullanıcı olarak engelleyebilirsiniz.
Siteler erişimi nasıl kontrol edebilir?
Protected Audience işlevinin kullanılabilir olması için sitelerin bir izin politikası belirlemesini gerektirecektir. Bu, rastgele üçüncü tarafların bir sitenin bilgisi olmadan API'yi kullanamamasını sağlamaya yardımcı olur. Bununla birlikte, ilk kaynak denemesi sırasında testi kolaylaştırmak için bu koşul varsayılan olarak feragat edilir. Test dönemi boyunca Protected Audience işlevini açık bir şekilde devre dışı bırakmak isteyen siteler, erişimi engellemek için ilgili İzin Politikası'nı kullanabilir.
Bağımsız olarak ayarlanabilecek iki Protected Audience izin politikası vardır:
join-ad-interest-group
, ilgi alanı gruplarına tarayıcı ekleme işlevini etkinleştirir/devre dışı bırakırrun-ad-auction
, cihaz üzerinde açık artırma yapma işlevini etkinleştirir/devre dışı bırakır
Birinci taraf bağlamlarında Protected Audience API'lerine erişim, HTTP yanıt başlığında aşağıdaki izin politikası belirtilerek tamamen devre dışı bırakılabilir:
Permissions-Policy: join-ad-interest-group=(), run-ad-auction=()
Bir iframe öğesine aşağıdaki allow
özelliğini ekleyerek bir iframe'de API'lerin kullanımını devre dışı bırakabilirsiniz:
<iframe src="https://example.com" allow="join-ad-interest-group 'none'; run-ad-auction 'none'"></iframe>
Önerilen İlk Korunan Kitle Kaynak Deneme İzinleri-Politikası bölümünde daha fazla ayrıntı sağlanır.
Kullanıcı onayı isteme
Kullanıcılar, aşağıdaki mekanizmalardan birini kullanarak Protected Audience API ve diğer Özel Korumalı Alan özelliklerine erişimi engelleyebilir:
- Chrome Ayarları'nda Özel Korumalı Alan denemelerini devre dışı bırakın: Ayarlar >
Güvenlik ve gizlilik > Özel Korumalı Alan. Buna
chrome://settings/adPrivacy
adresinden de erişilebilir. - Chrome Ayarları'nda üçüncü taraf çerezlerini devre dışı bırakın: Ayarlar > Güvenlik ve gizlilik.
chrome://settings/cookies
alanında Çerezler ve diğer site verileri'ni "Üçüncü taraf çerezlerini engelle" veya "Tüm çerezleri engelle" olarak ayarlayın.- Gizli modu kullanın.
Protected Audience açıklayıcısı, API tasarım öğeleri hakkında daha fazla ayrıntı sağlar ve API'nin gizlilik hedeflerini nasıl karşılamak istediğini açıklar.
Korunan Kitle iş akışlarında hata ayıklama
Chrome Canary 98.0.4718.0 sürümünden, Chrome Geliştirici Araçları'ndaki Protected Audience iş akışlarında hata ayıklamak mümkündür.
İlk adım, Kaynaklar panelindeki Etkinlik İşleyici Ayrılma Noktaları bölmesinde yeni bir kategori aracılığıyla ayrılma noktalarını ayarlamaktır.
Bir ayrılma noktası tetiklendiğinde yürütme, iş uygulaması komut dosyasının en üst düzeyindeki ilk ifadeden önce duraklatılır. Teklif verme/puanlama/raporlama işlevinin kendisine gitmek için normal kesme noktalarını veya adım komutlarını kullanabilirsiniz.
Canlı iş akışı komut dosyaları da İleti dizileri panelinin altında gösterilir.
Bazı iş akışları paralel olarak çalışabileceğinden, birden fazla iş parçacığı burada "duraklatıldı" durumunda kalabilir. İleti dizileri arasında geçiş yapmak için ileti dizisi listesini kullanabilir ve bunları uygun bir şekilde devam ettirebilir veya daha yakından inceleyebilirsiniz.
Protected Audience etkinliklerini gözlemleme
Chrome Geliştirici Araçları'ndaki Uygulama panelinde, Protected Audience ilgi alanı grubunu ve açık artırma etkinliklerini gözlemleyebilirsiniz.
Protected Audience demo alışveriş sitesini Protected Audience'ın etkin olduğu bir tarayıcıda ziyaret ederseniz Geliştirici Araçları, join
etkinliğiyle ilgili bilgileri gösterir.
Artık Protected Audience'ın etkin olduğu bir tarayıcıda Protected Audience demo yayıncı sitesini ziyaret ederseniz Geliştirici Araçları bid
ve win
etkinlikleriyle ilgili bilgileri gösterir.
Protected Audience API nasıl çalışır?
Bu örnekte, bir kullanıcı özel bir bisiklet üreticisinin web sitesine göz atıyor, daha sonra bir haber web sitesini ziyaret ediyor ve o bisiklet üreticisine ait yeni bir bisikletin reklamını görüyor.
1. Kullanıcı bir reklamveren sitesini ziyaret eder
Bir kullanıcının özel bir bisiklet üreticisinin (bu örnekte reklamveren) web sitesini ziyaret ettiğini ve el yapımı çelik bir bisikletin ürün sayfasında biraz zaman geçirdiğini düşünün. Bu, bisiklet üreticisine yeniden pazarlama fırsatı sağlar.
2. Kullanıcının tarayıcısından bir ilgi alanı grubu eklemesi istenir
Açıklayıcı bölümü: Tarayıcılar İlgi Alanı Gruplarını Kaydı
Reklamverenin talep tarafı platformu (TTP) (veya reklamverenin kendisi), tarayıcının üyesi olduğu gruplar listesine bir ilgi alanı grubu eklemesini istemek için navigator.joinAdInterestGroup()
yöntemini çağırır. Bu örnekte, grup custom-bikes
, sahibi ise dsp.example
olarak adlandırılmıştır. İlgi alanı grubu sahibi (bu durumda TTP), 4. adımda açıklanan reklam açık artırmasında bir alıcı olur.
İlgi alanı grubu üyeliği tarayıcı tarafından ve kullanıcının cihazında depolanır ve tarayıcının sağlayıcısıyla ya da başka biriyle paylaşılmaz.
joinAdInterestGroup()
, şu kişilerden izin gerektiriyor:
- Ziyaret edilen site
- İlgi alanı grubu sahibi
Örneğin: malicious.example
, dsp.example
izni olmadan sahip olarak dsp.example
ile joinAdInterestGroup()
yöntemini çağıramaz.
Ziyaret edilen sitenin izni
Aynı kaynak: Varsayılan olarak, ziyaret edilen siteyle aynı kaynaktan (ör. geçerli sayfanın üst düzey çerçevesiyle aynı kaynaktan) gelen joinAdInterestGroup()
çağrıları için dolaylı olarak izin verilir. Siteler, joinAdInterestGroup()
çağrılarını devre dışı bırakmak için Protected Audience izin politikası başlığı
join-ad-interest-group
yönergesini kullanabilir.
Kaynaklar arası: Geçerli sayfadan farklı kaynaklardan joinAdInterestGroup()
çağrılması yalnızca ziyaret edilen site, çapraz kaynak iframe'lerden joinAdInterestGroup()
çağrısına izin veren bir izin politikası ayarlamışsa başarılı olabilir.
İlgi alanı grubu sahibinden izin
İlgi alanı grubu sahibi izni, ilgi alanı grubunun sahibiyle aynı kaynağa sahip bir iframe'den joinAdInterestGroup()
çağrısı yapılarak dolaylı olarak verilir. Örneğin bir dsp.example
iframe, sahibi dsp.example
olan ilgi alanı grupları için joinAdInterestGroup()
öğesini çağırabilir.
Teklife göre joinAdInterestGroup()
, sahibin alanındaki bir sayfada veya iframe'de çalıştırılabilir ya da .well-known
URL'sindeki bir liste kullanılarak sağlanan diğer alanlara yetki verilebilir.
navigator.joinAdinterestGroup() yöntemini kullanma
Aşağıda, API'nin nasıl kullanılabileceğine dair bir örnek verilmiştir:
const interestGroup = {
owner: 'https://dsp.example',
name: 'custom-bikes',
biddingLogicUrl: ...,
biddingWasmHelperUrl: ...,
dailyUpdateUrl: ...,
trustedBiddingSignalsUrl: ...,
trustedBiddingSignalsKeys: ['key1', 'key2'],
userBiddingSignals: {...},
ads: [bikeAd1, bikeAd2, bikeAd3],
adComponents: [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2],
};
navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);
İşleve iletilen interestGroup
nesnesinin boyutu 50 kiB'tan büyük olmamalıdır. Aksi takdirde çağrı başarısız olur. İkinci parametre, ilgi alanı grubunun 30 günle sınırlı süresini belirtir. Art arda yapılan çağrılar, daha önce depolanan değerlerin üzerine yazılır.
İlgi grubu özellikleri
Özellik | Gerekli | Örnek | Rol |
---|---|---|---|
owner |
Gerekli | 'https://dsp.example' |
İlgi alanı grubu sahibinin kaynağı. |
name |
Gerekli | 'custom-bikes' |
İlgi grubunun adı. |
biddingLogicUrl ** |
İsteğe bağlı* | 'https://dsp.example/bid/custom-bikes/bid.js' |
İş akışında çalışan teklif JavaScript'i için URL. |
biddingWasmHelperUrl ** |
İsteğe bağlı* | 'https://dsp.example/bid/custom-bikes/bid.wasm' |
biddingLogicUrl kaynağından alınan WebAssembly kodunun URL'si. |
dailyUpdateUrl ** |
İsteğe bağlı | 'https://dsp.example/bid/custom-bikes/update' |
İlgi alanı grubu özelliklerini güncellemek için JSON değerini döndüren URL. (İlgi alanı grubunu güncelleme başlıklı makaleyi inceleyin.) |
trustedBiddingSignalsUrl ** |
İsteğe bağlı | 'https://dsp.example/trusted/bidding-signals' |
Teklif verenin güvenilir sunucusuna yapılan anahtar/değer çifti istekleri için temel URL. |
trustedBiddingSignalsKeys |
İsteğe bağlı | ['key1', 'key2' ...] |
Anahtar/değer güvenilir sunucusu isteklerinin anahtarları. |
userBiddingSignals |
İsteğe bağlı | {...} |
İçerik sahibinin teklif verirken kullanabileceği ek meta veriler. |
ads |
İsteğe bağlı* | [bikeAd1, bikeAd2, bikeAd3] |
Bu ilgi alanı grubu için oluşturulabilecek reklamlar. |
adComponents |
İsteğe bağlı | [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2] |
Birden çok parçadan oluşan reklamlara yönelik bileşenler. |
* owner
ve name
dışındaki tüm mülkler isteğe bağlıdır. biddingLogicUrl
ve ads
mülkleri isteğe bağlı olsa da açık artırmaya katılabilmek için zorunludur. Bu özelliklerin bulunmadığı bir ilgi alanı grubu oluşturmanın kullanım alanları olabilir. Örneğin, bir ilgi alanı grubu sahibi, henüz yayınlanmayan bir kampanya için veya ileride başka kullanımlar için bir ilgi alanı grubuna tarayıcı eklemek isteyebilir ya da geçici olarak reklam bütçesi tükenmiş olabilir.
** biddingLogicUrl
, biddingWasmHelperUrl
, dailyUpdateUrl
ve trustedBiddingSignalsUrl
URL'leri sahip ile aynı kaynağa sahip olmalıdır. ads
ve adComponents
URL'lerinde böyle bir kısıtlama yoktur.
İlgi alanı grubu özelliklerini güncelleme
dailyUpdateUrl
, navigator.joinAdInterestGroup()
hizmetine iletilen ilgi alanı grubu nesnesine karşılık gelen JSON tanımlayıcı ilgi alanı grubu özelliklerini döndüren bir web sunucusu belirtir. Bu, grup sahibinin, ilgi alanı grubunun özelliklerini düzenli olarak güncellemesi için bir mekanizma sağlar. Mevcut uygulamada, aşağıdaki özellikler değiştirilebilir:
biddingLogicUrl
biddingWasmHelperUrl
trustedBiddingSignalsUrl
trustedBiddingSignalsKeys
ads
priority
JSON'da belirtilmeyen hiçbir alanın üzerine yazılmaz. Yalnızca JSON'da belirtilen alanlar güncellenir. Buna karşılık, navigator.joinAdInterestGroup()
çağrısı, mevcut herhangi bir ilgi alanı grubunun üzerine yazılır.
Güncellemeler en iyi sonucu verir ve aşağıdaki koşullarda başarısız olabilir:
- Ağ isteği zaman aşımı (şu anda 30 saniye).
- Diğer ağ hatası.
- JSON ayrıştırma hatası.
Ayrıca, güncelleme için çok fazla kesintisiz zaman harcanırsa güncellemeler de iptal edilebilir. Ancak bu, iptal edilen (kalan) güncellemelere hız sınırlaması uygulamaz. Güncellemeler günde en fazla bir defa hızla sınırlandırılır. Ağ hataları nedeniyle başarısız olan güncellemeler bir saat sonra yeniden denenir ve internet bağlantısı kesildiğinden dolayı başarısız olan güncellemeler, yeniden bağlandığınızda hemen yeniden denenir.
El ile güncellemeler
Mevcut karenin kaynağına ait ilgi alanı grupları için yapılan güncellemeler, navigator.updateAdInterestGroups()
aracılığıyla manuel olarak tetiklenebilir. Hız sınırlandırma, güncellemelerin çok sık yapılmasını önler: navigator.updateAdInterestGroups()
için tekrarlanan çağrılar, hız sınırı dönemi (şu anda bir gün) geçene kadar hiçbir şey yapmaz. navigator.joinAdInterestGroup()
, aynı ilgi alanı grubu owner
ve name
için tekrar çağrılırsa oran sınırı sıfırlanır.
Otomatik güncellemeler
Açık artırma için yüklenen tüm ilgi alanı grupları, açık artırma tamamlandıktan sonra otomatik olarak güncellenir ve manuel güncellemelerle aynı oran sınırları uygulanır. Açık artırmaya en az bir ilgi alanı grubuna katılan her sahip için navigator.updateAdInterestGroups()
, kaynağı bu sahiple eşleşen bir iframe'den çağrılır.
Bir ilgi alanı grubuna ilişkin reklamları belirtme
ads
ve adComponents
nesneleri, bir reklam öğesinin URL'sini ve isteğe bağlı olarak teklif verme sırasında kullanılabilecek rastgele meta verileri içerir. Örneğin:
{
renderUrl: 'https://cdn.example/.../bikeAd1.html',
metadata: bikeAd1metadata // optional
}
Alıcılar nasıl teklif verir?
İlgi alanı grubu sahibi tarafından sağlanan biddingLogicUrl
adresindeki komut dosyası, generateBid()
işlevi içermelidir. Bir reklam alanı satıcısı navigator.runAdAuction()
özelliğini çağırdığında generatedBid()
işlevi, ilgi alanı grubunun sahibi teklif vermeye davet edilirse tarayıcının üyesi olduğu ilgi alanı gruplarının her biri için bir kez çağrılır. Diğer bir deyişle generateBid()
, her aday reklam için bir kez çağrılır. Satıcı, navigator.runAdAuction()
ürününe iletilen açık artırma yapılandırma parametresinde bir decisionLogicUrl
özelliği sağlıyor. Bu URL'deki kod, generateBid()
tarafından döndürülen tekliflerin her birini puanlamak amacıyla açık artırmadaki her teklif veren için çalıştırılan bir scoreAd()
işlevi içermelidir.
Reklam alanı alıcısı tarafından sağlanan biddingLogicUrl
adresindeki komut dosyası, generateBid()
işlevi içermelidir.
Bu işlev, her aday reklam için bir kez çağrılır. runAdAuction()
her bir reklamı, ilişkili teklifi ve meta verileriyle birlikte tek tek kontrol eder ve ardından reklama sayısal bir istenenlik puanı atar.
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
...
return {
ad: adObject,
bid: bidValue,
render: renderUrl,
adComponents: [adComponentRenderUrl1, ...]
};
}
generateBid()
, şu bağımsız değişkenleri alır:
interestGroup
Reklam alıcısı tarafındanjoinAdInterestGroup()
hizmetine iletilen nesne. (İlgi alanı grubu,dailyUpdateUrl
üzerinden güncellenebilir.)auctionSignals
Reklam alanı satıcısı tarafındannavigator.runAdAuction()
hizmetine iletilen açık artırma yapılandırması bağımsız değişkeninin özelliği. Bu, sayfa bağlamı (reklam boyutu ve yayıncı kimliği gibi), açık artırma türü (ilk fiyat veya ikinci fiyat) ve diğer meta veriler hakkında bilgi sağlar.perBuyerSignals
auctionSignals
ürününde olduğu gibi, satıcı tarafındannavigator.runAdAuction()
öğesine iletilen açık artırma yapılandırması bağımsız değişkeninin bir özelliği. Satıcı, alıcı sunucularına gerçek zamanlı teklif çağrısı yapan ve yanıtı yanıt veren bir STP ise ya da yayıncı sayfası doğrudan alıcının sunucusuyla iletişim kuruyorsa, alıcının sunucusundan sayfayla ilgili bağlamsal sinyaller sağlayabilir. Böyle bir durum söz konusuysa alıcı, değişikliğe karşı koruma olarak generateBid() içindeki sinyallerin kriptografik bir imzasını kontrol etmek isteyebilir.trustedBiddingSignals
Anahtarları, ilgi alanı grubu içintrustedBiddingSignalsKeys
olan ve değerleri,trustedBiddingSignals
isteğinde döndürülen bir nesne.browserSignals
Tarayıcı tarafından oluşturulmuş bir nesne. Bu nesne, sayfa bağlamı hakkında bilgi (satıcının başka bir şekilde taklit edebileceği geçerli sayfanınhostname
kodu gibi) ve ilgi alanı grubuna ait verileri (ör. cihaz üzerinde sıklık sınırına izin vermek için grubun daha önce açık artırmayı ne zaman kazandığının kaydı) içerebilir.
browserSignals
nesnesi aşağıdaki özelliklere sahiptir:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
joinCount: 3,
bidCount: 17,
prevWins: [[time1,ad1],[time2,ad2],...],
wasmHelper: ... /* WebAssembly.Module object based on interest group's biddingWasmHelperUrl. */
dataVersion: 1, /* Data-Version value from the buyer's Key/Value service response(s). */
}
generateBid()
içindeki kod, bid
değerini hesaplamak için işlev parametrelerinin özelliklerini kullanabilir. Örneğin:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
...
}
}
generateBid()
, dört özelliği olan bir nesne döndürür:
ad
Reklamla ilgili rastgele meta veriler (ör. satıcının bu teklif veya reklam öğesi hakkında öğrenmeyi beklediği bilgiler). Satıcı](/privacy-sandbox/resources/glossary#ssp) açık artırmada ve karar verici reklam öğesinde bu bilgileri kullanır. Satıcı, açık artırma ve karar mantığında bu bilgileri kullanır.bid
Açık artırmaya girecek sayısal bir teklif. Satıcı, farklı alıcıların tekliflerini karşılaştırabilecek bir konumda olmalıdır.Bu nedenle, teklifler satıcı tarafından seçilen bir birimde olmalıdır (ör. "Bin başına ABD doları"). Teklif sıfır veya negatif ise bu ilgi alanı grubu, satıcının açık artırmasına hiç katılmaz. Bu mekanizma sayesinde alıcı, reklamlarının görüntülenip görünmeyeceğini belirleyen reklamveren kurallarını uygulayabilir.render
Bu teklifin açık artırmayı kazanması durumunda reklam öğesini oluşturmak için kullanılacak URL veya URL listesi. (API açıklayıcıda Birden Çok Parçadan Oluşan Reklamlar konusuna bakın.) Değerin, ilgi alanı grubu için tanımlanan reklamlardan birininrenderUrl
ile eşleşmesi gerekir.adComponents
Birden fazla parçadan oluşan reklamlar için en fazla 20 bileşen içeren isteğe bağlı bir liste. Bu liste, ilgi alanı grubu bağımsız değişkenininadComponents
mülkündennavigator.joinAdInterestGroup()
adresine iletildi.
Tarayıcıdan bir ilgi alanı grubundan ayrılmasını isteme
İlgi alanı grubu sahibi, tarayıcının bir ilgi alanı grubundan kaldırılmasını isteyebilir. Başka bir deyişle, tarayıcıdan ilgi alanı grubunu üyesi olduğu gruplar listesinden kaldırması istenir.
navigator.leaveAdInterestGroup({
owner: 'https://dsp.example',
name: 'custom-bikes'
});
Kullanıcı, tarayıcıdan bir ilgi alanı grubu eklemesini isteyen siteye dönerse ilgi alanı grubu sahibi, tarayıcının ilgi alanı grubunu kaldırmasını istemek için navigator.leaveAdInterestGroup()
işlevini çağırabilir.
Bir reklamın kodu, bu işlevi ilgi alanı grubu için de çağırabilir.
3. Kullanıcı, reklam alanı satan bir siteyi ziyaret eder
Daha sonra, kullanıcı reklam alanı satan bir siteyi (bu örnekte bir haber web sitesi) ziyaret eder. Sitede, gerçek zamanlı teklif verme aracılığıyla programatik olarak sattığı reklam envanteri vardır.
4. Tarayıcıda bir reklam açık artırması yapılır
Açıklayıcı bölümü: Cihaz Üzerinde Açık Artırma Gerçekleştiren Satıcılar
Reklam açık artırması, büyük olasılıkla yayıncının STP'si veya yayıncının kendisi tarafından yürütülebilir. Açık artırmanın amacı, geçerli sayfadaki tek bir reklam alanı için en uygun reklamı seçmektir. Açık artırma, tarayıcının üyesi olduğu ilgi alanı gruplarının yanı sıra Anahtar/Değer hizmetlerinden gelen reklam alanı alıcılarına ve satıcılarına ait verileri de dikkate alır.
Reklam alanı satıcısı, navigator.runAdAuction()
numaralı telefonu çağırarak kullanıcının tarayıcısına reklam açık artırması başlatmak için istek gönderir.
Örneğin:
const auctionConfig = {
seller: 'https://ssp.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://dsp.example': {...},
'https://another-buyer.example': {...},
...
},
perBuyerTimeouts: {
'https://dsp.example': 50,
'https://another-buyer.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://some-other-ssp.example',
'decisionLogicUrl': ...,
...
},
...
]
};
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
runAdAuction()
, reklam açık artırmasının sonucunu temsil eden URN (urn:uuid:<something>
) değerine dönüşen bir taahhüt döndürür. Bu kod, oluşturma için çitli çerçeveye geçirildiğinde yalnızca tarayıcı tarafından çözülebilir: Yayıncı sayfası kazanan reklamı inceleyemez.
decisionLogicUrl
komut dosyası, her bir reklamı, ilişkili teklifi ve meta verileriyle birlikte tek tek dikkate alır ve reklama sayısal bir istenen puan puanı atar.
auctionConfig
tesis
Özellik | Gerekli | Örnek | Rol |
---|---|---|---|
seller |
Gerekli | 'https://ssp.example' |
Satıcının kökeni. |
decisionLogicUrl |
Gerekli | 'https://ssp.example/auction-decision-logic.js' |
Açık artırma iş akışı JavaScript'inin URL'si. |
trustedScoringSignalsUrl |
İsteğe bağlı | 'https://ssp.example/scoring-signals' |
Satıcının güvenilir sunucusunun URL'si. |
interestGroupBuyers* |
Gerekli | ['https://dsp.example', 'https://buyer2.example', ...] |
Açık artırmada teklif vermek isteyen tüm ilgi alanı grubu sahiplerinin kaynakları. |
auctionSignals |
İsteğe bağlı | {...} |
Sayfa bağlamı, açık artırma türü vb. hakkında satıcı bilgileri |
sellerSignals |
İsteğe bağlı | {...} |
Yayıncı ayarlarına dayalı bilgiler, içeriğe dayalı reklam isteğinde bulunma vb. |
sellerTimeout |
İsteğe bağlı | 100 |
Satıcının scoreAd() komut dosyasının maksimum çalışma zamanı (ms). |
perBuyerSignals |
İsteğe bağlı | {'https://dsp.example': {...}, |
Her bir alıcının sunucusundaki sayfayla ilgili bağlamsal sinyaller. |
perBuyerTimeouts |
İsteğe bağlı | 50 |
Belirli alıcının generateBid() komut dosyalarının maksimum çalışma zamanı (ms). |
componentAuctions |
İsteğe bağlı | [{'seller': 'https://www.some-other-ssp.com', |
Bileşen açık artırmaları için ek yapılandırmalar. |
* Satıcı, tüm ilgi alanı gruplarının teklif vermesine izin vermek için interestGroupBuyers: '*'
değerini belirtebilir.
Reklamlar, daha sonra ilgi alanı grubu sahibinin dahil edilmesi dışındaki ölçütlere göre kabul edilir veya reddedilir.
Örneğin, satıcı kendi politikalarına uygun olduğunu onaylamak için reklam öğelerini inceleyebilir.
** additionalBids
, mevcut Protected Audience uygulamasında desteklenmemektedir. Daha fazla bilgi için Protected Audience açıklamasındaki Açık Artırma Katılımcıları bölümünü okuyun.
Reklamlar nasıl seçilir?
decisionLogicUrl
adresindeki kod (runAdAuction()
öğesine geçirilen açık artırma yapılandırma nesnesinin mülkü) scoreAd()
işlevi içermelidir. Bu sorgu, istenilebilir olup olmadığını belirlemek
için her reklam için bir kez çalıştırılır.
scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
...
return desirabilityScoreForThisAd;
}
scoreAd()
, şu bağımsız değişkenleri alır:
adMetadata
Alıcı tarafından sağlanan rastgele meta veriler.bid
Sayısal teklif değeridir.auctionConfig
navigator.runAdAuction()
için iletilen açık artırma yapılandırma nesnesi.trustedScoringSignals
Açık artırma anında satıcının güvenilir sunucusundan alınan ve satıcının reklamla ilgili görüşünü temsil eden değerler.browserSignals
Tarayıcının bildiği ve satıcının açık artırma komut dosyasının doğrulamak isteyebileceği bilgiler de dahil olmak üzere, tarayıcı tarafından oluşturulan bir nesne:
{
topWindowHostname: 'publisher.example',
interestGroupOwner: 'https://dsp.example',
renderUrl: 'https://cdn.example/render',
adComponents: ['https://cdn.com/ad-component-1', ...],
biddingDurationMsec: 12,
dataVersion: 1 /* Data-Version value from the seller's Key/Value service response. */
}
Açık artırma başlamadan önce satıcı, mevcut reklam alanı için en uygun içeriğe dayalı reklamı bulur. scoreAd()
mantığının bir parçası da içeriğe dayalı kazananı geçemeyen reklamları reddetmektir.
5. Satıcı ve katılımcı alıcılar, Anahtar/Değer Hizmetinden gerçek zamanlı veriler alır
Açıklayıcı bölümü: Korunan Kitle Anahtar/Değer Hizmeti hizmetinden gerçek zamanlı veriler alma.
Bir reklam açık artırması sırasında reklam alanı satıcısı, navigator.runAdAuction()
adresine iletilen açık artırma yapılandırması bağımsız değişkeninin trustedScoringSignalsUrl
özelliğini kullanarak bir Anahtar/Değer hizmetine istek göndererek ve açık artırmadaki tüm ilgi alanı gruplarının ads
ve adComponents
alanlarındaki tüm girişlerin renderUrl
mülklerindeki anahtarlarla birlikte belirli reklam öğeleriyle ilgili gerçek zamanlı veriler alabilir.
Benzer şekilde, bir reklam alanı alıcısı, navigator.joinAdInterestGroup()
öğesine iletilen ilgi alanı grubu bağımsız değişkeninin trustedBiddingSignalsUrl
ve trustedBiddingSignalsKeys
özelliklerini kullanarak Anahtar/Değer hizmetinden gerçek zamanlı veriler isteyebilir.
runAdAuction()
çağrıldığında, tarayıcı her bir reklam alıcısının güvenilir sunucusuna bir istek gönderir. İsteğin URL'si şu şekilde görünebilir:
https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
- Temel URL,
trustedBiddingSignalsUrl
kaynağından gelir. hostname
, tarayıcı tarafından sağlanır.keys
değeri,trustedBiddingSignalsKeys
parametresinden alınır.
Bu isteğin yanıtı, her anahtar için değer sağlayan bir JSON nesnesidir.
6. Kazanan reklam gösterilir
Açıklayıcı bölümü: Tarayıcılar Kazanan Reklamı Oluşturma
Daha önce de açıklandığı gibi: runAdAuction()
tarafından döndürülen söz, URN'ye çözümlenir. Bu durum, oluşturma için çizili çerçeveye iletilir ve site, kazanan reklamı gösterir.
7. Açık artırma sonucu raporlanır
Açıklayıcı bölümü: Etkinlik Düzeyinde Raporlama (şimdilik)
Satıcı rapor sonucu
Açıklayıcı bölümü: Oluşturmayla İlgili Satıcı Raporlaması
Satıcının decisionLogicUrl
adresinde sağlanan JavaScript'i (aynı zamanda scoreAd()
sağladı) açık artırma sonucunu bildirmek için bir reportResult()
işlevi içerebilir.
reportResult(auctionConfig, browserSignals) {
...
return signalsForWinner;
}
Bu işleve iletilen bağımsız değişkenler şunlardır:
auctionConfig
navigator.runAdAuction()
için iletilen açık artırma yapılandırma nesnesi.browserSignals
Tarayıcı tarafından oluşturulan ve açık artırma hakkında bilgi sağlayan bir nesne. Örneğin:{ 'topWindowHostname': 'publisher.example', 'interestGroupOwner': 'https://dsp.example', 'renderUrl': 'https://cdn.example/url-of-winning-creative.wbn', 'bid:' <bidValue>, 'desirability': <winningAdScore> }
Bu işlevin döndürülen değeri, kazanan teklif verenin reportWin()
işlevi için sellerSignals
bağımsız değişkeni olarak kullanılır.
Kazanan teklif veren raporu sonucu
Açıklayıcı bölümü: Oluşturma ve Reklam Etkinlikleriyle İlgili Alıcı Raporları
Kazanan teklif verenin JavaScript'i (generateBid()
değerini de sağladı), açık artırma sonucunu bildirmek için reportWin()
işlevi içerebilir.
reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals) {
...
}
Bu işleve iletilen bağımsız değişkenler şunlardır:
auctionSignals
veperBuyerSignals
Kazanan teklif veren içingenerateBid()
reklam grubuna aynı değerler iletildi.sellerSignals
Satıcıya bilgileri alıcıya iletme fırsatı sunanreportResult()
ürününün döndürülen değeri.browserSignals
Tarayıcı tarafından oluşturulan ve açık artırma hakkında bilgi veren bir nesne. Örneğin:{ 'topWindowHostname': 'publisher.example', 'seller': 'https://ssp.example', 'interestGroupOwner': 'https://dsp.example', 'interestGroupName': 'custom-bikes', 'renderUrl': 'https://cdn.example/winning-creative.wbn', 'bid:' <bidValue> }
Geçici kayıp/kazanç raporlama uygulaması
Chrome'da açık artırma raporlaması için geçici olarak kullanılabilen iki yöntem vardır:
forDebuggingOnly.reportAdAuctionLoss()
forDebuggingOnly.reportAdAuctionWin()
Bu yöntemlerin her biri tek bir bağımsız değişken, yani açık artırma tamamlandıktan sonra getirilecek bir URL alır. Bunlar hem scoreAd()
hem de generateBid()
için farklı URL bağımsız değişkenleriyle birden çok kez çağrılabilir.
Chrome, yalnızca bir açık artırma tamamlanıncaya kadar hata ayıklama kayıp/kazanma raporları gönderir. Açık artırma iptal edilirse (örneğin, yeni gezinme nedeniyle) rapor oluşturulmaz.
Bu yöntemler Chrome'da varsayılan olarak kullanılabilir. Yöntemleri test edebilmek için chrome://settings/adPrivacy
altındaki tüm Reklam gizliliği API'lerini etkinleştirin. Protected Audience'ı etkinleştirmek için Chrome'u komut satırı işaretleriyle çalıştırıyorsanız BiddingAndScoringDebugReportingAPI
işaretini ekleyerek yöntemleri açıkça etkinleştirmeniz gerekir. İşaretleme etkinleştirilmezse yöntemler kullanılabilir durumda kalır ancak hiçbir şey yapmaz.
8. Bir reklam tıklaması raporlanır
Çitli çerçevede oluşturulan bir reklamın tıklanması raporlanır. Bunun nasıl olabileceği hakkında daha fazla bilgi edinmek için Kısıtlanmış Çerçevelerle Reklam Raporu'na bakın.
Aşağıdaki şemada, Protected Audience reklam açık artırmasının her bir aşaması özetlenmektedir:
Protected Audience ile TURTLEDOVE arasındaki fark nedir?
Protected Audience, TURTLEDOVE teklif ailesi içinde Chromium'da uygulanan ilk denemedir.
Protected Audience, TURTLEDOVE'un üst düzey ilkelerine uyar. Bazı çevrimiçi reklamcılık faaliyetleri, bir reklamın, daha önce reklamverenle veya reklam ağıyla etkileşimde bulunmuş, potansiyel olarak ilgili kişilere gösterilmesini temel almaktadır. Geçmişte bu özellik, günümüzün web dünyasının temel gizlilik sorunu olan web sitelerinde gezinen belirli bir kişiyi tanımak için reklamverenler tarafından işe yaramıştır.
TURTLEDOVE'un çalışmaları, bu kullanım alanına yönelik yeni bir API sunarken gizlilikle ilgili bazı önemli gelişmeler de sunuyor:
- Reklamverenin, bir kullanıcının ilgilendiğini düşündüğü şeylerle ilgili bilgiler reklamveren değil, tarayıcı tarafından tutulur.
- Reklamverenler bir ilgi alanına dayalı reklamlar yayınlayabilir, ancak bu ilgi alanını bir kişiyle ilgili diğer bilgilerle, özellikle de o kişinin kim olduğu veya hangi sayfayı ziyaret ettiğiyle birleştiremez.
Protected Audience, API'yi kullanacak geliştiricilere daha iyi hizmet sunmak için TURTLEDOVE'un yanı sıra ilgili teklifler koleksiyonundan geliştirildi:
- SPARROW'da: Criteo, güvenilir yürütme ortamında (TEE) çalışan bir ("Gatekeeper") hizmet modelinin eklenmesini önerdi. Protected Audience, gerçek zamanlı veri araması ve toplu raporlama için TEE'lerin daha sınırlı bir şekilde kullanımını içerir.
- NextRoll'un TERN ve Magnite'ın PARRROT teklifleri, alıcıların ve satıcıların cihaz üzerinde açık artırmadaki farklı rollerini açıkladı. Protected Audience'ın reklam teklifi/puanlama akışı bu çalışmaya göre belirlenir.
- RTB House Sonuca dayalı ve Ürün düzeyinde TURTLEDOVE değişiklikleri, cihaz üzerinde açık artırmanın anonimlik modelini ve kişiselleştirme özelliklerini iyileştirdi.
- PARAKEET, reklam isteklerini anonimleştirmek ve gizlilik özelliklerini uygulamak için Microsoft'un, tarayıcı ile reklam teknolojisi sağlayıcıları arasında bir TEE'de çalışan proxy sunucusuna dayanan TURTLEDOVE benzeri bir reklam hizmetine yönelik teklifidir. Protected Audience, bu proxy modelini benimsemedi. PARAKEET ve Protected Audience için JavaScript API'lerini, her iki teklifin en iyi özelliklerini daha da birleştirmeye yönelik gelecekteki çalışmaları desteklemek üzere uyumlu hâle getiriyoruz.
Protected Audience henüz bir web sitesinin reklam ağının kullanıcının hangi reklamları gördüğünü öğrenmesini engellemez. API'yi zaman içinde daha gizli hale gelecek şekilde değiştirmeyi planlıyoruz.
Hangi tarayıcı yapılandırması kullanılabilir?
Kullanıcılar, chrome://settings/adPrivacy
ürününde üst düzey ayarı etkinleştirerek veya devre dışı bırakarak Chrome'daki Özel Korumalı Alan denemelerine katılımlarını ayarlayabilirler. İlk test sırasında kullanıcılar, Protected Audience'ı devre dışı bırakmak için bu üst düzey Özel Korumalı Alan ayarını kullanabilir. Chrome, kullanıcıların ziyaret ettikleri web sitelerinde eklendikleri ilgi alanı gruplarının listesini görmesine ve yönetmesine izin vermeyi planlamaktadır. Özel Korumalı Alan teknolojilerinin kendisinde olduğu gibi, kullanıcı ayarları da kullanıcılardan, düzenleyici kurumlardan ve diğer kullanıcılardan gelen geri bildirimlerle değişebilir.
Protected Audience teklifi ilerledikçe testlere ve geri bildirimlere dayanarak Chrome'da kullanılabilen ayarları güncellemeye devam edeceğiz. Gelecekte Protected Audience'ı ve ilişkili verileri yönetmek için daha ayrıntılı ayarlar sunmayı planlıyoruz.
API arayanları, kullanıcılar Gizli modda gezinirken grup üyeliğine erişemez ve kullanıcılar site verilerini temizlediğinde üyelik kaldırılır.
Etkileşimde bulunun ve geri bildirim paylaşın
- GitHub: Teklifi okuyun, soruları sorun ve tartışmayı takip edin.
- W3C: Web Reklamcılığını Geliştirme Grubu'nda sektördeki kullanım alanlarını tartışın.
- Geliştirici desteği: Özel Korumalı Alan Geliştirici Desteği deposunda sorular sorun ve tartışmalara katılın.
- FLEDGE posta listesi: fledge-api-announce API ile ilgili duyurular ve güncellemeler sağlar.
- Protected Audience için planlanmış görüşmelere katılın (her iki haftada bir). Herkes katılabilir. Önce WICG'ye katıldığınızdan emin olun. Aktif olarak katılabilir veya sadece dinleyebilirsiniz.
- Geri bildiriminizi herkese açık forumlar dışında Chrome ekibiyle gizli olarak paylaşmak için Özel Korumalı Alan geri bildirim formunu kullanın.
Destek alın
Uygulamanız, demo hakkında veya belgeler hakkında soru sormak için:
- Özel korumalı alan-dev-destek deposunda yeni bir sorun açın. Protected Audience için sorun şablonunu seçtiğinizden emin olun.
- GitHub'daki demo kodu deposunda bir sorun bildirin.
- API ile kullanım alanlarınızı nasıl karşılayacağınız hakkında daha genel sorular için teklif deposunda sorun bildirin.
Chrome'da Protected Audience API uygulamayla ilgili hatalar ve sorunlar için: * API için bildirilen mevcut sorunları görüntüleyin. * crbug.com/new adresinde yeni bir sorun bildirin.
Güncellemeleri al
- API'deki durum değişikliklerinden haberdar olmak için geliştiricilere yönelik posta listesine katılın.
- API'de devam eden tüm tartışmaları yakından takip etmek için GitHub'daki teklif sayfasında İzle düğmesini tıklayın. Bunun için bir GitHub hesabınızın olması veya bir GitHub hesabı oluşturmanız gerekir.
- Özel Korumalı Alan hakkında genel güncellemeler almak için [Privacy Sandbox'taki ilerleme durumu] RSS özet akışına abone olun.
Daha fazla bilgi
- Protected Audience API: Teklife daha az teknik genel bakış.
- Protected Audience demosu: Temel Protected Audience dağıtımının adım adım açıklamalı kılavuzu.
- Protected Audience demo videosunda: Demo kodu açıklanır ve Protected Audience hata ayıklaması için Chrome Geliştirici Araçları'nın nasıl kullanılacağı gösterilir.
- Protected Audience API teknik açıklaması
- Özel Korumalı Alan hakkında ayrıntılı bilgi
- Prototip oluşturma amacı
Fotoğraf: Ray Hennessy tarafından Unsplash'te yayınlandı.