Reklam öğelerini dönüşümlü yayınla

Bir kullanıcının sitelerde hangi reklam öğesini göreceğini belirlemek için Paylaşılan Depolama kullanın.

Shared Storage API bir gizlilik ayarıdır. Pek çok özelliği destekleyen genel amaçlı, siteler arası depolamaya yönelik korumalı alan teklifi örneklerden bahsetmek istiyorum. Buna örnek olarak, .

Reklam öğesi rotasyonuyla, reklam öğesi kimliği, görünüm ve ve kullanıcı etkileşimini temel alarak hangi reklam öğesi kullanıcılarının genelinde göster olabilir.

ve ardından söz konusu reklam öğesini çitli bir çerçevede oluşturun. Bu, kullanılabilir kullanabilirsiniz.

Reklam öğesi rotasyonunu deneyin

Paylaşılan depolama alanıyla reklam öğesi rotasyonu denemeleri yapmak için Chrome 104.0.5086.0 veya sonraki bir sürümü kullandığınızdan emin olun. chrome://settings/adPrivacy altındaki 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

Bir reklamveren veya içerik üreticisi, bir reklamveren ya da içerik üreticisinin ve etkinliği artırmak için içerikleri veya reklam öğelerini dönüşümlü olarak yayınlayabilirsiniz. Paylaşılan depolama alanı, şunlar gibi farklı rotasyon stratejilerini çalıştırmak için kullanılabilir: sıralı rotasyon ve farklı siteler arasında eşit olarak dağıtılmış rotasyon.

Bu örnekte:

  • creative-rotation.js bir çerçeveye yerleştirilmiş. Bu komut dosyası, hangi reklamların ( ağırlık) en önemli olduğunu belirler 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çerikler ve iadelerin ağırlıklı dağılımını belirleyen paylaşılan depolama iş akışıdır.

creative-rotation.js

// 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();

creative-rotation-worklet.js

class SelectURLOperation {
  async run(urls, data) {
    // Read the rotation mode from Shared Storage
    const rotationMode = await 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 sharedStorage.get('creative-rotation-index');
        index = parseInt(currentIndex, 10);
        const nextIndex = (index + 1) % urls.length;

        await 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 birkaçıdır. Saat devam ederken bir yandan da geri bildirim alma yeni kullanım alanları keşfedebilirsiniz.

İçerik seçimi

Farklı web sitelerinde farklı içerikler seçip görüntüleyebilirsiniz. bilgiye göre çerçeveli çerçeveler paylaşılan depolama alanı kullanılır. Bu kullanım alanları için çıkış kapısı URL seçimidir.

  • Reklam öğesi rotasyonu: Reklam öğesi kimliği, görüntüleme sayısı ve kullanıcı etkileşimi gibi verileri depolayarak hangi reklam öğesi kullanıcılarının farklı sitelerde görebilirsiniz.
  • A/B testi: Bir deneme grubuna bir kullanıcı atayabilir ve ardından bu grubu siteler arası erişilmesi için Paylaşılan Depolama'da depolayabilirsiniz.
  • Özel kullanıcı deneyimleri: Kullanıcının kayıt durumuna veya diğer kullanıcı durumlarına göre özel içerik ve harekete geçirici mesajlar paylaşın

Özet raporlar oluşturma

Paylaşılan Depolama Alanı 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.

  • Tekil erişim ölçümü: Birçok içerik yapımcısı ve reklamveren, benzersiz içerik üreticilerin kişi içeriklerini gördü. Bir kullanıcıyla ilk kez kayıt yapmak için Paylaşılan Depolama Alanı'nı kullanma reklamınızı, yerleştirilmiş videoyu veya yayınınızı gördüğünde ve reklamların tekrarlanmasını farklı sitelerde aynı kullanıcının sayılmasına yardımcı olur. Ardından, erişiminiz için bir özet rapor oluşturmak üzere Private Aggregation API'yi kullanabilirsiniz.
  • Demografi ölçümü: İçerik üreticiler genellikle kullandıkları videoların demografisini kitle. Paylaşılan Depolama Alanı'nı kullanarak kullanıcının demografik verilerini web sitenizin bağlamını (ör. birinci taraf siteniz) ve toplu haldeki Böylece, yerleştirilmiş içerik gibi diğer birçok sitede bu konuda rapor oluşturabilirsiniz.
  • K+ sıklık ölçümü: Bazen “etkili sıklık” şeklinde tanımlanır ve genellikle proje için belirlenen kullanıcının belirli içeriği tanımasından veya hatırlamasından (genellikle daha fazla bilgi edinin. Rapor oluşturmak için Paylaşılan Depolama alanını kullanabilirsiniz bir içeriği en az K kez gören benzersiz kullanıcıların oranı.

Etkileşimde bulunun ve geri bildirim paylaşın

Paylaşılan Depolama Alanı teklifi şu anda tartışılıyor ve teklifte değişiklik yapılabilir daha avantajlı bir konumda olursunuz. Bu API'yi deneyip geri bildirimlerinizi bizimle paylaşırsanız seviniriz.