GEO
GEO Docs

脚本接入

通过一行 script 标签接入浏览器端 SDK,支持 SPA 路由与页面变量。

基本用法

<script
  async
  src="https://cdn.soobro.com/sdk/v1/geo.js"
  data-site="pk_live_xxxxxxxx"
  data-locale="auto"
  data-mode="fill"
></script>
属性默认说明
data-site必填站点公钥
data-localeautoauto 按 URL 策略识别语言;也可写死如 en
data-modefillfill 只补全缺失的 head 字段;replace 以平台规则为准覆盖
data-spatrue监听 pushState / popstate,路由变化时重新匹配规则
data-eventstrue上报 page_view 与 rule_match 事件(无 cookie,仅聚合统计)

脚本体积小于 12 KB(gzip),async 加载,不阻塞渲染;首次 head 更新通常在 150 ms 内完成。

页面变量

规则模板里的变量({title}、{author} 等)可以由页面注册:

<script>
  window.geo = window.geo || [];
  window.geo.push(['set', { title: '智能家居选购指南', author: 'Acme 编辑部', cover: 'https://…/cover.jpg' }]);
</script>

也可以通过 meta 标签声明,SDK 会自动读取:

<meta name="geo:title" content="智能家居选购指南" />
<meta name="geo:author" content="Acme 编辑部" />

事件

window.geo.push(['on', 'ready', (config) => console.log(config.rule?.id)]);
window.geo.push(['on', 'rulematch', ({ rule, path }) => {}]);
window.geo.push(['on', 'error', (err) => {}]);

降级行为

配置拉取失败(网络、站点暂停、公钥错误)时 SDK 不改动现有 head,并触发 error 事件;站点仍按原样渲染。