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

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.

Bu API'leri kullanmak için Özel Korumalı Alan Reklamları API'leri denemesini etkin olarak ayarlayın

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.

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 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.