> 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/3d-placements.md).

# 3D product placements

Some campaigns are physical objects rather than flat images — a branded can on a desk, a product on a shelf, an item a player can walk around. bxg serves these as 3D models, and the integration is the same idea as a 2D surface: drop a placeholder, give it a slot, ship.

## Adding a 3D placement

1. From the **Place Actors** panel, drag an **AdPlaceholder3D** into your level.
2. Position it where the product should appear — a tabletop, a shelf, a stand.
3. Set its **Slot Id** to the slot we gave you, in the **bxg** category of the Details panel.
4. Press Play.

At runtime the SDK fetches the model booked for that slot and loads it in place. As with 2D surfaces, the slot looks up its current booking from our side, so the product can change between campaigns with no new build from you.

## Settings

The 3D placeholder shares the common bxg settings — **Slot Id**, **Load Ad on Begin Play**, **Automatic Refresh Interval**, **Refresh Out Of Sight** (see [Settings reference](/documentation/unreal-engine/settings-reference.md)) — plus one of its own:

| Setting            | What it does                                                                                                                                      | Default |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| **Enable Physics** | Let the loaded model behave as a physical object (fall, settle, be knocked around) instead of sitting static. Leave off for fixed display pieces. | off     |

## How it loads

Booked 3D assets are delivered as glTF and loaded at runtime via the bundled glTFRuntime — there's nothing for you to import or cook into your project ahead of time, and your project's asset library isn't touched. The model is instantiated at the placeholder when its booking resolves.

## Fallback and measurement

* **Fallback:** if there's no active booking or the player is offline, the placeholder stays empty (or shows your placeholder model if you set one), never a broken state.
* **Measurement:** view-time is tracked the same way as 2D — the SDK counts time while the object is in the player's view and not occluded, and reports it per booking.

## A note on fit

3D placements draw more attention than a flat poster, so they work best where a product naturally belongs in the scene. You place every one of them; nothing appears anywhere you didn't put a placeholder. See [Staying in control](/documentation/reference/staying-in-control.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/3d-placements.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.
