分析 交叉
能够进行跨产品互动会话跟踪的公用事业
这个寄存器是公众面对的版本
@atlassiansox/analytics-cross-product-interaction-client. 功能从
要启用的私有软件包 @atlaskit ,最终目标是
在现有软件包中去掉这些函数以避免代码重复.
该图书馆的功能旨在配合 analytics-web-client 财务报告和审定财务报表
analytics-cross-product-interaction-client ,并使用这些功能
他们自己不会回来的.
概览
Analytics Web客户端生成交互会话数据并存储在会话存储中. 这个 数据形状如下:
"interactionSession": {
"id": "123456789",
"prevId": "912345678",
"bridge": "atlassianSwitcher",
"source": "jira"
}
此套件曝光 : useCrossProductUrlWrapper,用于取回
交互会话数据并将其作为 URL 参数附加到交叉产品导航 URL
3份观察合同
该套件还暴露了用于观测交叉产品的独立运输构件 不添加或更改 XPIS 的导航 :
xpcDestinationResolver提供可控产品、子产品、路由家庭和匹配值 加上四个结果的目的地分辨率:same, (中文(简体) ),cross, (中文(简体) ),unknown财务报告和审定财务报表excluded。 。 。 .xpcNavigationObservation检查 XPIS 的存在,建立新的、保护隐私的离开 和到达观察.xpcActivationCoordinator确保本地和拥有的最终沉积观察者完成一个用户 最多一次启动.xpcNativeDepartureCapture授权安装click财务报告和审定财务报表auxclick在产品所有者手中捕获 生成到被截获的渲染器下沉.xpcFinalSinkDepartureCapture带有可控捕获的 权威渲染器 和导航装置。 计划保留了以后的必由性和路由器值, 独立入门整合.xpcArrivalCapture检查本地到达的 URL, 只报告包含 XPIS 的目的地 证据; URL从不输入观察.xpcNavigationProvider制作一个产品源头的本地观察者,初始到达捕获,共享 活化协调与渲染器从产品所控制的配置中取出最终沉入钩.xpcAwcNavigationReporter是产品已有的Analytics Web客户端的候选边界. 它故意省略了互动段ID,直到其生产隐私处理 核准.
产品提供自己的受控登记册条目、来源身份、推出门和记者. 共享包不注册 GASv3 事件 。 产品适配器可使用特性标注 需要验证的候选人Analytics Web 客户端报告员, 但必须在事件之前一直禁用 计划、频道、隐私控制和所有权均获得批准。 候选人代码不能证明 活动注册或生产.
Atlassian桥内的用途
一个桥是一个组件,提供连接/导航到不同的Atlassian页面,例如:
return <Link href="https://hello.atlassian.net/wiki"> Confluence </Link>
要将交互会话属性作为 UTM 参数嵌入到链接中, 请调用我们的钩子
useCrossProductUrlWrapper 生成一个将链接围起来的函数.
然后用钩子所包裹的 URL 替换任何 URL 实例
import { useCrossProductUrlWrapper } from '@atlaskit/analytics-cross-product';
const withInteractionSession = useCrossProductUrlWrapper({
bridge: 'Bridge Name', // The name of your bridge component e.g. atlassianSwitcher
product: 'Product Name', // The product you are hosted on e.g. jira
subProduct: 'SubProduct Name', // Optional - include if required
});
return (
<Link href={withInteractionSession("https://hello.atlassian.net/wiki")}> Confluence </Link>
)
这个 useCrossProductUrlWrapper 钩子包含类型选项 CrossProductUrlOptions 这可能是
必要时从我们的图书馆导入
返回的包装器功能( E)withInteractionSession 以 URL 作为
字符串,并返回一个字符串。 上述呼吁的回报价值如下:
https://hello.atlassian.net/wiki?xpis=e2JyaWRnZToiQnJpZGdlIE5hbWUiLGlkOiIxMjM0NTY3ODkiLHNvdXJjZToiUHJvZHVjdCBOYW1lLVN1YlByb2R1Y3QgTmFtZSJ9
中编码的交互式会话数据 ?xpis 查询参数(跨产品交互)
届会)
看我们的 实例。要在当地运行示例:
yarn start @atlaskit/analytics-cross-product
参数生成和再生成
交互会话数据只有在 URL 已经生成时才会被附加到 URL 分析网络客户端,存在于会话存储中. 如果找不到交互式会话数据,则 钩子不会修改 URL 。 钩子被订阅为 DOM 事件, 如果 生成新的 Interaciton 会话,并将动态更新 URL 以包含正确的 参数
相对 URL
包装器支持相对的URL,例如:
withInteractionSession("/wiki")
将返回
"/wiki?xpis=e2Jya..."
我们使用 URL 进行操作。 说明:
- URL 不得有后端斜线( 即使用)
/wiki改为/wiki/(中文(简体) ) - 返回输出中将增加一先行斜线(即:.
wiki将变成/wiki?xpis=...(中文(简体) ) - 将保留现有的查询参数(
/wiki?a=b变成/wiki?a=b&xpis=e2Jya...(中文(简体) )
使用身份证明
当链接被身份包裹时(通过为 continue 重新定向中的参数,身份
使用 % 编码(即. &key=value 变成 %26key%3Dvalue) (中文(简体) ).
确保我们的包装被调用到 href 在此之前 成为身份。 这将确保我们
查询参数也被正确编码为 %, 并在身份重定向后持续