Bu belge, Shared Storage ve Private Aggregation'ı kullanmaya başlamak için hızlı başlangıç kılavuzudur. Shared Storage değerleri sakladığı, Private Aggregation ise toplu raporlar oluşturduğu için her iki API'yi de anlamanız gerekir.
Hedef kitle: Reklam teknolojisi ve ölçüm sağlayıcılar.
Shared Storage API
Tarayıcılar, siteler arası izlemeyi önlemek için yerel depolama alanı ve çerezler de dahil olmak üzere tüm depolama biçimlerini bölümlendirmeye başladı. Ancak, bölüm oluşturulmamış depolama alanının gerekli olduğu kullanım alanları vardır. Shared Storage API, gizliliği korumaya yönelik okuma erişiminin yanı sıra farklı üst düzey sitelerde sınırsız yazma erişimi sağlar.
Paylaşılan depolama alanı, bağlam kaynağıyla (sharedStorage işlevini çağıran) sınırlıdır.
Paylaşılan depolama alanında kaynak başına kapasite sınırı vardır ve her giriş, maksimum karakter sayısıyla sınırlıdır. Sınıra ulaşıldığında başka girişler depolanmaz. Veri depolama alanı sınırları, Paylaşılan Depolama Alanı açıklayıcı belgesinde belirtilmiştir.
Shared Storage'ı çağırma
Reklam teknolojileri, JavaScript veya bir yanıt başlığı kullanarak Shared Storage'a yazabilir. Ortak Depolama'dan okuma işlemi yalnızca iş akışı adı verilen yalıtılmış bir JavaScript ortamında gerçekleşir.
JavaScript kullanma Reklam teknolojisi sağlayıcılar, JavaScript işleti dışındaki değerleri ayarlama, ekleme ve silme gibi belirli Shared Storage işlevlerini gerçekleştirebilir. Ancak Shared Storage'ı okuma ve Private Aggregation gerçekleştirme gibi işlevlerin bir JavaScript worklet'i aracılığıyla tamamlanması gerekir. JavaScript işleti dışında kullanılabilen yöntemleri Proposed API Surface - Outside the worklet (Önerilen API Yüzeyi - İşletin Dışında) bölümünde bulabilirsiniz.
Bir işlem sırasında iş biriminde kullanılan yöntemleri Proposed API Surface - In the worklet (Önerilen API Yüzeyi - İş biriminde) bölümünde bulabilirsiniz.
Yanıt başlıklarını kullanma
JavaScript'e benzer şekilde, yalnızca belirli işlevler (ör. değerleri Shared Storage'da ayarlama, ekleme ve silme) yanıt başlıkları kullanılarak yapılabilir. Yanıt başlığında Ortak Depolama ile çalışmak için istek başlığına
Shared-Storage-Writable: ?1eklenmelidir.İstemciden istek başlatmak için seçtiğiniz yönteme bağlı olarak aşağıdaki kodu çalıştırın:
fetch()kullanılıyorfetch("https://a.example/path/for/updates", {sharedStorageWritable: true});iframeveyaimgetiketi kullanma<iframe src="https://a.example/path/for/updates" sharedstoragewritable></iframe>iframeveyaimgetiketiyle IDL özelliği kullanmalet iframe = document.getElementById("my-iframe"); iframe.sharedStorageWritable = true; iframe.src = "https://a.example/path/for/updates";
Daha fazla bilgiyi Shared Storage: Response Headers (Paylaşılan Depolama: Yanıt Başlıkları) başlıklı makalede bulabilirsiniz.
Shared Storage'a yazma
Paylaşılan depolama alanına yazmak için bir JavaScript işleti içinden veya dışından sharedStorage.set() işlevini çağırın. İşletin dışından çağrılırsa veriler, çağrının yapıldığı göz atma bağlamının kaynağına yazılır. İşletten çağrılırsa veriler, işleti yükleyen göz atma bağlamının kaynağına yazılır. Ayarlanan anahtarların son güncellemeden itibaren 30 gün geçerlilik süresi vardır.
ignoreIfPresent alanı isteğe bağlıdır. Bu öğe varsa ve true olarak ayarlanmışsa anahtar zaten mevcutsa güncellenmez. Anahtar güncellenmemiş olsa bile anahtarın geçerlilik süresi, set() çağrısından itibaren 30 gün olarak yenilenir.
Paylaşılan depolama alanına aynı anahtarla aynı sayfa yüklemesinde birden fazla kez erişilirse anahtarın değeri üzerine yazılır. Anahtarın önceki değeri koruması gerekiyorsa sharedStorage.append() kullanmanız önerilir.
JavaScript kullanma
Küçük pencerenin dışında:
window.sharedStorage.set('myKey', 'myValue1', { ignoreIfPresent: true }); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.set('myKey', 'myValue2', { ignoreIfPresent: true }); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.set('myKey', 'myValue2', { ignoreIfPresent: false }); // Shared Storage: {'myKey': 'myValue2'}Benzer şekilde, iş öğesinin içinde:
sharedStorage.set('myKey', 'myValue1', { ignoreIfPresent: true });Yanıt başlıklarını kullanma
Ayrıca yanıt başlıklarını kullanarak da Paylaşılan Depolama Alanı'na yazabilirsiniz. Bunu yapmak için yanıt üstbilgisinde
Shared-Storage-Writeile birlikte aşağıdaki komutları kullanın:Shared-Storage-Write : set;key="myKey";value="myValue";ignore_if_presentShared-Storage-Write : set;key="myKey";value="myValue";ignore_if_present=?0Birden fazla öğe virgülle ayrılabilir ve
set,append,deleteveclearbirleştirilebilir.Shared-Storage-Write : set;key="hello";value="world";ignore_if_present, set;key="good";value="bye"
Değer ekleme
Ekleme yöntemini kullanarak mevcut bir anahtara değer ekleyebilirsiniz. Anahtar yoksa append() çağrısı anahtarı oluşturur ve değeri ayarlar. Bu işlem JavaScript veya yanıt başlığı kullanılarak yapılabilir.
JavaScript kullanma
Mevcut anahtarların değerlerini güncellemek için işlevletin içinden veya dışından
sharedStorage.append()simgesini kullanın.window.sharedStorage.append('myKey', 'myValue1'); // Shared Storage: {'myKey': 'myValue1'} window.sharedStorage.append('myKey', 'myValue2'); // Shared Storage: {'myKey': 'myValue1myValue2'} window.sharedStorage.append('anotherKey', 'hello'); // Shared Storage: {'myKey': 'myValue1myValue2', 'anotherKey': 'hello'}İşletim biriminin içine eklemek için:
sharedStorage.append('myKey', 'myValue1');Yanıt başlıklarını kullanma
Paylaşılan Depolama Alanı'nda değer ayarlamaya benzer şekilde, anahtar/değer çiftini iletmek için yanıt üstbilgisinde
Shared-Storage-Writekullanabilirsiniz.Shared-Storage-Write : append;key="myKey";value="myValue2"
Değerleri toplu olarak güncelleme
sharedStorage.batchUpdate() işlevini bir JavaScript işleti içinde veya dışında çağırabilir ve seçilen işlemleri belirten sıralı bir yöntem dizisi iletebilirsiniz. Her yöntem oluşturucu, ayarlama, ekleme, silme ve temizleme için ilgili bağımsız yöntemle aynı parametreleri kabul eder.
JavaScript'ten batchUpdate() işlevini çağırabilir veya bir yanıt başlığı kullanabilirsiniz:
JavaScript kullanma
batchUpdate()ile kullanılabilecek JavaScript yöntemleri şunlardır:SharedStorageSetMethod(): Shared Storage'a bir anahtar/değer çifti yazar.SharedStorageAppendMethod(): Paylaşılan depolamadaki mevcut bir anahtara değer ekler veya anahtar henüz mevcut değilse bir anahtar/değer çifti yazar.SharedStorageDeleteMethod(): Paylaşılan depolama alanından bir anahtar/değer çiftini siler.SharedStorageClearMethod(): Paylaşılan depolama alanındaki tüm anahtarları temizler.
sharedStorage.batchUpdate([ new SharedStorageSetMethod('keyOne', 'valueOne'), new SharedStorageAppendMethod('keyTwo', 'valueTwo'), new SharedStorageDeleteMethod('keyThree'), new SharedStorageClearMethod() ]);Yanıt başlıklarını kullanma
Shared-Storage-Write : set;key=keyOne;value=valueOne, append;key=keyTwo;value=valueTwo,delete;key=keyThree,clear
Yanıt üstbilgileri kullanıldığında, üstbilgideki tüm yöntemler için batchUpdate() işlemi gerçekleştirilir.
Shared Storage'dan okuma
Ortak Depolama'dan yalnızca bir iş akışı içinden okuma yapabilirsiniz.
await sharedStorage.get('mykey');
İş akışı modülünün yüklendiği göz atma bağlamının kaynağı, hangi Shared Storage'ın okunacağını belirler.
Shared Storage'dan silme
İşletin içinden veya dışından JavaScript kullanarak ya da delete() ile yanıt başlıklarını kullanarak Paylaşılan Depolama Alanı'ndan silme işlemleri gerçekleştirebilirsiniz. Tüm anahtarları aynı anda silmek için her ikisinden de clear() simgesini kullanın.
JavaScript kullanma
İş akışının dışından Ortak Depolama'dan silmek için:
window.sharedStorage.delete('myKey');İş akışının içinden Ortak Depolama'dan silmek için:
sharedStorage.delete('myKey');Tüm anahtarları tek seferde işlevletin dışından silmek için:
window.sharedStorage.clear();Tüm anahtarları tek seferde işlev biriminin içinden silmek için:
sharedStorage.clear();Yanıt başlıklarını kullanma
Yanıt üstbilgilerini kullanarak değerleri silmek için, silinecek anahtarı iletmek üzere yanıt üstbilgisinde
Shared-Storage-Writeöğesini de kullanabilirsiniz.delete;key="myKey"Yanıt üstbilgilerini kullanarak tüm anahtarları silmek için:
clear;
Protected Audience ilgi gruplarını paylaşılan depolama alanından okuma
Protected Audience'ın ilgi gruplarını Shared Storage işletiğinden okuyabilirsiniz. interestGroups() yöntemi, AuctionInterestGroup ve GenerateBidInterestGroup özelliklerini içeren bir StorageInterestGroup nesneleri dizisi döndürür.
Aşağıdaki örnekte, göz atma bağlamı ilgi gruplarının nasıl okunacağı ve alınan ilgi gruplarında yapılabilecek bazı olası işlemler gösterilmektedir. Kullanılan iki olası işlem, ilgi alanı gruplarının sayısını bulma ve en yüksek teklif sayısına sahip ilgi alanı grubunu bulmadır.
async function analyzeInterestGroups() {
const interestGroups = await interestGroups();
numIGs = interestGroups.length;
maxBidCountIG = interestGroups.reduce((max, cur) => { return cur.bidCount > max.bidCount ? cur : max; }, interestGroups[0]);
console.log("The IG that bid the most has name " + maxBidCountIG.name);
}
Worklet modülünün yüklendiği göz atma bağlamının kaynağı, varsayılan olarak okunan ilgi alanları gruplarının kaynağını belirler. Varsayılan iş parçacığı kaynağı ve bunu değiştirme hakkında daha fazla bilgi edinmek için Shared Storage API'ye Genel Bakış bölümündeki Shared Storage ve Private Aggregation'ı Çalıştırma başlıklı makaleyi inceleyin.
Seçenekler
Tüm Shared Storage değiştirici yöntemleri, son bağımsız değişken olarak isteğe bağlı bir seçenekler nesnesini destekler.
withLock
withLock seçeneği isteğe bağlıdır. Belirtilirse bu seçenek, tanımlanan kaynak için Web Locks API kullanılarak kilit alınmasını ve ardından işleme devam edilmesini sağlar. Kilit istenirken bir kilit adı iletilir. Ad, kullanımının kaynak içindeki birden fazla sekme, çalışan veya kod arasında koordine edildiği bir kaynağı temsil eder.
withLock seçeneği aşağıdaki Shared Storage değiştirici yöntemleriyle kullanılabilir:
- grup
- ekleme
- delete
- temizle
- toplu güncelleme
JavaScript veya yanıt başlığı kullanarak kilidi ayarlayabilirsiniz:
JavaScript kullanma
sharedStorage.set('myKey', 'myValue', { withLock: 'myResource' });Yanıt başlıklarını kullanma
Shared-Storage-Write : set;key="myKey";value="myValue",options;with_lock="myResource"
Paylaşılan depolama alanındaki kilitler, verilerin kaynağına göre bölümlendirilir. Kilitler, window veya worker bağlamında olup olmadıklarına bakılmaksızın LockManager request() yöntemi kullanılarak elde edilen kilitlerden bağımsızdır. Bununla birlikte, SharedStorageWorklet bağlamında request() kullanılarak elde edilen kilitlerle aynı kapsamı paylaşırlar.
request() yöntemi çeşitli yapılandırma seçeneklerine izin verse de Paylaşılan Depolama Alanı'nda edinilen kilitler her zaman aşağıdaki varsayılan ayarlara uyar:
mode: "exclusive": Aynı ada sahip başka kilitler aynı anda tutulamaz.steal: false: Aynı ada sahip mevcut kilitler, diğer istekleri karşılamak için serbest bırakılmaz.ifAvailable: false: İstekler, kilit kullanılabilir hale gelene kadar süresiz olarak bekler.
withLock ne zaman kullanılır?
Kilitler, aynı anda birden fazla iş öğesinin çalıştığı senaryolarda (ör.bir sayfada birden fazla iş öğesi veya farklı sekmelerde birden fazla iş öğesi) faydalıdır. Bu iş öğelerinin her biri aynı verilere bakar. Bu senaryoda, yalnızca bir iş parçacığının raporları işlemesini sağlamak için ilgili iş parçacığı kodunu bir kilitle sarmak iyi bir fikirdir.
Kilitlerin faydalı olduğu bir diğer durum da bir işlette birlikte okunması gereken birden fazla anahtarın olması ve durumlarının senkronize edilmesi gerektiğidir. Bu durumda, get çağrıları bir kilit ile sarmalanmalı ve bu anahtarlara yazarken aynı kilidin alındığından emin olunmalıdır.
Kilitlerin sırası
Web kilitlerinin yapısı nedeniyle, değiştirici yöntemler tanımladığınız sırada yürütülmeyebilir. İlk işlem için kilit gerekirse ve bu işlem gecikirse ikinci işlem, ilk işlem tamamlanmadan başlayabilir.
Örnek:
// This line might pause until the lock is available.
sharedStorage.set('keyOne', 'valueOne', { withLock: 'resource-lock' });
// This line will run right away, even if the first one is still waiting.
sharedStorage.set('keyOne', 'valueTwo');
Birden çok anahtarı değiştirme örneği
withLock seçeneğiyle batchUpdate(), aynı kilidi alan diğer eşzamanlı işlemlerle karşılıklı hariç tutmayı sağlar. batchUpdate() için yalnızca withLock seçeneğini tüm toplu işe uygulayabilirsiniz. Toplu işlemdeki herhangi bir yöntem nesnesine withLock uygulanması istisna hatası verir.
Bu örnekte, iş birimindeki okuma ve silme işlemlerinin birlikte gerçekleşmesini sağlamak için bir kilit kullanılır. Böylece, iş biriminin dışından müdahale önlenir.
Aşağıdaki modify-multiple-keys.js örneğinde, keyOne ve keyTwo için modify-lock ile yeni değerler ayarlanır, ardından iş biriminden modify-multiple-keys işlemi yürütülür:
// modify-multiple-keys.js
sharedStorage.batchUpdate([
new SharedStorageSetMethod('keyOne', calculateValueFor('keyOne')),
new SharedStorageSetMethod('keyTwo', calculateValueFor('keyTwo'))
], { withLock: 'modify-lock' });
const modifyWorklet = await sharedStorage.createWorklet('modify-multiple-keys-worklet.js');
await modifyWorklet.run('modify-multiple-keys');
Ardından, modify-multiple-keys-worklet.js içinde navigator.locks.request() kullanarak gerektiği gibi anahtarları okumak ve değiştirmek için kilidi isteyebilirsiniz.
// modify-multiple-keys-worklet.js
class ModifyMultipleKeysOperation {
async run(data) {
await navigator.locks.request('modify-lock', async (lock) => {
const value1 = await sharedStorage.get('keyOne');
const value2 = await sharedStorage.get('keyTwo');
// Do something with `value1` and `value2` here.
await sharedStorage.delete('keyOne');
await sharedStorage.delete('keyTwo');
});
}
}
register('modify-multiple-keys', ModifyMultipleKeysOperation);
Bağlam değiştirme
Shared Storage verileri, çağrının başlatıldığı göz atma bağlamının kaynağına (ör. https://example.adtech.com) yazılır.
Üçüncü taraf kodunu bir <script> etiketi kullanarak yüklediğinizde kod, yerleştiricinin göz atma bağlamında yürütülür. Bu nedenle, üçüncü taraf kodu sharedStorage.set() işlevini çağırdığında veriler yerleştiricinin SharedStorage'ına yazılır. Üçüncü taraf kodunu bir iframe içinde yüklediğinizde kod yeni bir göz atma bağlamı alır ve kaynağı, iframe'in kaynağı olur. Bu nedenle, iframe'den yapılan sharedStorage.set() çağrısı, verileri iframe kaynağının paylaşılan depolama alanına depolar.
Birinci taraf bağlamı
Birinci taraf sayfasında sharedStorage.set() veya sharedStorage.delete() işlevini çağıran yerleştirilmiş üçüncü taraf JavaScript kodu varsa anahtar/değer çifti birinci taraf bağlamında depolanır.
Üçüncü taraf bağlamı
Anahtar/değer çifti, bir iFrame oluşturup iFrame'in içindeki JavaScript kodunda set() veya delete() çağrıları yapılarak reklam teknolojisi ya da üçüncü taraf bağlamında saklanabilir.
Private Aggregation API
Shared Storage'da depolanan toplanabilir verileri ölçmek için Private Aggregation API'yi kullanabilirsiniz.
Rapor oluşturmak için bir paketi ve değeri olan bir işlev içinde contributeToHistogram() işlevini çağırın. Grup, işleve BigInt olarak iletilmesi gereken 128 bitlik işaretsiz bir tam sayıyla gösterilir. Değer, pozitif bir tam sayıdır.
Gizliliği korumak için, raporun paketinde bulunan grup ve değer, aktarım sırasında şifrelenir ve yalnızca Toplama Hizmeti kullanılarak şifresi çözülüp toplanabilir.
Tarayıcı, bir sitenin çıkış sorgusuna yapabileceği katkıları da sınırlar. Daha net bir ifadeyle, katkı bütçesi, belirli bir tarayıcı için tek bir siteden gelen tüm raporların toplamını, tüm gruplarda belirli bir zaman aralığında sınırlar. Mevcut bütçe aşılırsa rapor oluşturulmaz.
privateAggregation.contributeToHistogram({
bucket: BigInt(myBucket),
value: parseInt(myBucketValue)
});
Shared Storage ve Private Aggregation'ı yürütme
Varsayılan olarak, createWorklet() ile ortak depolama alanı kullanılırken veri bölümü kaynağı, işlev çağrısı yapan göz atma bağlamının kaynağı olur. İşletçik komut dosyası kaynağı olmaz.
Varsayılan davranışı değiştirmek için dataOrigin özelliğini createWorklet çağrılırken ayarlayın.
dataOrigin: "context-origin": (Varsayılan) Veriler, çağıran tarama bağlamının kaynağının paylaşılan depolama alanında saklanır.dataOrigin: "script-origin": Veriler, işlevlet komut dosyasının kaynağının paylaşılan depolama alanında saklanır. Bu modu etkinleştirmek için kabul etmeniz gerekir.dataOrigin: "https://custom-data-origin.example": Veriler, özel bir veri kaynağının paylaşılan depolama alanında saklanır. Bu modu etkinleştirmek için katılım gereklidir ve Özel veri kaynağı bölümünde ayrıntılı olarak açıklandığı gibi, özel veri kaynağı sahibinden izin alınması gerekir.
sharedStorage.createWorklet(scriptUrl, {dataOrigin: "script-origin"});
Bu özelliği etkinleştirmek için "script-origin" veya özel bir kaynak kullanırken komut dosyası uç noktasının Shared-Storage-Cross-Origin-Worklet-Allowed üstbilgisiyle yanıt vermesi gerekir. Kaynaklar arası istekler için CORS da etkinleştirilmelidir.
Shared-Storage-Cross-Origin-Worklet-Allowed : ?1
Access-Control-Allow-Origin: *
Üçüncü taraf iFrame kullanarak kaynaklar arası komut dosyaları da çalıştırabilirsiniz. Bu durumda, Shared Storage işlemleri üçüncü taraf göz atma bağlamında yer alır.
Kaynaklar arası iframe kullanma
Ortak depolama iş akışını çağırmak için bir iFrame gerekir.
Reklamın iFrame'inde addModule() çağrısı yaparak iş parçacığı modülünü yükleyin. sharedStorageWorklet.js worklet dosyasında kayıtlı yöntemi çalıştırmak için aynı reklam iframe'i JavaScript'inde sharedStorage.run() işlevini çağırın.
const sharedStorageWorklet = await window.sharedStorage.createWorklet(
'https://any-origin.example/modules/sharedStorageWorklet.js'
);
await sharedStorageWorklet.run('shared-storage-report', {
data: { campaignId: '1234' },
});
İşlet script'inde, reklamın iFrame'inde çalışacak şekilde eşzamansız bir run
yöntem içeren bir sınıf oluşturmanız ve register yapmanız gerekir. İçeride
sharedStorageWorklet.js:
class SharedStorageReportOperation {
async run(data) {
// Other code goes here.
bucket = getBucket(...);
value = getValue(...);
privateAggregation.contributeToHistogram({
bucket,
value
});
}
}
register('shared-storage-report', SharedStorageReportOperation);
Kaynaklar arası istek kullanma
Paylaşılan depolama ve Private Aggregation, kökler arası iframe'lere gerek kalmadan kökler arası iş parçacıkları oluşturulmasına olanak tanır.
Birinci taraf sayfası, kaynaklar arası JavaScript uç noktasına createWorklet() çağrısı da yapabilir. Worklet'i oluştururken worklet'in veri bölümü kaynağını komut dosyası kaynağı olarak ayarlamanız gerekir.
async function crossOriginCall() {
const privateAggregationWorklet = await sharedStorage.createWorklet(
'https://cross-origin.example/js/worklet.js',
{ dataOrigin: 'script-origin' }
);
await privateAggregationWorklet.run('pa-worklet');
}
crossOriginCall();
Merkezler arası JavaScript uç noktası, Shared-Storage-Cross-Origin-Worklet-Allowed başlıklarıyla yanıt vermelidir ve istek için CORS'un etkinleştirildiğini belirtmelidir.
Shared-Storage-Cross-Origin-Worklet-Allowed : ?1
createWorklet() kullanılarak oluşturulan iş öğelerinde selectURL ve run() bulunur.
addModule() bu işlem için kullanılamaz.
class CrossOriginWorklet {
async run(data){
// Other code goes here.
bucket = getBucket(...);
value = getValue(...);
privateAggregation.contributeToHistogram({
bucket,
value
});
}
}
Özel veri kaynağı
dataOrigin geçerli bir kaynak olarak ayarlandığında, dataOrigin sahibi, işlevlet komut dosyası kaynağını /.well-known/shared-storage/trusted-origins yolunda listeleyen bir JSON dosyası barındırarak söz konusu dataOrigin için Shared Storage'ın işlenmesine izin vermelidir. Dosya, scriptOrigin ve contextOrigin anahtarlarını içeren bir nesne dizisi olmalıdır. Bu anahtarların değerleri dize veya dize dizisi olabilir.
Aşağıdaki bilgileri kullanarak trusted-origins dosyasını oluşturun:
- Arayan bağlamı
- Worklet komut dosyası kaynağı ve URL'si
- Verilerin kaynağı ve sahibi
Aşağıdaki tabloda, bu bilgilere göre trusted-origins dosyasını nasıl oluşturabileceğiniz gösterilmektedir:
| Arayan bağlamı | İş öğesi komut dosyası URL'si | Veri kaynağı | Veri sahibi | Veri kaynağı sahibinin güvenilen kaynaklar JSON dosyası |
|---|---|---|---|---|
| https://publisher.example | https://publisher.example/script.js | context-origin | https://publisher.example | JSON gerekmez |
| https://publisher.example | https://ad.example/script.js | script-origin | https://ad.example | JSON gerekmez |
| https://publisher.example | https://cdn-ad.example/script.js | https://ad.example | https://ad.example |
[{ "scriptOrigin": "https://cdn-ad.example", "contextOrigin": "https://publisher.example" }] |
| Herhangi bir arayan | https://cdn-ad.example/script.js | https://ad.example | https://ad.example |
[{ "scriptOrigin": "https://cdn-ad.example", "contextOrigin": "*" }] |
| https://publisher-a.example, VEYA https://publisher-b.example | https://cdn-ad.example/script.js | https://ad.example | https://ad.example |
[{ "scriptOrigin": "https://cdn-ad.example", "contextOrigin": [ "https://publisher-a.example", "https://publisher-b.example" ] }] |
| https://publisher.example | https://cdn-a-ad.example/script.js VEYA https://cdn-b-ad.example/script.js | https://ad.example | https://ad.example |
[{ "scriptOrigin": [ "https://cdn-a-ad.example", "https://cdn-b-ad.example" ], "contextOrigin": "https://publisher.example" }] |
Örneğin, aşağıdaki JSON https://custom-data-origin.example/.well-known/shared-storage/trusted-origins adresinde barındırılabilir ve https://custom-data-origin.example kaynağı için paylaşılan depolama alanı verilerinin izin verilen tüm işlemcilerini birleştirebilir.
[
{
"scriptOrigin": "https://script-origin.a.example",
"contextOrigin": "https://context-origin.a.example"
},
{
"scriptOrigin": "https://script-origin.b.example",
"contextOrigin": [
"https://context-origin.a.example",
"https://context-origin.b.example"
]
}]
Sonraki adımlar
Aşağıdaki sayfalarda, Shared Storage ve Private Aggregation API'lerinin önemli yönleri açıklanmaktadır.
- Shared Storage'a Giriş (Geliştirici Chrome)
- Shared Storage Kullanım Alanları (Geliştirici Chrome)
- Private Aggregation'a Giriş (Geliştirici Chrome)
- Paylaşılan Depolama Alanı Açıklayıcısı (GitHub)
- Private Aggregation Explainer (GitHub)
- Ortak Depolama ve Gizli Toplama Demosu
API'leri tanıdıktan sonra, istek gövdesinde JSON olarak aşağıdaki uç noktalara POST isteği şeklinde gönderilen raporları toplamaya başlayabilirsiniz.
- Hata Ayıklama Raporları -
context-origin/.well-known/private-aggregation/debug/report-shared-storage - Raporlar -
context-origin/.well-known/private-aggregation/report-shared-storage
Raporlar toplandıktan sonra yerel test aracını kullanarak test edebilir veya toplu raporları almak için Toplama Hizmeti için Güvenilir Yürütme Ortamı'nı ayarlayabilirsiniz.
Görüşlerinizi paylaşın
API'ler ve dokümanlarla ilgili geri bildiriminizi GitHub'da paylaşabilirsiniz.