Mit einem freigegebenen Speicher können Sie festlegen, welches Creative einem Nutzer auf Websites präsentiert wird.
Die Shared Storage API ist ein Privacy Sandbox-Vorschlag für allgemeinen, websiteübergreifenden Speicher, der viele Anwendungsfälle unterstützt. Ein Beispiel hierfür ist die Creative-Rotation, die in Chrome 104.0.5086.0 und höher getestet werden kann.
Bei der Creative-Rotation können Sie Daten wie Creative-ID, Aufrufzahlen und Nutzerinteraktionen speichern, um festzulegen, welches Creative Nutzer auf verschiedenen Websites sehen.
Führen Sie ein Shared Storage-Worklet aus, um basierend auf den gespeicherten Daten eine URL aus einer bereitgestellten Liste auszuwählen und das Creative dann in einem abgegrenzten Frame zu rendern. So können Sie neue Anzeigen oder andere Inhalte auswählen.
Creative-Rotation ausprobieren
Wenn Sie die Creative-Rotation mit freigegebenem Speicher ausprobieren möchten, müssen Sie Chrome 104.0.5086.0 oder höher verwenden. Aktivieren Sie unter chrome://settings/adPrivacy
alle APIs zum Datenschutz bei Werbung.
Sie können den freigegebenen Speicher auch mit dem Flag --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
in der Befehlszeile aktivieren.
Mit Codebeispielen experimentieren
Werbetreibende oder Creator können verschiedene Strategien auf eine Kampagne anwenden und die Inhalte oder Creatives rotieren, um die Effektivität zu steigern. Mit freigegebenen Speichern können Sie verschiedene Rotationsstrategien wie die sequenzielle und die gleichmäßige Rotation auf verschiedenen Websites ausführen.
In diesem Fall gilt Folgendes:
creative-rotation.js
ist in einen Frame eingebettet. In diesem Script wird festgelegt, welche Anzeigen am wichtigsten sind ( Gewicht), und das Worklet wird aufgerufen, um zu bestimmen, welche Inhalte angezeigt werden sollen.creative-rotation-worklet.js
ist das Shared Storage-Worklet, das die gewichtete Verteilung für die Inhalte und Rückgaben bestimmt, die angezeigt werden sollen.
// 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('creative-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();
class SelectURLOperation {
async run(urls, data) {
// Read the rotation mode from Shared Storage
const rotationMode = await 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 sharedStorage.get('creative-rotation-index');
index = parseInt(currentIndex, 10);
const nextIndex = (index + 1) % urls.length;
await 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);
Anwendungsfälle
Dies sind nur einige der möglichen Anwendungsfälle für freigegebenen Speicher. Wir werden weitere Beispiele hinzufügen, sobald wir Feedback erhalten und neue Anwendungsfälle entdecken.
Inhaltsauswahl
Anhand von Informationen, die im freigegebenen Speicher erfasst wurden, können Sie unterschiedliche Inhalte auf verschiedenen Websites in abgegrenzten Frames auswählen und anzeigen. Das Ausgabe-Gatter für diese Anwendungsfälle ist die URL-Auswahl.
- Creative-Rotation: Daten wie Creative-ID, Aufrufzahlen und Nutzerinteraktionen werden gespeichert, um zu ermitteln, welches Creative Nutzern auf verschiedenen Websites präsentiert wird.
- A/B-Tests: Sie können einen Nutzer einer Testgruppe zuweisen und diese Gruppe dann im freigegebenen Speicher speichern, damit auf sie websiteübergreifend zugegriffen werden kann.
- Personalisierte Nutzererfahrung: Sie können benutzerdefinierte Inhalte und Calls-to-Action basierend auf dem Registrierungsstatus oder anderen Nutzerstatus teilen.
Zusammenfassungsberichte erstellen
Informationen mit Shared Storage erfassen und einen ungenauen zusammengefassten Bericht erstellen Das Ausgabe-Gatter für diese Anwendungsfälle ist die Private Aggregation API.
- Messung der Unique Reach: Viele Creator und Werbetreibende möchten wissen, wie viele einzelne Nutzer ihre Inhalte gesehen haben. Mit dem freigegebenen Speicher können Sie erfassen, wann ein Nutzer Ihre Anzeige, Ihr eingebettetes Video oder Ihre Publikation zum ersten Mal gesehen hat, und verhindern, dass derselbe Nutzer auf verschiedenen Websites doppelt gezählt wird. Anschließend können Sie mit der Private Aggregation API einen zusammenfassenden Bericht für Ihre Reichweite erstellen.
- Demografische Analyse: Oft möchten Creator die demografische Zusammensetzung ihrer Zuschauer besser verstehen. Sie können den freigegebenen Speicher verwenden, um demografische Nutzerdaten in einem Kontext zu erfassen, in dem Sie sie haben, z. B. auf Ihrer Website, und aggregierte Berichte verwenden, um Berichte zu vielen anderen Websites zu erstellen, z. B. zu eingebetteten Inhalten.
- Häufigkeitsmessung vom Typ „K +“: Manchmal auch als „effektive Häufigkeit“ bezeichnet. Es gibt oft eine Mindestanzahl von Aufrufen, bevor ein Nutzer bestimmte Inhalte erkennt oder sich daran erinnert (häufig im Zusammenhang mit Anzeigenaufrufen). Mit dem gemeinsamen Speicher können Sie Berichte zu einzelnen Nutzern erstellen, die sich einen Inhalt mindestens K-mal angesehen haben.
Feedback geben und erhalten
Der Vorschlag für die Shared Storage API befindet sich in der aktiven Diskussion und Entwicklung und kann sich daher ändern.
Wir würden uns sehr über Ihr Feedback zur Shared Storage API freuen.
- Angebot: Sehen Sie sich das detaillierte Angebot an.
- Diskussion: Nehmen Sie an der laufenden Diskussion teil, um Fragen zu stellen und Ihre Erkenntnisse zu teilen.
Auf dem Laufenden bleiben
- Mailingliste: Melden Sie sich für unsere Mailingliste an, um die neuesten Updates und Ankündigungen im Zusammenhang mit der Shared Storage API zu erhalten.
Benötigst du Hilfe?
- Entwicklersupport: Im Repository für den Privacy Sandbox-Entwicklersupport können Sie sich mit anderen Entwicklern austauschen und Antworten auf Ihre Fragen erhalten.