Kullanıcının sitelerde gördüğü reklam öğesini belirlemek için Paylaşılan Depolama kullanın.
Shared Storage API, pek çok olası kullanım alanını destekleyen genel amaçlı ve siteler arası depolamaya yönelik bir Özel Korumalı Alan teklifidir. Bunun bir örneği, Chrome 104.0.5086.0 ve sonraki sürümlerinde test edilebilen reklam öğesi rotasyonudur.
Reklam öğesi rotasyonu sayesinde, kullanıcıların farklı sitelerde hangi reklam öğesini gördüğünü belirlemek için reklam öğesi kimliği, görüntüleme sayıları ve kullanıcı etkileşimi gibi verileri depolayabilirsiniz.
Sağlanan listeden, depolanan verilere göre bir URL seçmek için bir Paylaşılan Depolama iş uygulaması çalıştırın ve daha sonra, bu reklam öğesini sınırlanmış bir çerçevede oluşturun. Bu, yeni reklamlar veya başka içerik seçmek için kullanılabilir.
Reklam öğesi rotasyonunu deneyin
Paylaşılan Depolama ile reklam öğesi rotasyonuyla deneme yapmak için Chrome 104.0.5086.0 veya sonraki bir sürümü kullandığınızdan emin olun. Ardından chrome://flags/#privacy-sandbox-ads-apis
adresinde Özel Korumalı Alan Reklamları API'leri denemesi işaretini etkinleştirin.
Paylaşılan Depolama'yı komut satırındaki --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
işaretiyle de etkinleştirebilirsiniz.
Kod örnekleriyle deneme yapma
Bir reklamveren veya içerik üreticisi, bir kampanyaya farklı stratejiler uygulamak ve etkililiği artırmak için içerikleri veya reklam öğelerini dönüşümlü yayınlamak isteyebilir. Paylaşılan depolama, farklı sitelerde sıralı rotasyon ve eşit olarak dağıtılmış rotasyon gibi farklı rotasyon stratejilerini çalıştırmak için kullanılabilir.
Bu örnekte:
creative-rotation.js
bir çerçeveye yerleştirilmiş. Bu komut dosyası, hangi reklamların en önemli olduğunu ( ağırlık) ayarlar ve hangi içeriğin görüntülenmesi gerektiğini belirlemek için iş akışına çağrı yapar.creative-rotation-worklet.js
, görüntülenmesi gereken içerik ve iadelerin ağırlıklı dağılımını belirleyen paylaşılan depolama alanıdır.
// Ad config with the URL of the content, a probability weight for rotation, and the clickthrough rate.
const DEMO_CONTENT_CONFIG = [
{
url: 'https://your-server.example/contents/content-1.html',
weight: 0.7,
},
{
url: 'https://your-server.example/contents/content-2.html',
weight: 0.2,
},
{
url: 'https://your-server.example/contents/content-3.html',
weight: 0.1,
},
];
// Set the mode to sequential and set the starting index to 0.
async function seedStorage() {
await window.sharedStorage.set('content-rotation-mode', 'sequential', {
ignoreIfPresent: true,
});
await window.sharedStorage.set('content-rotation-index', 0, {
ignoreIfPresent: true,
});
}
async function injectAd() {
// Load the worklet module
await window.sharedStorage.worklet.addModule('content-rotation-worklet.js');
// Initially set the storage to sequential mode for the demo
seedStorage();
// Run the URL selection operation to determine the next content rendered.
const urls = DEMO_CONTENT_CONFIG.map(({ url }) => ({ url }));
const fencedFrameConfig = await window.sharedStorage.selectURL('content-rotation', urls, {
data: DEMO_CONTENT_CONFIG,
resolveToConfig: true
});
// Render the opaque URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectAd();
class SelectURLOperation {
async run(urls, data) {
// Read the rotation mode from Shared Storage
const rotationMode = await this.sharedStorage.get('content-rotation-mode');
// Generate a random number to be used for rotation
const randomNumber = Math.random();
let index;
switch (rotationMode) {
/**
* Sequential rotation
* - Rotates the contents in order
* - Example: A -> B -> C -> A ...
*/
case 'sequential':
const currentIndex = await this.sharedStorage.get('creative-rotation-index');
index = parseInt(currentIndex, 10);
const nextIndex = (index + 1) % urls.length;
await this.sharedStorage.set('content-rotation-index', nextIndex);
break;
/**
* Weighted rotation
* - Rotates the contentswith weighted probability
* - Example: A=70% / B=20% / C=10%
*/
case 'weighted-distribution':
// Sum the weights cumulatively, and find the first URL where the
// sum exceeds the random number. The array is sorted in
// descending order first.
let weightSum = 0;
const { url } = data
.sort((a, b) => b.weight - a.weight)
.find(({ weight }) => {
weightSum += weight;
return weightSum > randomNumber;
});
index = urls.indexOf(url);
break;
default:
index = 0;
}
return index;
}
}
register('content-rotation', SelectURLOperation);
Kullanım alanları
Bunlar, Paylaşılan Depolama Alanı'nın olası kullanım alanlarından yalnızca bazılarıdır. Geri bildirim aldık ve yeni kullanım alanları keşfettikçe örnekler eklemeye devam edeceğiz.
İçerik seçimi
Paylaşılan Depolama Alanı'nda toplanan bilgilere göre çitli çerçeveler içinde farklı web sitelerinde farklı içerikler seçin ve görüntüleyin. Bu kullanım alanları için çıkış kapısı URL seçimidir.
- Reklam öğesi rotasyonu: Kullanıcıların farklı sitelerde hangi reklam öğesini gördüğünü belirlemek için reklam öğesi kimliği, görüntüleme sayıları ve kullanıcı etkileşimi gibi verileri depolayın.
- A/B testi: Bir deneme grubuna kullanıcı atayabilir, ardından bu grubu siteler arasında erişmek üzere Paylaşılan Depolama'da saklayabilirsiniz.
- Özel kullanıcı deneyimleri: 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
Özet rapor oluşturma
Paylaşılan Depolama ile bilgi toplayarak gürültülü, toplu bir özet rapor oluşturdu. Bu kullanım alanları için çıkış kapısı, Private Aggregation API'dir.
- Tekil erişim ölçümü: Birçok içerik üreticisi ve reklamveren, içeriklerini kaç benzersiz kullanıcının gördüğünü bilmek ister. Paylaşılan Depolama Alanı'nı kullanarak bir kullanıcının reklamınızı, yerleşik videonuzu veya yayınınızı ilk kez gördüğünü kaydedebilir ve aynı kullanıcının farklı sitelerde yinelenen şekilde sayılmasını önleyebilirsiniz. Ardından, erişiminiz için özet raporu oluşturmak amacıyla Private Aggregation API'yi kullanabilirsiniz.
- Demografi ölçümü: İçerik üreticileri genellikle kitlelerinin demografisini anlamak ister. Paylaşılan Depolama Alanı'nı kullanarak kullanıcıların demografik verilerini, birinci taraf siteniz gibi sahip olduğunuz bir bağlamda kaydedebilir ve yerleşik içerik gibi diğer pek çok sitede bu veriler hakkında rapor oluşturmak için toplu raporlardan yararlanabilirsiniz.
- K+ sıklık ölçümü: Bazen "etkili sıklık" olarak da bahsedildiğinde, kullanıcının belirli içeriği tanıması veya hatırlaması için genellikle bir minimum görüntüleme sayısı olur (genellikle reklam görüntülemeleri bağlamında). Bir içeriği en az K sayıda gören benzersiz kullanıcılar hakkında raporlar oluşturmak için Paylaşılan Depolama'yı kullanabilirsiniz.
Etkileşimde bulunun ve geri bildirim paylaşın
Paylaşılan Depolama alanı teklifi şu anda etkin bir şekilde tartışılmaktadır ve gelecekte değiştirilebilir. Bu API'yi deneyip geri bildirimde bulunursanız memnuniyet duyarız.
- GitHub: Teklifi okuyun, soruları sorun ve tartışmaya katılın.
- Shared Storage API duyuruları: Posta listemizdeki eski duyurulara katılın veya bu duyuruları görüntüleyin
- Geliştirici desteği: Özel Korumalı Alan Geliştirici Desteği deposunda soru sorun ve tartışmalara katılın.