asd-javascript-sdk
Version:
official analysysAgent javascript sdk
136 lines (112 loc) • 5 kB
TypeScript
/**
* sdk配置参数类型
*/
export interface initConfig {
appkey: string;
uploadURL: string;
debugMode?: 0 | 1 | 2;
name?: string; //设置 JS SDK 全局对象别名
autoStartUp?: boolean;//是否自动采集startUp
auto?: boolean; //是否自动采集pageview
pageProperty?: object; //设置自动采集时页面自定义属性
pageViewBlackList?: any; //设置自动采集页面统计黑名单
autoProfile?: boolean;
encryptType?: number;
allowTimeCheck?: boolean; //设置是否开启时间校准
maxDiffTimeInterval?: number; //设置最大时间校准分
autoPageViewDuration?: boolean; //设置是否开启页面关闭事件自动采集
sendDataTimeout?: number; // 上报超时时间
hash?: boolean; //设置检测 url hash 变化:
sendType?: 'img' | 'post'; //设置上传日志方式
crossSubdomain?: boolean; //设置在二级域名下存储cookie
visitorConfigURL?: string; //(若使用可视化埋点,则必须) 设置可视化配置获取接口
SDKFileDirectory?: string; //设置可视化模块SDK与热图模块SDK存放目录
getDataTimeout?: number; //设置获取可视化埋点列表的超时时间
autoTrack?: boolean; //
autoClickBlackList?: string | (() => boolean) | Array<string>; //设置全埋点统计黑名单
userClickProperty?: any | object | (() => boolean); //设置全部或某个全埋点元素自定义属性
trackList?: Array<string> | ((path: string) => boolean); //设置除默认可输出元素外的可触控元素列表
autoHeatmap?: boolean; //设置是否启用热图数据采集,即在产品当中可使用热图分析功能
autoWebstay?: boolean; //在开启热图功能(autoHeatmap设置为true)后,设置是否追踪页面滚动行为,即在产品当中可分析页面浏览深度
webstayDuration?: number; //设置追踪页面滚动行为时,最大停留时长
heatMapBlackList?: string; //设置热图统计黑名单
exposure?: {
valid_time: number;
element_list: () => void | Array<any>;
exposure_click: boolean;
property: object | (() => void);
multiple: boolean | number
};
isHybrid?: Boolean;
beforePageView?: ((res:buriedPointData, setAttrs: Function) => boolean); //pageView上报之前钩子,若返回false,则终止pageView上报
beforePageClose?: ((res:buriedPointData, setAttrs: Function) => boolean); //pageClose上报之前钩子,若返回false,则终止pageView上报
beforeTrack?: ((res:buriedPointData, setAttrs: Function) => boolean); //track之前的钩子,参数为当前上报的数据对象,若返回false,就会终止track上报
beforeInit?: ((config:initConfig, next: Function) => Promise<any>); //通知sdk客户端程序已经准备就绪了,你可以开始工作了
}
/**
* 埋点数据类型
*/
export interface xcontextValue {
$url?: string;
$is_login?: boolean;
}
// 上报数据格式
export interface buriedPointData {
appid: string;
xwho: string;
xwhat: string;
xwhen: number;
xcontext: xcontextValue;
}
// 日志提示类型
export interface msgetype {
key?: string
value?: any
code: string | number
fn?: string
keyType?: string
}
// 请求入参
export interface requestOptions {
url: string;
data?: any;
method?: string;
header?: object;
timeout?: number;
success?: Function;
error?: Function;
}
type distinctId = string
type attrs = {[key:string]: any}
type superAttrs = attrs
type eventAttrs = attrs
type userAttrs = attrs
type presetAttrs = attrs
declare class arkSdk {
config: initConfig;
init(config: initConfig): void;
pageView(pageTitle: string, pageProperties: object): buriedPointData;
track(eventName: string, eventAttrs: eventAttrs): buriedPointData;
timeEvent(eventName: string): void;
alias(aliasId: string, callback?: () => void): void;
identify(distinctId: distinctId, callback?: () => void): void;
getDistinctId(callback?: (distinctId: distinctId) => void): distinctId;
registerSuperProperty(attrKey: string, attrValue: any, callback?: (attrs: superAttrs) => void): void;
registerSuperProperties(attrs: superAttrs, callback?: (attrs: superAttrs) => void): void;
getSuperProperty(attrName: string, callback?: (attrs: superAttrs) => void): superAttrs;
getSuperProperties(callback?: (attrs: superAttrs) => void): superAttrs;
unRegisterSuperProperty(attrName: string, callback?: (attrs: superAttrs) => void): void;
clearSuperProperties(callback?: (attrs: superAttrs) => void): void;
pageProperty(attrs: attrs): void;
profileSetOnce(attrs: userAttrs): void;
profileSet(attrs: userAttrs): void;
profileAppend(attrKey: string, attrValue: any): void;
profileIncrement(attrs: userAttrs): void;
profileDelete(): void;
profileUnset(attrName: string): void;
getPresetProperties(callback?: (attrs: presetAttrs) => void): presetAttrs;
reset(callback?: () => void): void;
updateCache(callback?: () => void): void;
}
export const AnalysysAgent: arkSdk
export default AnalysysAgent