Prism ARDocsGet the SDK
Ad FormatsDimensional Ads

Ad Formats

Dimensional Ads

Display, video, and 3D placements dynamically anchored to real surfaces in the user's environment. Context-aware, cookie-free targeting by architecture.

What Are Dimensional Ads?

Dimensional placements use the device's spatial understanding of the world — floor planes, walls, tables — to anchor ad surfaces in real space. Unlike overlay ads that live in UI windows, dimensional ads exist in the user's environment and move with the world as they look around.

Privacy by Design

Dimensional ads are targeted by environment geometry — floor vs. wall vs. table — not by user identity. No cookies, no device fingerprinting. Targeting is fully contextual.

Placement Types

Surface Billboard

Flat display or video panel anchored to a wall or large vertical surface.

Table Top

Compact placement anchored to horizontal surfaces like desks or coffee tables.

3D Object

Photorealistic 3D product model placed in the scene. Supports USDZ and GLB.

Prerequisites

  • ARKit (visionOS) or ARCore / Android XR scene understanding enabled in your app
  • Camera and world-tracking permissions granted by the user
  • Placement type set to Dimensional in the dashboard

Adding a Dimensional Placement

Dimensional placements are added to a RealityKit scene (visionOS) or ARCore session (Android XR). The SDK handles surface detection and anchor lifecycle automatically.

Swift (visionOS — RealityView)
import PrismAR
import RealityKit
import SwiftUI

struct ImmersiveView: View {
    var body: some View {
        RealityView { content in
            // The SDK registers surface anchors and
            // places ads when suitable surfaces are found.
            await PrismAR.addDimensionalPlacement(
                to: content,
                placementId: "YOUR_DIMENSIONAL_PLACEMENT_ID",
                surfaceType: .wall  // .floor, .table, .any
            )
        }
    }
}
Kotlin (Android XR)
import ai.prismar.sdk.DimensionalPlacement
import ai.prismar.sdk.SurfaceType

// In your ARCore session update loop:
PrismAR.configureDimensional(
    session = arSession,
    placementId = "YOUR_DIMENSIONAL_PLACEMENT_ID",
    surfaceType = SurfaceType.WALL // FLOOR, TABLE, ANY
)

3D Creative Specs

AttributevisionOSAndroid XR
FormatUSDZGLB / GLTF 2.0
Max file size50 MB50 MB
Max polygons100k triangles100k triangles
AnimationsUSD Skeletal / USDZglTF animations
Textures4096 × 4096 max4096 × 4096 max

Spatial Measurement

Dimensional ads include signals unavailable to 2D media:

Approach Distance

How close the user walked toward the placement.

Dwell Time

Total time the placement was within the field of view.

Gaze Fixation

Eye-tracking fixation duration on the placement (visionOS only).

Interaction

Taps, drags, and pinch events on 3D objects.