This demo shows some Shared Storage API use cases.
The following use-cases have been added:
- Frequency capping
- A/B testing
- Creative rotation
- Known customer
Visit https://shared-storage-demo.web.app to see the demo.
To run this demo, follow the instructions for enabling the Privacy Sandbox Ads APIs experiment flag at chrome://flags/#privacy-sandbox-ads-apis.
The ad rendered in a fenced frame must be served from an HTTPS origin. The ad rendered in a fenced frame must be served from an HTTPS origin, but the Firebase emulator does not support HTTPS localhost. Therefore, we will use nginx
to setup a reverse proxy that takes the request at HTTPS 4337 port and proxies it to HTTP 8087.
- Install
mkcert
by following the instructions for your operating system. - Run
mkcert -install
. - Create a folder to store the certificates in. In this example, we will use
mkdir ~/certs
. - Navigate to the certificate folder:
cd ~/certs
. - Run
mkcert localhost
.
For an in-depth explanation of this section, see the "How to use HTTPS for local development" article.
Setup reverse proxy with nginx
- Install
nginx
(Mac, Linux, Windows). - Find the
nginx
configuration file location based on your operating system (If you usedhomebrew
on Mac, it is under/Users/[USER-NAME]/homebrew/etc/nginx/nginx.conf
). - Add the 4437
server
block into thehttp
block in the config. Replace[USER-NAME]
with the path that your certificate is stored in:
http {
# HTTPS server
server {
listen 4437 ssl;
ssl_certificate /Users/[USER-NAME]/certs/localhost.pem;
ssl_certificate_key /Users/[USER-NAME]/certs/localhost-key.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8087/;
proxy_read_timeout 90;
}
}
}
- Stop the
nginx
server withnginx -s stop
- Restart the
nginx
server withnginx
The above nginx
configuration proxies https://localhost:4437
to http://localhost:8087
(Advertiser server).
- Setup Firebase tools
git clone https://github.com/googlechromelabs/shared-storage-demo
cd shared-storage-demo
npm install
npm run dev
And visit http://localhost:8080
for the main page
npm run deploy