L'API Select URL ti consente di scegliere quali contenuti mostrare a un utente in base ai dati di Shared Storage, senza rivelare i dati archiviati sottostanti.
Nei casi in cui vuoi mostrare contenuti basati su dati cross-site in modo rispettoso della privacy, puoi utilizzare l'API Select URL. L'API Select URL funziona bene per casi d'uso come:
- Test A/B dei contenuti per un'esperienza utente coerente su più siti.
- Mostrare un pulsante di accesso diverso per gli utenti che hanno un account e per quelli che non ne hanno uno.
- Alternare le creatività pubblicitarie per limitare la frequenza con cui un utente visualizza lo stesso annuncio su più siti.
Che cos'è l'API Select URL?
L'API Select URL ti consente di scegliere tra un insieme di URL in base ai dati cross-site. L'API è basata su
Shared Storage e utilizza un SharedStorageWorklet
per leggere i dati cross-site disponibili e selezionare uno degli URL forniti. L'URL
selezionato viene restituito al chiamante in modo da impedirne la lettura
tranne che all'interno di un frame recintato. L'URL può essere visualizzato anche in un iframe almeno fino al 2026.

Nel diagramma precedente, il sito shoes.example può essere incorporato in altri
siti publisher come news.example e accedere comunque agli stessi dati utilizzando Select
URL con Shared Storage per scegliere i contenuti appropriati da incorporare.
Come funziona Seleziona URL
Puoi utilizzare l'API Select URL per selezionare un URL da visualizzare in un fenced frame o in un iframe utilizzando dati cross-site. Utilizza JavaScript per leggere e scrivere dati cross-site in Shared Storage, poi seleziona un URL da un elenco fornito in base ai dati archiviati.

L'URL di rendering può includere qualsiasi tipo di contenuto: annunci, articoli, immagini, HTML, inviti all'azione (ad esempio pulsanti) e altro ancora.
In questo esempio, gestisci un sito di viaggi e pubblichi una campagna pubblicitaria con tre diverse creatività pubblicitarie. Vuoi mettere in sequenza queste creatività in base alle interazioni dell'utente (visualizzazione o clic).
Quando un sito rileva per la prima volta uno spazio pubblicitario vincente, puoi memorizzare un ID e lo stato del clic per quella creatività in Shared Storage.
Ad esempio:
await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');
Ciò significa che quando vinci un'asta dell'annuncio su altri siti visitati da questo utente, puoi mostrare un annuncio diverso in base a questi dati.

Il tuo JavaScript viene eseguito in un
SharedStorageWorklet
per recuperare queste informazioni, ma il tuo codice non può interagire o comunicare
al di fuori dell'iframe o del fenced frame nella pagina principale.
Un altro esempio è il test per scoprire quale articolo ha un rendimento migliore in un contesto incorporato. Per testare questa funzionalità, puoi assegnare un utente a un gruppo di esperimento quando lo vedi sul tuo sito, quindi memorizzare l'ID gruppo in Shared Storage per accedervi in un contesto cross-site. In un altro sito, puoi utilizzare l'API Select URL per scegliere l'URL più appropriato da visualizzare in un frame isolato, in base al gruppo di esperimenti dell'utente memorizzato in Shared Storage.
L'utilizzo di Seleziona URL ti consente di prendere decisioni informate in base ai dati cross-site, senza condividere informazioni utente (come la cronologia del browser o altri dettagli personali) con un sito di incorporamento o estrarre dati sui tuoi server.
Budget
Per ridurre il rischio di perdita di dati cross-site, l'API Select URL utilizza un sistema di budgeting con una combinazione di budget a lungo e breve termine:
- Budget a lungo termine: il budget a lungo termine è
12 bit per sito chiamante, al giorno quando utilizzi
selectURL(). Questo budget viene addebitato solo se il frame che ospita l'URL selezionato esegue una navigazione di primo livello, in cui il costo viene calcolato comelog2(number of URLs). Pertanto, se fornisci 8 URL tra cui scegliere, il costo è di 3 bit. Il budget rimanente per la giornata viene calcolato come12 - (sum of bits deducted in the last 24 hours). Se il budget rimanente non è sufficiente, viene restituito l'URL predefinito (il primo URL nell'elenco) e viene registrato 1 bit se viene visitato l'URL predefinito. Budget a breve termine: i budget a breve termine sono limiti aggiuntivi per caricamento di pagina fino a quando i fenced frame non saranno completamente applicati e mentre è disponibile la generazione di report a livello di evento. Esiste un budget di 6 bit per sito chiamante, per caricamento di pagina che limita la quantità di dati che un singolo sito chiamante può divulgare utilizzando
selectURL(). Esiste anche un budget di 12 bit totali per caricamento pagina, che è un limite combinato per tutti i siti di chiamata su una pagina.Le query salvate ti consentono di riutilizzare un risultato
selectURL()precedente nella stessa pagina, riducendo l'utilizzo del budget a breve termine. QuandoselectURL()viene chiamato con un nome di query salvato per la prima volta, l'indice risultante viene memorizzato per la durata della pagina. QuandoselectURL()viene chiamato con lo stesso nome della query salvata per le chiamate successive, viene restituito l'indice memorizzato e l'operazione registrata non viene eseguita. In questo caso, il budget viene addebitato solo al primo utilizzo, ma non in caso di riutilizzo all'interno dello stesso caricamento di pagina, poiché non vengono rivelate nuove informazioni.Puoi implementare le query salvate aggiungendo la proprietà savedQuery con il nome della query che hai scelto all'oggetto options, come mostrato in questo esempio.
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;
Seleziona i casi d'uso dell'API URL
Se stai creando un sito web con funzionalità che devono funzionare su domini diversi, potresti trovarti in uno dei seguenti casi d'uso:
- Alterna creatività annuncio: limita la frequenza con cui un utente visualizza lo stesso annuncio su più siti memorizzando dati come l'ID creatività, i conteggi delle visualizzazioni e l'interazione dell'utente per determinare quali creatività vengono visualizzate dagli utenti su diversi siti. In questo modo, puoi bilanciare le visualizzazioni ed evitare la sovrasaturazione di determinati contenuti per limitare una possibile esperienza utente negativa. Per saperne di più su questo caso d'uso, consulta Ruotare le creatività degli annunci.
- Seleziona la creatività annuncio in base alla frequenza: memorizza i conteggi delle visualizzazioni del browser in Shared Storage per limitare la frequenza con cui un utente visualizza lo stesso annuncio su più siti. Per maggiori informazioni su questo caso d'uso, consulta Selezionare una creatività pubblicitaria in base alla frequenza.
- Personalizza l'esperienza utente per i clienti noti: offri un'esperienza coerente nei diversi domini. Condividi contenuti personalizzati e inviti all'azione in base allo stato di registrazione di un utente o ad altri stati dell'utente e offri un'esperienza coerente nei diversi domini. Per saperne di più su questo caso d'uso, consulta Personalizzare l'esperienza utente per i clienti noti.
- Esegui test A/B: un test A/B confronta due o più versioni di una configurazione per determinare quale ha il rendimento migliore. Puoi assegnare un utente a un gruppo sperimentale, quindi archiviare il gruppo in Shared Storage per l'accesso cross-site. In questo modo puoi raccogliere informazioni sul comportamento degli utenti nella tua rete di siti, senza monitorare le singole persone. Per ulteriori informazioni su questo caso d'uso, consulta Eseguire test A/B.
L'API Select URL con Shared Storage ti consente di sviluppare questi casi d'uso avendo accesso allo stesso spazio di archiviazione su diversi siti di primo livello.
Sperimenta con la demo
Puoi sperimentare la selezione dell'URL utilizzando la demo di Shared Storage.
Questa demo è costruita dal punto di vista di un inserzionista, una tecnologia pubblicitaria, un distributore di contenuti o un altro servizio di terze parti che vuole archiviare informazioni sui siti di diversi editori. Nella demo, lo stesso codice di terze parti viene eseguito sui siti dell'editore A e dell'editore B per ogni caso d'uso. Visita la pagina di ogni editore per vedere come vengono condivisi i dati in un contesto cross-site.
Puoi anche esaminare il codice della demo su GitHub.
Stato dell'API
L'API Select URL è in disponibilità generale. Per utilizzare l'API Select URL o attivarla per lo sviluppo locale, segui le istruzioni per registrarti a Privacy Sandbox.
| Proposta | Stato |
|---|---|
Report a livello di evento per la selezione dei contenuti (selectURL()) |
Disponibile almeno fino al 2026 |
| Budget per sito Spiegazione |
Disponibile in M119 |
| Sezione: debug dei worklet dello spazio di archiviazione condiviso con DevTools |
Disponibile in M120 |
Partecipare e condividere feedback
Tieni presente che la proposta dell'API Select URL è in fase di discussione e sviluppo ed è soggetta a modifiche.
Non vediamo l'ora di conoscere la tua opinione sull'API Select URL.
- Proposta: rivedi la proposta dettagliata.
- Discussione: partecipa alla discussione in corso per porre domande e condividere le tue informazioni.