Docs / Capability guide

CreativeRenderer extension

Wrap approved banner markup for your application's display layout.

All capabilities · Related guide · Agent prompt for this capability

When to use this example

Use a CreativeRenderer when the returned ad markup needs a presentation wrapper supplied by your application. The banner example shows where to make that change while retaining the approved creative content.

What the example gives you

The starter wraps banner HTML and escapes the wrapper attributes. It does not sanitize the creative itself. Although the host supports display and native rendering, this starter accepts banner only; other media need their own implementation.

Before you start

Go for local tests. Host installation also requires a supported kind, reachable gRPC address, matching descriptor/entitlement and an installed stack product. Read the packaged README for policy configuration.

Run the example

Download extension-sidecar

Extract the archive and follow README.md for setup, commands, and expected results. Start with go run . -kind creative_renderer -addr 127.0.0.1:50051. Local tests use sample data.

Follow the archive's service configuration and deployment steps before registering or installing it in Riptide. The prerequisites above describe the access and connectivity it needs.

Connect it to your application

  1. Run go test -race ./... in the downloaded starter, then start -kind creative_renderer. Read the corresponding fixture and configure the policy before testing live requests.

  2. CreativeRenderer uses ExtensionService Describe, Health and Invoke with method Render. Render only supported media while preserving the host's tracking and privacy fields. The serving host dispatches this kind for platform-rendered display/native on /ortb and /decision. Treat markup as untrusted; test display/native and reject unsupported video/audio.

  3. Run the gRPC smoke tests, then install using the stack-product workflow. Verify timeout and fallback behavior and remove the activation to test rollback.

Check the result

The descriptor matches the selected kind, gRPC calls return the documented result, and malformed/unsupported requests fail explicitly. A host timeout skips the extension within the request budget.

API operations