Skip to main content
We are preparing a new v4 release of the React SDK. The documentation below covers the current shipping version — once v4 lands, this page will be updated.

React Demo Project

See how easy it is to integrate high-performance ads into your React app using our lightweight SDK.

Requirements

  • React: 18.3.1 or later

Getting started

1. Installation

To get started, you will need to set up a publisher account to get a publisherToken and code.

2. Initialize AdsProvider

The AdsProvider handles all data-fetching logic and must have access to the chat messages. Place it high enough in your component tree so it can contain all ad placements.

3. Show your first ad

An ad slot is a designated area in your UI where an ad can be rendered. In most cases, it appears below a chat message. During onboarding, you’ll receive a unique code for each ad slot you plan to use. Copy the markup <InlineAd /> and place it in your application where it should be rendered. Don’t forget to assign messageId as a unique identifier. For example, if you have a MessageList component, you can show an ad after each message like this (every message will have a unique ad displayed because of messageId).

API documentation

AdsProvider properties

string
required
Your unique publisher token.
array
required
List of messages between the assistant and the user.
string
required
Unique identifier that remains the same for the user’s lifetime (used for retargeting and rewarded ads).
string
Email of the user.
string
required
Unique ID of the conversation.
array
required
Placement codes enabled for the conversation. Example: ['inlineAd'].
object
Character object used in this conversation.
object
Regulatory object used in this conversation.
string
Publisher-provided identifier for the user cohort (for A/B testing).
function
Callback triggered when an event occurs. See Supported events for more details.
boolean
Flag indicating if the ads are disabled.Note: This does not disable the display of old ads; that behavior is controlled by staleAdsHandling.
string
Determines how stale ads (ads not linked to the latest message) are handled.
  • preserve - keep displaying the last anchored ad until it’s replaced by a new ad
  • hide (default) - hide the ad when it becomes stale

InlineAd properties

string
required
Placement code provided during onboarding.
string
required
Unique ID of the message.
string
Theme of the ad, e.g. light or dark.
function
Wrapper function to wrap the ad content.

Supported Events

ad.clicked

The user has clicked the ad.

ad.viewed

The user has viewed the ad.

ad.filled

Ad is available.

ad.no-fill

Ad is not available.

ad.render-started

Triggered before the first token is received.

ad.render-completed

Triggered after the last token is received.

ad.error

Triggered when an error occurs.

video.started

Triggered when the video playback starts.

video.completed

Triggered when the video playback finishes.

Guides

Controlling when ads load

You can fine-tune ad frequency by controlling when new messages are passed into AdsProvider. This allows you to adjust the ratio of ads to messages dynamically.

Handling no-fill events

You can notify when the ad is not available by using the onEvent callback.