跳转到主要内容

createSession(options)Session

为一个具体的用户对话创建一个广告会话。
publisherToken
string
必填
你的 publisher token。
userId
string
必填
在用户整个生命周期内保持不变的唯一标识(用于个性化、频次封顶、奖励广告)。
conversationId
string
必填
对话或聊天线程的唯一 ID。
enabledPlacementCodes
string[]
本次对话启用的 placement code。默认为 ['inlineAd']
character
object
用于上下文广告匹配与个性化的角色元数据。
regulatory
object
隐私 / consent 信号。
userEmail
string
用户邮箱,用于频次封顶的去重。
variantId
string
发布方提供的用户分群标识(用于 A/B 测试)。
onEvent
function
每个广告生命周期事件触发时的回调。详见下方”支持的事件”章节。
onDebugEvent
function
SDK 内部诊断事件的回调。接收 (name, data?)——在接入期间排查 preload / session 行为时很有用。默认关闭。

Session 方法

session.addMessage(message, options?)

向 SDK 注册一条聊天消息。在合适的时机会触发一次防抖后的预加载。
message
Message
必填
见下方 Message 结构。
options
object

session.createAd(messageId, options?)Ad

为特定助手消息创建一个 Ad。该方法不会等待广告——一旦有广告可用就会渲染。对同一个 messageId + code 多次调用会返回同一个实例。
messageId
string
必填
广告所属助手消息的 ID。
options
object

session.render(options)Ad

createAd + mount 的一次性便捷封装。
messageId
string
必填
广告所属助手消息的 ID。
element
HTMLElement
必填
作为广告 iframe 宿主的元素。
code
string
Placement code(默认 'inlineAd')。
theme
string
视觉主题。

session.updateOptions(partial)

在活跃会话上实时更新与预加载相关的配置。接受的字段:variantIdregulatoryuserEmailadvertisingIdvendorId。变更会在下次 /preload 时读取,因此会在下一条用户消息生效——无需重建会话。
publisherTokenuserIdconversationIdenabledPlacementCodescharacter 不可实时更新。会话中途修改它们会让 /init 注册与后续请求不一致,或者让已累积的消息历史指向错误的人设。请改为重建会话。

session.destroy()

清理内部状态、取消进行中的预加载,并停止后续预加载请求。请在对话结束或页面卸载时调用。destroy() 之后,addMessagecreateAdrender 等修改型方法会抛出异常。

session.getSessionId()string | null

服务端分配的 session ID。首次 /preload 成功之前为 null

session.isDisabled()boolean

若服务端在 /init 响应中永久关闭了该会话(例如地域限制),返回 true。后续预加载会被跳过。

session.isDestroyed()boolean

destroy() 被调用过则返回 true

session.getMessages()readonly Message[]

会话已记录消息的快照,按插入顺序排列。请勿原地修改,也不要长期缓存——当消息数量超过上限时,内部数组会被替换为裁剪后的副本。

session.getPreloadTimeout()number

当前 /preload 请求超时(毫秒)。可能由 /init 响应中的服务端配置覆盖。

Ad 方法

ad.mount(element)

把广告 iframe 挂载进指定的 DOM 元素。每个 Ad 实例只能挂载一次——重复挂载会抛出异常。
element
HTMLElement
必填
作为广告 iframe 宿主的元素。

ad.destroy()

把 iframe 从 DOM 中移除,并释放所有监听器。幂等——可以安全地多次调用。

Message 结构

id
string
必填
消息的唯一、稳定 ID。
role
'user' | 'assistant'
必填
消息作者的角色。
content
string
必填
消息文本。
createdAt
Date
必填
消息创建时间戳。

支持的事件

ad.clicked

用户点击了广告。

ad.viewed

用户已查看广告。

ad.filled

有可投放的广告。

ad.no-fill

没有可投放的广告。

ad.render-started

在第一个 token 到达之前触发。

ad.render-completed

在最后一个 token 到达之后触发。

ad.error

出现错误时触发。

video.started

视频开始播放时触发。

video.completed

视频播放完成时触发。

reward.granted

用户在激励广告流程中获得奖励时触发。