跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.kontext.so/llms.txt

Use this file to discover all available pages before exploring further.

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)

在活跃会话上实时更新与预加载相关的配置。接受的字段:variantIdregulatoryuserEmail。变更会在下次 /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

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