Seleccionar una creatividad según la frecuencia

Ejecuta un worklet de almacenamiento compartido para seleccionar una URL y renderizarla en un marco vallado.

La API de Shared Storage es una propuesta de Privacy Sandbox para el almacenamiento de uso general entre sitios, que admite muchos casos de uso posibles. Un ejemplo es el control de frecuencia, que está disponible para probar en Chrome Beta 104.0.5086.0 y versiones posteriores.

Ejecuta una secuencia de comandos de worklet para seleccionar una URL de una lista proporcionada, según los datos almacenados, y luego renderiza esa URL en un marco vallado. Se puede usar para seleccionar anuncios nuevos o algún otro tipo de contenido cuando se alcance el límite de frecuencia.

Cómo probar la selección de creatividades por frecuencia

Para probar la selección de creatividades por frecuencia con el almacenamiento compartido y los marcos vallados, confirma que usas Chrome 104.0.5086.0 o una versión posterior. Luego, habilita la marca Experimento de las APIs de anuncios de Privacy Sandbox en chrome://flags/#privacy-sandbox-ads-apis.

Habilita el experimento de las APIs de anuncios de Privacy Sandbox para poder usar estas APIs

También puedes habilitar el almacenamiento compartido con la marca --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames en la línea de comandos.

Experimenta con muestras de código

Para seleccionar y crear una URL opaca, registra un módulo de worklet para leer datos de almacenamiento compartido. La clase de worklet recibe una lista de hasta ocho URLs y, luego, muestra el índice de la URL elegida.

Cuando el cliente llama a sharedStorage.selectURL(), el worklet ejecuta y muestra una URL opaca que se renderizará en un marco vallado.

Supongamos que deseas seleccionar un anuncio o contenido diferente para renderizar en función de la frecuencia con la que un usuario lo ha visto antes. Puedes contar la cantidad de veces que un usuario vio un contenido y almacenar ese valor en un almacenamiento compartido. Una vez almacenado, el valor en el almacenamiento compartido pasa a estar disponible en diferentes orígenes.

Luego, el worklet de almacenamiento compartido lee los valores de ese almacenamiento y aumenta el contador con cada vista adicional. Si el recuento no alcanza el límite predefinido, se muestra el contenido que quieres renderizar (índice 1). De lo contrario, se muestra la URL predeterminada (índice 0).

En este ejemplo:

  • creative-selection-by-frequencyjs se carga a través del iframe del productor de contenido o del anunciante, y es responsable de cargar el worklet de almacenamiento compartido y renderizar la fuente opaca que se muestra en un marco vallado.
  • creative-selection-by-frequency-worklet.js es el worklet de almacenamiento compartido que lee el recuento de frecuencia a fin de determinar qué URL se muestra para un contenido o una creatividad de anuncio.

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 this.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 this.sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

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

Casos de uso

Estos son solo algunos de los posibles casos de uso del almacenamiento compartido. Seguiremos agregando ejemplos a medida que recibimos comentarios y descubramos nuevos casos de uso.

Selección de contenido

Selecciona y muestra contenido diferente en distintos sitios web en marcos vallados según la información recopilada en el almacenamiento compartido. La puerta de salida para estos casos de uso es la selección de la URL.

  • Rotación de creatividades: Almacena datos, como el ID de la creatividad, la cantidad de vistas y la interacción de los usuarios, para determinar qué creatividades verán los usuarios en los diferentes sitios.
  • Pruebas A/B: Puedes asignar un usuario a un grupo experimental y, luego, almacenarlo en el almacenamiento compartido para que se pueda acceder a él entre sitios.
  • Experiencias del usuario personalizadas: Comparte contenido personalizado y llamados a la acción basados en el estado de registro de un usuario o en otros estados del usuario.

Genera informes de resumen

Recopila información con el almacenamiento compartido y genera un informe resumido y ruidoso. La puerta de salida para estos casos de uso es la API de agregación privada.

  • Medición de alcance único: Muchos productores y anunciantes de contenido quieren saber cuántas personas únicas vieron su contenido. Usa el almacenamiento compartido para registrar la primera vez que un usuario vio tu anuncio, video incorporado o publicación, y evita que ese mismo usuario se duplique en sitios diferentes. Luego, puedes usar la API de Private Aggregation para generar un informe de resumen de tu alcance.
  • Medición de datos demográficos: Los productores de contenido suelen querer comprender los datos demográficos de su público. Puedes usar el almacenamiento compartido para registrar datos demográficos de los usuarios en un contexto en el que los tengas, como tu sitio de origen, y usar informes agregados para generar informes sobre ellos en muchos otros sitios, como el contenido incorporado.
  • Medición de frecuencia K+: A veces se describe como "frecuencia efectiva", a menudo, hay una cantidad mínima de vistas antes de que un usuario reconozca o recuerde cierto contenido (a menudo, en el contexto de vistas de anuncios). Puedes usar el almacenamiento compartido para crear informes de usuarios únicos que hayan visto contenido al menos K veces.

Interactúa y comparte comentarios

La propuesta de almacenamiento compartido se encuentra en debate activo y sujeta a cambios en el futuro. Si pruebas esta API y tienes comentarios, nos encantaría recibirlos.