友盟+搜索

{{errorMsg}}

Dplus目前只接收“事件”类型的数据:将事件(及相关属性)构建成JSON对象,然后先进行Base64编码,再对结果URL Encode,最后发送给Dplus服务器。

HTTP 数据接收规范概述

事件是指用户在您的网站、APP、或穿戴设备上的交互行为,比如用户登录网站、打开APP、或完成某项身体指标的监控等,都可以作为要统计的事件。

通常情况下,Dplus提供的SDK已经能够支持不同平台的数据采集:

但如果以上SDK还不能满足您的需求,或者您需要进行服务器端传输数据,则可以使用以下HTTP 数据接收规范。

例如以下地址即为HTTP 数据接收规范下的Dplus事件传输:

http://a.cnzz.com:80/dplusTrack/?data=ewogICAgICAgICAgICAiZXZlbnRfbmFtZSI6IuS6i%252bS7tjEiLAogICAgICAgICAgICAiVXNlck5hbWUiOiIxMzA3MDEyOTE4NiIsCiAgICAgICAgICAgICJkaXN0aW5jdF9pZCI6IjNkMTc5Y2ZhZmNmNDVlOTYyNmVhMDkyMjdhMTBjYzIqKioqIiwKICAgICAgICAgICAgImlwIjoiMTkyLjE2OC4xLjEwNSIsCiAgICAgICAgICAgICJ0aW1lIjoiMTQzOTIwNDM0NjY0MiIsCiAgICAgICAgICAgICJ3aWZpIjoidHJ1ZSIsCiAgICAgICAgICAgICJhcHBrZXkiOiIqKioqKioqKioiCn0K

通过 HTTP 发送事件

定义事件

事件可以单条发送也可以批量发送,定义好的事件需要封装成JSON格式的数据包。

定义事件时以下两个属性必须得有,

event_name[必选]  

siteid/appkey[必须有一个]  web数据必选有siteid属性,app数据必选有appkey属性

单个事件的数据格式

例如:

{
    "event_name":"事件1",
    "UserName":"13070129186",
    "distinct_id":"3d179cfafcf45e9626ea09227a10cc2****",
    "ip":"192.168.1.105",
    "time":"1439204346642",
    "wifi":"true",
    "appkey":"*********"
}

批量数据的发送格式

批量发送的json需要含有两个固定的子对象:common(可选)和events

events的值是一个数组,数组中的每一个元素是一个event(事件)。

common对象的每一个属性,如果event里面存在同名的属性,event就使用自己的属性值,如果event中不存在,则使用common里面的属性。

例如:

{
    "common": {
        "did":"3d179cfafcf45e9626e****",
        "distinct_id":"3d179cfafcf45e9626ea09*****",
        "initial_view_time":"1438349006655",
        "os":"ios",
        "os_version":"8.4",
        "sdk":"cnzz2.0",
    },
    "events": [
         {
            "event_name":"事件1",
            "appkey":"2100011931test1"
            "ip":"192.168.1.105",
            "time":"1439204346334",
            "wifi":"true",
        },
         {
            "event_name":"事件2",
            "appkey":"2100011931test1"
            "ip":"192.168.1.105",
            "time":"1439204346642",
            "wifi":"true",
        }
    ]
}

Base64和URLEncode

将定义好的JSON格式的时间,先进性Base64编码,再进行URLEncode,以上面单一事件为例,Base64后得到:

ewogICAgICAgICAgICAiZXZlbnRfbmFtZSI6IuS6i+S7tjEiLAogICAgICAgICAgICAiVXNlck5hbWUiOiIxMzA3MDEyOTE4NiIsCiAgICAgICAgICAgICJkaXN0aW5jdF9pZCI6IjNkMTc5Y2ZhZmNmNDVlOTYyNmVhMDkyMjdhMTBjYzIqKioqIiwKICAgICAgICAgICAgImlwIjoiMTkyLjE2OC4xLjEwNSIsCiAgICAgICAgICAgICJ0aW1lIjoiMTQzOTIwNDM0NjY0MiIsCiAgICAgICAgICAgICJ3aWZpIjoidHJ1ZSIsCiAgICAgICAgICAgICJhcHBrZXkiOiIqKioqKioqKioiCn0K

然后进行urlencode得到:

ewogICAgICAgICAgICAiZXZlbnRfbmFtZSI6IuS6i%252bS7tjEiLAogICAgICAgICAgICAiVXNlck5hbWUiOiIxMzA3MDEyOTE4NiIsCiAgICAgICAgICAgICJkaXN0aW5jdF9pZCI6IjNkMTc5Y2ZhZmNmNDVlOTYyNmVhMDkyMjdhMTBjYzIqKioqIiwKICAgICAgICAgICAgImlwIjoiMTkyLjE2OC4xLjEwNSIsCiAgICAgICAgICAgICJ0aW1lIjoiMTQzOTIwNDM0NjY0MiIsCiAgICAgICAgICAgICJ3aWZpIjoidHJ1ZSIsCiAgICAgICAgICAgICJhcHBrZXkiOiIqKioqKioqKioiCn0K

最后,将以上结果发送至

http://a.cnzz.com:80/dplusTrack/?data=ewogICAgICAgICAgICAiZXZlbnRfbmFtZSI6IuS6i%252bS7tjEiLAogICAgICAgICAgICAiVXNlck5hbWUiOiIxMzA3MDEyOTE4NiIsCiAgICAgICAgICAgICJkaXN0aW5jdF9pZCI6IjNkMTc5Y2ZhZmNmNDVlOTYyNmVhMDkyMjdhMTBjYzIqKioqIiwKICAgICAgICAgICAgImlwIjoiMTkyLjE2OC4xLjEwNSIsCiAgICAgICAgICAgICJ0aW1lIjoiMTQzOTIwNDM0NjY0MiIsCiAgICAgICAgICAgICJ3aWZpIjoidHJ1ZSIsCiAgICAgICAgICAgICJhcHBrZXkiOiIqKioqKioqKioiCn0K

注意:

  • 事件的自定义属性名称,尽量避免与Dplus提供的事件默认属性重名;如果重名,将用您的自定义属性值替换原来的默认属性值。Dplus中事件的默认属性请参见 >>
  • 属性名称不要以空格开头或结尾,因为JavaScript SDK在发送数据之前会去掉属性名前后的空格。
  • 属性名称和属性值要尽量言简意赅,最多不要超过255个字符。

事件发送的其它参数

除了将上述base64格式的数据作为data字段传送给 http://a.cnzz.com:80/dplusTrack , 我们还支持发送以下字段来支持不同场景:

参数 是否必须 描述
data 含有事件名和事件属性的JSON数据,并且是base64格式转化之后的。
img 如果有且值为1 ,则返回一个1px × 1px的透明图片。
verbose 如果有且值为1 ,Dplus在收到数据后将返回一个详细的JSON Object,告诉失败的原因,该参数适合在调试的时候使用。如果有且值为1 ,则返回一个1px × 1px的透明图片。

示例:

  • img

以下代码发送事件后,统计服务器将返回一个1 × 1的透明图片。

http://a.cnzz.com:80/dplusTrack/?data=ewogICAgICAgICAgICAiZXZlbnRfbmFtZSI6IuS6i%252bS7tjEiLAogICAgICAgICAgICAiVXNlck5hbWUiOiIxMzA3MDEyOTE4NiIsCiAgICAgICAgICAgICJkaXN0aW5jdF9pZCI6IjNkMTc5Y2ZhZmNmNDVlOTYyNmVhMDkyMjdhMTBjYzIqKioqIiwKICAgICAgICAgICAgImlwIjoiMTkyLjE2OC4xLjEwNSIsCiAgICAgICAgICAgICJ0aW1lIjoiMTQzOTIwNDM0NjY0MiIsCiAgICAgICAgICAgICJ3aWZpIjoidHJ1ZSIsCiAgICAgICAgICAgICJhcHBrZXkiOiIqKioqKioqKioiCn0K&img=1

例如要监控邮件的打开次数,可以使用这种方法。