Sıklığa göre reklam öğesi seçme

Bir URL seçmek ve bunu sınırlı bir çerçevede oluşturmak için Ortak Depolama iş akışı çalıştırın.

Shared Storage API, genel amaçlı, siteler arası depolama için bir Özel Korumalı Alan önerisidir ve birçok olası kullanım alanını destekler. Örneğin, Chrome Beta 104.0.5086.0 ve sonraki sürümlerde test edilebilen sıklık kontrolü.

Depolanan verilere göre sağlanan listeden bir URL seçmek ve ardından bu URL'yi sınırlı bir çerçevede oluşturmak için bir iş parçacığı komut dosyası çalıştırın. Bu, sıklık sınırına ulaşıldığında yeni reklamlar veya başka içerikler seçmek için kullanılabilir.

Reklam öğesi seçimini sıklığa göre test etme

Ortak Depolama Alanı ve Fenced Frame'ler ile sıklığa göre reklam öğesi seçimini test etmek için Chrome 104.0.5086.0 veya sonraki bir sürümünü kullandığınızı doğrulayın. chrome://settings/adPrivacy bölümündeki tüm reklam gizliliği API'lerini etkinleştirin.

Paylaşılan Depolama Alanı'nı komut satırındaki --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames işaretini kullanarak da etkinleştirebilirsiniz.

Kod örnekleriyle denemeler yapma

Opak bir URL seçip oluşturmak için paylaşılan depolama verilerini okuyacak bir işleti modülü kaydedin. İşlet sınıfı, en fazla sekiz URL'den oluşan bir liste alır ve ardından seçilen URL'nin dizinini döndürür.

İstemci sharedStorage.selectURL() işlevini çağırdığında işlevlet yürütülür ve sınırlı çerçeve içinde oluşturulacak opak bir URL döndürülür.

Bir kullanıcının daha önce kaç kez gördüğüne bağlı olarak farklı bir reklam veya içerik seçmek istediğinizi varsayalım. Bir kullanıcının bir içeriği kaç kez gördüğünü sayabilir ve bu değeri paylaşılan depolama alanında saklayabilirsiniz. Paylaşılan depolama alanında depolanan değer, farklı kaynaklarda kullanılabilir.

Ardından, paylaşılan depolama alanı işleti, paylaşılan depolama alanındaki değerleri okur ve her ek görüntülemeyle sayaç değerini artırır. Sayı, önceden tanımlanmış sınıra ulaşmadıysa oluşturmak istediğiniz içerik döndürülür (dizin 1). Aksi takdirde varsayılan URL döndürülür (dizin 0).

Bu örnekte:

  • creative-selection-by-frequencyjs, içerik üreticinin veya reklamverenin iFrame'i üzerinden yüklenir ve paylaşılan depolama işletiğini yüklemekten ve döndürülen opak kaynağı bir sınırlı çerçeveye oluşturmaktan sorumludur.
  • creative-selection-by-frequency-worklet.js, bir içerik veya reklam öğesi için hangi URL'nin döndürüleceğini belirlemek üzere sıklık sayısını okuyan paylaşılan depolama işidir.

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

Kullanım alanları

Seçili URL API'si için kullanılabilen tüm kullanım alanlarını bu bölümde bulabilirsiniz. Geri bildirim aldıkça ve yeni test örnekleri keşfettikçe örnekler eklemeye devam edeceğiz.

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.