Utilizza un worklet dello spazio di archiviazione condiviso per eseguire test A/B.
L'API Shared Storage è una proposta di Privacy Sandbox per l'archiviazione cross-site per uso generico, che supporta molti possibili casi d'uso. Un esempio è il test A/B, disponibile per il test in Chrome 104.0.5086.0 e versioni successive.
Puoi assegnare un utente a un gruppo di esperimenti, quindi archiviare il gruppo in Shared Storage per accedervi in un ambiente cross-site.
Prova il test A/B
Per sperimentare i test A/B con Shared Storage, verifica di utilizzare Chrome 104.0.5086.0 o versioni successive. Abilita tutte le API per la privacy degli annunci in chrome://settings/adPrivacy.
Puoi anche attivare Shared Storage con il flag --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames nella riga di comando.
Sperimenta con esempi di codice
Per verificare se un esperimento ha l'effetto desiderato, puoi eseguire test A/B su più siti. In qualità di inserzionista o produttore di contenuti, puoi scegliere di visualizzare contenuti o annunci diversi in base al gruppo a cui è assegnato l'utente. L'assegnazione del gruppo viene salvata nello spazio di archiviazione condiviso, ma non può essere esfiltrata.
In questo esempio:
ab-testing.jsdeve essere incorporato in un frame, che mappa un controllo e due contenuti dell'esperimento. Lo script chiama il worklet dello spazio di archiviazione condiviso per l'esperimento.ab-testing-worklet.jsè il worklet di archiviazione condivisa che restituisce il gruppo a cui è assegnato l'utente, determinando quale annuncio viene mostrato.
// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
return Math.round(Math.random());
}
async function injectContent() {
// Register the Shared Storage worklet
await window.sharedStorage.worklet.addModule('ab-testing-worklet.js');
// Assign user to a random group (0 or 1) and store it in Shared Storage
window.sharedStorage.set('ab-testing-group', getExperimentGroup(), {
ignoreIfPresent: true,
});
// Run the URL selection operation
const fencedFrameConfig = await window.sharedStorage.selectURL(
'ab-testing',
[
{ url: `https://your-server.example/content/default-content.html` },
{ url: `https://your-server.example/content/experiment-content-a.html` }
],
{
resolveToConfig: true
}
);
// Render the chosen URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectContent();
class SelectURLOperation {
async run(urls, data) {
// Read the user's experiment group from Shared Storage
const experimentGroup = await sharedStorage.get('ab-testing-group');
// Return the corresponding URL (first or second item in the array)
return urls.indexOf(experimentGroup);
}
}
register('ab-testing', SelectURLOperation);
Use cases
All available use cases for Select URL API can be found in this section. We'll continue to add examples as we receive feedback and discover new test cases.
- Rotate ad creatives: Store data, such as creative ID and user interaction, to determine which creative users' see across different sites.
- Select ad creatives by frequency: Use view count data to determine which creative users' see across different sites.
- Run A/B testing: You can assign a user to an experiment group, then store that group in Shared Storage to be accessed cross-site.
- Customize experience for known customers: Share custom content and calls-to-action based on a user's registration status or other user states.
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.