Descripción general de la URL seleccionada

La URL de selección te permite elegir qué contenido mostrarle a un usuario en función de sus datos de Shared Storage, sin revelar los datos almacenados subyacentes.

En los casos en que desees mostrar contenido basado en datos entre sitios de una manera que respete la privacidad, puedes usar la API de Select URL. La API de Select URL funciona bien para casos de uso como los siguientes:

  • Realizar pruebas A/B del contenido para garantizar una experiencia del usuario coherente en varios sitios
  • Mostrar un botón de acceso diferente para los usuarios que tienen una cuenta y los que no
  • Rotar las creatividades publicitarias para limitar la frecuencia con la que un usuario ve el mismo anuncio en varios sitios

¿Qué es la API de Select URL?

La API de Select URL te permite elegir entre un conjunto de URLs según los datos de varios sitios. La API se basa en Shared Storage y usa un SharedStorageWorklet para leer los datos disponibles de varios sitios y seleccionar una de las URLs proporcionadas. La URL seleccionada se devuelve al llamador de una manera que impide que se lea, excepto dentro de un fenced frame. La URL también se puede renderizar en un iframe hasta, al menos, el año 2026.

Diagrama que muestra el iframe de shoes.example incorporado en los sitios de diferentes publicadores, incluidos news.example y blog.example. El sitio shoes.com puede acceder a su propio almacenamiento no particionado desde cada sitio de nivel superior.

En el diagrama anterior, el sitio shoes.example se puede incorporar en otros sitios de publicadores, como news.example, y seguir accediendo a los mismos datos con Select URL with Shared Storage para elegir el contenido adecuado que se incorporará.

Cómo funciona la opción Seleccionar URL

Puedes usar la API de Select URL para seleccionar una URL que se renderizará en un fenced frame o iframe con datos de sitios cruzados. Usa JavaScript para leer y escribir datos de varios sitios en Shared Storage y, luego, selecciona una URL de una lista proporcionada según los datos almacenados.

Cualquier sitio o dominio inscrito puede escribir datos en Shared Storage, y los sitios solo pueden leer esos datos con la API de Select URL.

La URL renderizada puede incluir cualquier tipo de contenido: anuncios, artículos, imágenes, HTML, llamados a la acción (como botones) y mucho más.

En este ejemplo, supongamos que administras un sitio de viajes y publicas una campaña publicitaria con tres creatividades de anuncios diferentes. Deseas crear una secuencia de estas creatividades en función de las interacciones del usuario (vista o clic).

Tres creatividades del anuncio, que se muestran a los usuarios en función de su interacción anterior
La primera creatividad para un nuevo usuario dice: "Ve a tu próxima aventura". Con solo una vista y sin clics, el siguiente elemento creativo que ve el usuario dice "Explora escapadas de fin de semana". Después de ver o hacer clic, la tercera creatividad alienta a los usuarios a "hacer clic para obtener su descuento en hoteles". Si el usuario hace clic en el primer anuncio, el siguiente anuncio que verá será la tercera creatividad.

Cuando un sitio observa por primera vez un espacio publicitario ganador, puedes almacenar un ID y un estado de clic para esa creatividad en Shared Storage.

Por ejemplo:

await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');

Esto significa que, cuando ganes una subasta de anuncios en otros sitios que visite este usuario, podrás mostrar un anuncio diferente en función de esos datos.

Explicación del almacenamiento compartido con tres creatividades del anuncio y la interacción del usuario.

Tu código JavaScript se ejecuta en un SharedStorageWorklet para recuperar esta información, pero tu código no puede interactuar ni comunicarse fuera del iframe o del iframe delimitado en la página principal.

Como otro ejemplo, es posible que desees probar qué artículo tendría un mejor rendimiento en un contexto incorporado. Para probar esto, puedes asignar un usuario a un grupo de experimento cuando lo veas en tu sitio y, luego, almacenar el ID de ese grupo en Shared Storage para acceder a él en un contexto de sitios cruzados. En otro sitio, puedes usar la API de Select URL para elegir la URL más adecuada para renderizar en un iframe delimitado, según el grupo experimental de ese usuario almacenado con Shared Storage.

Con la opción Seleccionar URL, puedes tomar decisiones fundamentadas basadas en datos de varios sitios sin compartir información del usuario (como el historial del navegador o cualquier otro detalle personal) con un sitio incorporado ni filtrar datos a tus propios servidores.

Presupuestos

Para mitigar el riesgo de filtración de datos entre sitios, la API de Select URL usa un sistema de presupuesto con una combinación de presupuestos a largo y corto plazo:

  • Presupuesto a largo plazo: El presupuesto a largo plazo es de 12 bits por sitio de la entidad llamadora y por día cuando se usa selectURL(). Este presupuesto solo se cobra si el marco que aloja la URL seleccionada realiza una navegación de nivel superior, en la que el costo se calcula como log2(number of URLs). Por lo tanto, si proporcionas 8 URLs para elegir, el costo es de 3 bits. El presupuesto restante para el día se calcula como 12 - (sum of bits deducted in the last 24 hours). Si no queda suficiente presupuesto, se devuelve la URL predeterminada (la primera de la lista) y se registra 1 bit si se navega a la URL predeterminada.
  • Presupuestos a corto plazo: Los presupuestos a corto plazo son límites adicionales por carga de página hasta que se apliquen por completo los marcos delimitados y mientras esté disponible la generación de informes a nivel del evento. Hay un presupuesto de 6 bits por sitio llamante y por carga de página que limita la cantidad de información que un solo sitio llamante puede filtrar con selectURL(). También hay un presupuesto de 12 bits en general por carga de página, que es un límite combinado para todos los sitios que realizan llamadas en una página.

    Las consultas guardadas te permiten volver a usar un resultado de selectURL() anterior en la misma página, lo que reduce el uso del presupuesto a corto plazo. Cuando se llama a selectURL() con un nombre de búsqueda guardado por primera vez, el índice resultante se almacena durante la vida útil de la página. Cuando se llama a selectURL() con el mismo nombre de búsqueda guardada para las llamadas de seguimiento, se devolverá el índice almacenado y no se ejecutará la operación registrada. En este caso, el presupuesto solo se cobra en el primer uso, pero no en los usos posteriores dentro de la misma carga de página, ya que no se revela información nueva.

    Puedes implementar consultas guardadas agregando la propiedad savedQuery con el nombre de consulta que elijas al objeto de opciones, como se muestra en este ejemplo.

    const topProductUrls = [
      { url: 'https://ad.example/default-top-product.html' },
      { url: 'https://ad.example/experiment-top-product.html' }];
    const relatedProductUrls = [
      { url: 'https://ad.example/default-related-product.html' },
      { url: 'https://ad.example/experiment-related-product.html' }];
    
    // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'`
    // on this page, so it will be charged to both per-page budgets.
    const topProductsConfig = await sharedStorage.selectURL(
      'productExperiment', topProductUrls, {
        savedQuery: 'control_or_experiment',
        keepAlive: true,
        resolveToConfig: true
    });
    document.getElementById('topProductsFencedFrame').config = topProductsConfig;
    
    // This next call with this savedQuery won't charge either of the per-page budgets.
    const relatedProductConfig = await sharedStorage.selectURL(
      'productExperiment', relatedProductUrls, {
        savedQuery: 'control_or_experiment',
        resolveToConfig: true
    });
    document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
    

Selecciona casos de uso de la API de URL

Si creas un sitio web con funciones que deben funcionar en diferentes dominios, es posible que tengas uno de los siguientes casos de uso:

  • Rotar creatividades de anuncios: Limita la frecuencia con la que un usuario ve el mismo anuncio en varios sitios almacenando datos, como el ID de la creatividad, los recuentos de vistas y la interacción del usuario, para determinar qué creatividades ven los usuarios en los diferentes sitios. Esto te permite equilibrar las vistas y evitar la sobresaturación de cierto contenido para limitar una posible experiencia del usuario negativa. Para obtener más información sobre este caso de uso, consulta Cómo rotar creatividades de anuncios.
  • Seleccionar la creatividad del anuncio por frecuencia: Almacena los recuentos de vistas del navegador en Shared Storage para limitar la frecuencia con la que un usuario ve el mismo anuncio en varios sitios. Para obtener más información sobre este caso de uso, consulta Selecciona una creatividad del anuncio por frecuencia.
  • Personaliza la experiencia del usuario para los clientes conocidos: Ofrece una experiencia coherente en tus diferentes dominios. Compartir contenido personalizado y llamados a la acción en función del estado de registro o de otros estados del usuario, y ofrecer una experiencia coherente en tus diferentes dominios Para obtener más información sobre este caso de uso, consulta Personaliza la experiencia del usuario para los clientes conocidos.
  • Realiza pruebas A/B: Una prueba A/B compara dos o más versiones de una configuración para determinar cuál tiene el mejor rendimiento. Puedes asignar un usuario a un grupo de experimento y, luego, almacenar ese grupo en Shared Storage para el acceso entre sitios. Esto te permite recopilar estadísticas sobre el comportamiento de los usuarios en tu red de sitios sin hacer un seguimiento de las personas. Para obtener más información sobre este caso de uso, consulta Cómo ejecutar pruebas A/B.

La API de Select URL con Shared Storage te permite desarrollar estos casos de uso, ya que tienes acceso al mismo almacenamiento en diferentes sitios de nivel superior.

Experimenta con la demostración

Puedes experimentar con Select URL usando la demostración de Shared Storage.

Esta demostración se creó desde la perspectiva de un anunciante, una empresa de tecnología publicitaria, un distribuidor de contenido o cualquier otro servicio de terceros que desee almacenar información en los sitios de diferentes publicadores. En la demostración, el mismo código de terceros se ejecuta en los sitios del Publicador A y del Publicador B para cada caso de uso. Visita la página de cada publicador para ver cómo se comparten los datos en un contexto entre sitios.

También puedes revisar el código de la demostración en GitHub.

Estado de la API

La API de Select URL está en disponibilidad general. Para usar la API de Select URL o habilitarla para el desarrollo local, sigue las instrucciones para inscribirte en Privacy Sandbox.

Propuesta Estado
Informes a nivel del evento para la selección de contenido (selectURL()) Disponible hasta, al menos, 2026
Presupuesto por sitio
Explicación
Disponible en M119
Cómo depurar worklets de almacenamiento compartido con DevTools
Sección
Disponible en M120

Interactúa y comparte comentarios

Ten en cuenta que la propuesta de la API de Select URL está en debate y desarrollo activos, y está sujeta a cambios.

Nos encantaría conocer tu opinión sobre la API de Select URL.