Experimentation
Dynamic content
One change, every page, each showing its own data.
A test is usually an idea about a kind of page, not about one page. Dynamic content lets a change carry each page's own data, so a banner built once greets each visitor with the campaign they arrived from, and on a shop a sticky bar shows each product's own name and price. You insert the data with a picker that lists the page's real values, so you see what a visitor will see before you save.
Product data is read out of the box from structured data, Shopify and the analytics data layer: name, brand, SKU, price formatted in the page's own currency and language, stock, rating, review count and image. Campaign parameters are remembered for the whole visit, so a landing message can match the ad somebody clicked three pages earlier. Visitor, date and cart data cover the rest: new or returning, language and device, a live countdown to a dispatch cut-off, and the distance to a free-shipping threshold.
None of it is limited to shops. Campaign, visitor and time data are on every page, and the site's own content from Next.js, Nuxt, Shopify, the data layer or structured data is often its own CMS copy: the delivery promise, the USPs, the top-bar message.
It is safe by default. If a page does not have the data, the element hides itself or shows a fallback you choose, so a visitor never sees a broken placeholder. Values are always shown as plain text, an address filled from data has to be a web address, and a page without data in its tests does no data work at all.