集成C/C++ SDK
1.集成SDK的准备工作
1.1获取AppKey
集成GeekDataSDK之前,您首先需要到GeekData官网(https://www.geekdata.com)注册并且添加新应用,获得Appkey
1.2 下载相关lib
1.3 C语言集成方法
本SDK支持C语言调用,具体调用方式请联系GeekData!
2.集成c++库的步骤
2.1 在程序首部包含GeekData的SDK头文件geekdata.hpp,代码如下
#include "geekdata.hpp"
2.2 编译自己的程序时链接GeekData的SDK库文件libgeekdata.a,操作步骤如下图
2.3 使用Demo
#include <iostream>
#include <iterator>
#include <functional>
#include <algorithm>
#include <map>
#include "geekdata.hpp" //导入GeekDataSDK
typedef map<string, string> param;
using namespace std;
int main()
{
param kv;
kv["appKey"] = "73d33d216ded5c22"; //必须上传
kv["eventType"] = "click"; //必须上传
kv["mykey"] = "whatever";
kv["yourkey"] = "anything";
geekdata gd(kv);
int result = gd.post_event("8.8.8.8", 1);
if(result)
{
cout << "发送成功" << endl;
}
else
{
cout << "发送失败" << endl;
}
return 0;
}
以下为详细的key value 对照表
firstPartyCookie = "";//geekdataid 必须是16位字符串,建议使用16位md5码
sessionId = "";//会话id
eventType = "";//事件类型
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信息
事件发送:
post_event("8.8.8.8",1)
第一个参数:为客户端ip,用于统计客户端位置信息
第二个参数:tp为平台参数,用来区分平台( 1-WEB,2-H5,3-IOS,4-ANDROID,5-WEIXIN)
3.自定义事件统计
3.1 自定义事件id获得:
使用自定义事件功能请先登录GeekData官网(https://www.geekdata.com), “自定义设置->自定义事件” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。
例:
param kv;
kv["appKey"] = "73d33d216ded5c22"; //必须上传
kv["eventType"] = "click"; //必须上传
kv["appChannel"] = "channelId";
kv["sessionId"] = "101";
kv["visitType"] = "1";
.
.
.
kv["m_Q1"] = "1";
kv["m_Q2"] = "2";
kv["m_Q3"] = "3";
geekdata gd(kv);
int result = gd.post_event("8.8.8.8", 1);
特别提醒:value 为自定义内容,根据统计需求填写,values 是用来做运算的,一定要设定为数字。 例如您的事件属性是“点击次数” 那么您的value 就应该传 “1”,如果您传的是“2” 在统计事件点击次数时我们会根据value做sum,导致最终统计出的数据是真实数据的2倍。 例如您的事件属性定义为“商品价格” 你的商品价格可能是 1元,3元,10.1元,那么value 应该传 1,3,10.1
3.2 事件统计结果可在GeekData后台查看。
4.自定义属性统计
4.1 自定义属性id获得:
使用自定义属性功能请先登录GeekData官网 (www.geekdata.com), “自定义设置->自定义属性” 页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。
例:
param kv;
kv["appKey"] = "73d33d216ded5c22"; //必须上传
kv["eventType"] = "click"; //必须上传
kv["appChannel"] = "channelId";
kv["sessionId"] = "101";
kv["visitType"] = "1";
.
.
.
kv["attributeId1"] = "101";
kv["attributeId2"] = "102";
kv["attributeId3"] = "103";
geekdata gd(kv);
int result = gd.post_event("8.8.8.8", 1);
属性被定义以后所有的事件都会带上相关属性,当属性值发生改变时请重新设置属性值。
5.绑定用户信息
例:
param kv;
kv["appKey"] = "73d33d216ded5c22"; //必须上传
kv["eventType"] = "click"; //必须上传
kv["appChannel"] = "channelId";
kv["sessionId"] = "101";
kv["visitType"] = "1";
.
.
.
kv["userId"] = "123456";
kv["userRegisterUrl"] = "geekdata";
kv["userGender"] = "男";
kv["userAge"] = "25";
kv["userType"] = "管理";
kv["userLevel"] = "5级";
kv["userProvince"] = "天津";
kv["userCity"] = "东丽区";
geekdata gd(kv);
int result = gd.post_event("8.8.8.8", 1);
6.技术支持
发现问题可联系我公司客服或技术人员进行解答。