Essential browser storage keeps your pinned cities and preferences. Functional consent enables weather cache in localStorage so refreshes are cheaper.
Analytics and advertising are optional. Google AdSense runtime code loads only after advertising consent — verification meta tags are separate from ad serving.
You can reject advertising and still use forecasts. When Stripe billing is configured, Settings offers an ad-free path instead of forcing ads.
We would rather show empty or branded slots than load trackers without a clear yes. That is a product choice, not a temporary demo quirk.