> For the complete documentation index, see [llms.txt](https://brandsxgames.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brandsxgames.gitbook.io/documentation/unreal-engine/advanced.md).

# Refresh, fallbacks & Blueprint hooks

Everything here is optional. A placement with just a slot ID and a fallback already works. Reach for these when you want more control over how ads behave in your world.

## In-session rotation

Set **Automatic Refresh Interval** to a number of seconds and the placement will pull a fresh booking on that cadence while the game runs — useful for long sessions or hub areas the player returns to. Leave it at `0` and the placement loads once and holds that creative for the session. Either way, rotation **across** sessions and over the campaign calendar happens on our side regardless; this setting is only about swapping within a single play session.

## Swapping without the player seeing it

Turn on **Refresh Out Of Sight** and an in-session swap will only happen while the placement is outside the player's view. The creative changes when no one is looking, so there's never a visible pop or flicker mid-scene. Combine it with a refresh interval for hub areas the player circles back to.

## Fallbacks

The **Fallback Texture** (2D) is shown whenever there's no creative to display — no active booking, no connection, or a failed load. Set it on every surface so the slot always looks deliberate. There's no state in which a placement shows an error to the player; a failed load keeps the fallback and retries on the next load opportunity.

## Transition hooks (Blueprint)

If you want a swap to feel smooth — a fade, a flicker, a "now loading" treatment — the actor exposes events you can implement in a Blueprint subclass. None are required; they're hooks, not obligations:

* **On Ad Loaded** — an assignable event that fires with the booking ID once a creative is applied. Bind to it to trigger your own logic.
* **Before Swap** / **After Swap** — fire around a creative change, so you can drive a transition in and out.
* **On Load Finished** — fires when a load attempt completes.

A typical use: drive a short material fade in **Before Swap** / **After Swap** so creatives cross-fade instead of popping. Because these are standard Blueprint events on a subclass, none of this touches your game's own code.

## Custom geometry recap

Any mesh can be a 2D surface. Assign your mesh as the **Ad Mesh**, give the actor a **Base Material** that exposes a texture parameter, and the SDK writes the creative into that parameter at runtime via a dynamic material instance. For physical products, use [3D product placements](/documentation/unreal-engine/3d-placements.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://brandsxgames.gitbook.io/documentation/unreal-engine/advanced.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
