Made With Intent allows you to trigger dynamic campaigns based on Intent predictions in real-time, powered by our Optimisation Agent. These campaigns are delivered client-side.
Unlike traditional campaigns that rely on page context or predefined rules known when the page first loads, the decision to deliver a dynamic campaign may only become available once those in-flight predictions have completed.
Performance Without Render Blocking
Because campaign decisions happen dynamically, our implementation is designed to never block the initial rendering of the page. We don’t delay page content while waiting for a campaign decision, and we don’t use page-hiding techniques or “flicker fixes” that temporarily conceal content until personalisation has been resolved.
This means the customer experience and core page performance remain the priority: the page can load and render normally while predictions and campaign decisions happen independently.
Designing for Visual Stability
You should design dynamic campaign experiences to minimise layout shift (CLS) and visual disruption when a campaign is delivered. Because a campaign decision may be made after the page has started rendering, your implementation should anticipate that content could be introduced or changed after the initial page load.
Reserve Space
Where you know that campaign content may appear in a particular location, reserve appropriate space for it in the initial layout. This prevents surrounding content from shifting when the campaign is delivered and helps maintain a stable page experience.
Use Graceful Transitions
When campaign content replaces or modifies something already on the page, consider using a subtle transition rather than making the change instantaneously. A short fade or similar lightweight animation can make dynamic changes feel intentional and less visually disruptive.
Integrate with Existing Components
Where possible, design your existing theme or components to accommodate dynamic campaign states. For example, a component might support an optional campaign message or alternative content state without changing its overall dimensions or moving surrounding content.
Use the Client-Side SDK for Greater Control
For experiences that require tighter control over placement, timing or presentation, use our client-side SDK to render campaign content directly within your theme or components. This gives you control over how the experience appears while still allowing campaign delivery to respond to real-time predictions.