首页 > 用户手册 > 开发者文档 > 集成java SDK
集成java SDK
1.集成SDK的准备工作
1.1获取AppKey
集成GeekDataSDK之前,您首先需要到GeekData官网(https://www.geekdata.com)注册并且添加新应用,获得Appkey。
1.2 下载相关SDK
2.集成SDK步骤
2.1 导入所需的jar包
GdAgent-Java-SDK.zip
2.2 初始化 SDK
在程序入口处(如 public static void main(String[] args) 方法中),初始化 Java SDK 实例。
初始化SDK有以下两种方式
GdAgent gdAgent = new GdAgent("b4f883e91856dde3");//参数为appKey
GdAgent gdAgent = new GdAgent("b4f883e91856dde3", "channelId");//参数为appKey和channelId
如果你想要统计渠道来源 请用第二种方式初始化
2.3 使用Demo
GdAgent gdAgent = new GdAgent("aabbccddeeff1122", "channelId");
gdAgent.setDebugEnabled(true);
//设置公共属性
HashMap<String, String> defaultAttributeMap = new HashMap<>();
//GeekDataid,统计必须字端,不传将默认为统一值,将无法区分客户端身份
//geekdataid,可以根据客户端设备唯一标识码生成,或者是用户的唯一id,需保证唯一性
//geekdataid 必须是16位字符串,建议使用16位md5码
defaultAttributeMap.put("firstPartyCookie", "geekdataid");
defaultAttributeMap.put("appChannel", "channelId");
defaultAttributeMap.put("sessionId", "101");
defaultAttributeMap.put("visitType", "1");
.
.
.
gdAgent.setDefaultAttribute(defaultAttributeMap);
//设置自定义属性
gdAgent.setAttribute("attributeId", "2");
HashMap<String, String> attributeMap = new HashMap<>();
attributeMap.put("attributeId1", "100");
attributeMap.put("attributeId2", "101");
attributeMap.put("attributeId3", "102");
gdAgent.setAttribute(attributeMap);
//设置用户信息
UserBean userBean = new UserBean();
userBean.setUserId("123456");
userBean.setUserRegisterChannel("geekdata");
userBean.setUserSex("男");
userBean.setUserAge("25");
userBean.setUserType("管理");
userBean.setUserLevel("5级");
userBean.setUserProvince("天津");
userBean.setUserCity("东丽区");
gdAgent.bindUserInfo(userBean);
//设置自定义事件
HashMap<String, String> eventAttMap = new HashMap<String, String>();
eventAttMap.put("m_Q1", "1");
eventAttMap.put("m_Q2", "2");
eventAttMap.put("d_Q3", "3");
eventAttMap.put("ea_Q3", "4");
//tp :TpType.WEB ,TpType.H5 ,TpType.IOS ,TpType.ANDROID ,TpType.WEIXIN
gdAgent.postEvent("view", eventAttMap, "192.168.1.1", TpType.IOS);
//清除所有自定义属性
gdAgent.clearAllAttribute();
//清除所有默认属性
gdAgent.clearAllDefaultAttribute();
gdAgent.postEvent("click", eventAttMap, "", TpType.ANDROID);
公共属性字段参照:
firstPartyCookie = "";//GeekDataid
sessionId = "";//会话id
currentUrl = "";//当前页面(当前页面url)
onlineTimes = "";//页面停留时间 (单位毫秒 如 29088)
visitorType = "";//1-新用户,0-老用户
appChannel = "";//渠道id(如 baidu,yingyongbao)
deviceType = "";//设备类型 (如 Phone,Tablet)
deviceName = "";//设备型号名称(如 小米 红米4)
deviceBrand = "";//设备厂商 (小米)
appVersion = "";//app 版本(如 v1.0.1)
ua = "";//ua信息
resolution = "";//屏幕分辨率 (如1920x1080)
networkType = "";//网络类型(1:2g,2:3g,3:4g,4:wifi,5:未知)
cookiePlugin = "";//是否支持cookie(1:支持,0:不支持)
directorPlugin = "";//是否支持director插件(1:支持,0:不支持)
flashPlugin = "";//是否支持flash插件(1:支持,0:不支持)
gearsPlugin = "";//是否支持gears插件(1:支持,0:不支持)
javaPlugin = "";//是否支持javaPlugin插件(1:支持,0:不支持)
pdfPlugin = "";//是否支持pdfPlugin插件(1:支持,0:不支持)
quicktimePlugin = "";//是否支持quicktimePlugin插件(1:支持,0:不支持)
realplayerPlugin = "";//是否支持realplayerPlugin插件(1:支持,0:不支持)
silverlightPlugin = "";//是否支持silverlightPlugin插件(1:支持,0:不支持)
windowsmediaPlugin = "";//是否支持windowsmediaPlugin插件(1:支持,0:不支持)
loadTime = "";//页面加载时间
longitude = "";//经度(如 127.386848)
latitude = "";//纬度(如 49.159826)
frequency = "";//session浏览次数(如 1,2)
browserEngine = "";//浏览器引擎
browserName = "";//浏览器名称
browserVersion = "";//浏览器版本
registerTime = "";//注册时间
registerRegion = "";//注册地点
innerReferUrl = "";//站内跳转的refer_url
firstReferUrl = "";//最早一次referurl
firstAccessTime = "";// 首次访问时间(如 2017-08-17)
utm = "";//utm信息
事件发送:
postEvent(String eventType, HashMap
第一个参数:为事件id ,在创建自定义事件时自己创建的,具体参考下文 3.1自定义事件接口
第二个参数:为事件属性,在创建自定义事件时自己创建的,和事件id一起创建的,具体参考下文 3.1自定义事件接口
第三个参数:为客户端ip,用于统计客户端位置信息
第四个参数:tp为平台参数,用来区分平台( WEB,H5,IOS,ANDROID,WEIXIN)
如果您不关系位置和平台您可以传空或者使用 postEvent(String eventType, HashMap
3.自定义事件统计
3.1自定义事件接口:
在需要统计事件的位置加入以下代码。
//tp : 为区分平台之用,现支持五大平台 WEB,H5,IOS,ANDROID,WEIXIN
//ip : 用于统计客户端位置信息
gdAgent.postEvent("view", eventAttMap, "192.168.1.1", TpType.IOS);
3.2自定义事件id获得:
使用自定义事件功能请先登录GeekData官网(https://www.geekdata.com), “自定义设置->自定义事件” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。 请在GeekDataSDK初始化(GdAgent.init(this))之后调用。
例:
//设置自定义事件
HashMap<String, String> eventAttMap = new HashMap<String, String>();
eventAttMap.put("m_Q1", "1");
eventAttMap.put("m_Q2", "2");
eventAttMap.put("d_Q3", "3");
gdAgent.postEvent("yyq", eventAttMap, "192.168.1.1", TpType.IOS);
特别提醒:value 为自定义内容,根据统计需求填写,values 是用来做运算的,一定要设定为数字。 例如您的事件属性是“点击次数” 那么您的value 就应该传 “1”,如果您传的是“2” 在统计事件点击次数时我们会根据value做sum,导致最终统计出的数据是真实数据的2倍。 例如您的事件属性定义为“商品价格” 你的商品价格可能是 1元,3元,10.1元,那么value 应该传 1,3,10.1
3.3事件统计结果可在GeekData后台查看。
4.自定义属性统计
4.1自定义属性接口:
设置单个属性:
//设置自定义属性
gdAgent.setAttribute("attributeId", "2");
设置多个属性:
HashMap<String, String> attributeMap = new HashMap<>();
attributeMap.put("attributeId1", "100");
attributeMap.put("attributeId2", "101");
attributeMap.put("attributeId3", "102");
gdAgent.setAttribute(attributeMap);
您可以通过添加自定义属性,进行细分分析
4.2自定义属性id获得:
使用自定义属性功能请先登录GeekData官网 (www.geekdata.com), “自定义设置->自定义属性” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。 请在GeekDataSDK初始化(GdAgent.init(this))之后调用。
例:
gdAgent.setAttribute("attributeId", "2");
属性被定义以后所有的事件都会带上相关属性,当属性值发生改变时请重新设置属性值。
4.3 设置cookie 信息:
gdAgent.setCookieInfo("cookie信息");
方法中“cookie信息”需要decode之后传入,用来做数据打通。
4.3 设置baseUrl 信息:
gdAgent.setBaseUrl("私有化服务器的收数地址");
方法中传入“私有化服务器的收数地址” 此地址需要和服务器运维人员确认,私有化客户后端埋点需要调用。
5.绑定用户信息
例:
UserBean userBean = new UserBean();
userBean.setUserId("123456");
userBean.setUserRegisterChannel("geekdata");
userBean.setUserSex("男");
userBean.setUserAge("25");
userBean.setUserType("管理");
userBean.setUserLevel("5级");
userBean.setUserProvince("天津");
userBean.setUserCity("东丽区");
gdAgent.bindUserInfo(userBean);
6.技术支持
发现问题可联系我公司客服或技术人员进行解答。