Korzystanie z pamięci współdzielonej pozwala określić, jaką kreację widzi użytkownik w różnych witrynach.
Shared Storage API to interfejs Privacy, Propozycja piaskownicy do zwykłych obciążeń, pamięci w wielu witrynach, która obsługuje wiele możliwych zastosowań. Jednym z przykładów jest rotacja kreacji, do testowania w Chrome 104.0.5086.0 i nowszych.
Dzięki rotacji kreacji możesz przechowywać takie dane jak identyfikator kreacji, i interakcję użytkownika, by określić, zobacz w obrębie w różnych witrynach.
Uruchom Worklet Shared Storage, aby wybrać adres URL z podanej listy na podstawie a następnie wyrenderować kreację w zabezpieczonej ramce. Tej opcji można użyć aby wybrać nowe reklamy lub inne treści.
Wypróbuj rotację kreacji
Aby poeksperymentować z rotacją kreacji za pomocą pamięci współdzielonej, upewnij się, że używasz Chrome w wersji 104.0.5086.0 lub nowszej. Włącz wszystkie interfejsy Ad Privacy API w sekcji chrome://settings/adPrivacy
.
Możesz też włączyć pamięć współdzieloną, używając flagi --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
w wierszu poleceń.
Eksperyment z przykładowym kodem
Reklamodawca lub producent treści może stosować różne strategie wobec i rotacji treści lub kreacji w celu zwiększenia skuteczności. pamięci współdzielonej można używać do uruchamiania różnych strategii rotacji, takich jak rotacji sekwencyjnej i rozłożonej równomiernie w różnych witrynach.
W tym przykładzie:
- Element
creative-rotation.js
jest osadzony w ramce. Skrypt ten określa, które reklamy są najważniejsze ( waga), i wywołania do Workletu w celu określenia treści do wyświetlenia. creative-rotation-worklet.js
to Worklet pamięci współdzielonej określający ważony rozkład treści i zwrotów, które powinny być wyświetlane.
// 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('content-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);
Przypadki użycia
To tylko niektóre z możliwych zastosowań pamięci współdzielonej. Na dodajemy przykłady. otrzymuj opinie i odkrywać nowe przypadki użycia.
Wybór treści
Wybieraj i wyświetlaj różne treści w różnych witrynach w chronione ramki na podstawie informacji zbierane w pamięci współdzielonej. Bramką wyjściową w tych przypadkach użycia jest wybór adresu URL.
- Rotacja kreacji: Przechowuj dane, takie jak identyfikator kreacji, liczba wyświetleń i interakcje użytkowników, aby określać, którzy użytkownicy które można zobaczyć na różnych stronach.
- Testy A/B: Możesz przypisać użytkownika do grupy eksperymentalnej, a następnie zapisać tę grupę w pamięci współdzielonej, aby można było z niej korzystać w innych witrynach.
- Funkcje dostosowane do potrzeb użytkowników: udostępniać treści niestandardowe i wezwania do działania na podstawie stanu rejestracji lub innych stanów użytkownika;
Generowanie raportów podsumowujących
Zbieranie informacji za pomocą pamięci współdzielonej oraz generowanie zaszumionego, zbiorczego raportu podsumowującego. Bramką wyjściową dla tych przypadków użycia jest Private Aggregation API.
- Pomiar zasięgu wśród unikalnych użytkowników: Wielu producentów treści i reklamodawców chce się dowiedzieć, ile unikalnych osób zobaczyło ich treści. Rejestrowanie pierwszego użytkownika za pomocą pamięci współdzielonej zobaczyli Twoją reklamę, umieszczony film lub publikację, zliczanie tego samego użytkownika w różnych witrynach. Następnie za pomocą interfejsu Private Aggregation API możesz wygenerować raport podsumowujący swój zasięg.
- Pomiar danych demograficznych: Producenci treści często chcą poznać dane demograficzne swoich z całego świata. Za pomocą pamięci współdzielonej możesz rejestrować dane demograficzne użytkowników w (np. z własnej witryny) i używaj zagregowanych danych w raportach na jej temat w wielu innych witrynach, np. zawierających treści umieszczone na stronach zewnętrznych.
- Pomiar częstotliwości K+: Czasami określa się ją jako „efektywną częstotliwość”. często istnieje minimalna liczba, wyświetlenia, zanim użytkownik rozpozna lub zapamięta określone treści (często na kontekst wyświetleń reklamy). Możliwość korzystania z pamięci współdzielonej do tworzenia raportów unikalnych użytkowników, którzy widzieli treści co najmniej K razy.
Angażuj odbiorców i dziel się opiniami
Propozycja wspólnego miejsca na dane jest w trakcie dyskusji i może ulec zmianie w przyszłości. Jeśli wypróbujesz ten interfejs API i chcesz przekazać nam swoją opinię, chętnie poznamy jego opinię.
- GitHub: przeczytaj propozycji, dokumentu dotyczącego zasięgu, przesyłania pytań i udziału w dyskusjach.
- Ogłoszenia dotyczące interfejsu Shared Storage API: dołącz do naszej listy adresowej lub dołącz do wcześniejszych ogłoszeń.
- Pomoc dla deweloperów: zadawaj pytania i dołączaj do dyskusji na Repozytorium pomocy dla deweloperów Piaskownicy prywatności.