You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
合作与生态
支持与服务
开发者
了解我们
导航

数据分发

更新时间:2023.06.02 16:09:42

1.概述

1.1 数据分发的应用场景

如果您需要将Finder-SDK采集的埋点数据实时推送到目标地址(例如您的业务数仓),数据分发模块可为您实现。

注:

  1. 私有化版本4.1(含)后开始支持。
  2. 云原生版本(火山云)暂不支持实时数据导出。
  3. 为了保证您和用户的数据安全,数据分发功能默认关闭。在开始使用之前,请需要联系客服开通。

1.2 数据分发方式

现已支持“Webhook”渠道触达,如您有其他需求可联系您的客户成功经理。

2.功能说明

2.1 创建任务

进入“数据集成-数据分发”页面,点击蓝色“新建任务”按钮开始创建任务。
如果您无法在应用管理列表找到“数据分发”入口,请联系您的管理员为您开通权限。(权限配置入口:集团设置-角色管理-增长分析-配置功能权限)

新建任务填写注意事项:

  • 任务名称:您可以自定义名称,例如XX产品埋点数据推送

  • 分发内容:当前Finder提供两类埋点数据,分发数据格式说明和示例请见3.数据格式说明部分

    • 原始上报数据:和SDK上报一致,数据上报30秒内送达
    • 事件表数据:落表数据,不符合数据规范的数据不落表(例如属性数据类型不一致),数据上报10分钟内送达,因有落库时间,相比于原始上报数据会有延时

:数据分发步骤在部分字段二次解析之前(如:IP解析省份&城市),且不包含profile和item API上报的数据。

  • Webhook URL:一个任务仅支持填写一个URL地址,如有多个地址可创建多个任务。

    eg.http://localhost:6666/payload,http/https均可支持。

    说明

    在数据分发中,您需要添加以下来源ip的白名单:

    • 106.38.226.0/24
    • 116.132.239.0/24
    • 111.63.61.128/25
    • 111.63.211.128/25
  • Headers:可配置多项Headers

  • 数据管理:私有化4.4.1(含)后新增过滤条件,可以根据事件和属性规则组合,选定分发的数据范围。

    • 事件列表为包含逻辑,即仅选定的事件将会被分发。支持单选和批量两种添加方式。
    • 事件列表与事件属性的规则为关系,即仅在事件列表范围内,且满足事件属性规则的数据才会被分发。

任务创建成功后预计10分钟内生效。
alt

2.2 停用/启用任务

任务创建后默认状态为“执行中”,此时数据正常分发,如果您需要停止数据分发,可以点击“停止”将状态改为“已停用”。任务切换状态预计10分钟内生效。


2.3 编辑任务

任务一经创建不可修改任务名称、分发内容,如果您需要修改URL地址或Headers请先将执行中的任务停用,编辑后重新启用即可。

3.数据格式说明

3.1 分发数据示例

一次请求的body是一个json array,里面会包含1-50条事件

[{
  "user": {
    "user_unique_id": "mock_user_unique_id",
    "user_id": 6934486383370142000,
    "user_type": 13,
    "user_is_auth": false,
    "user_is_login": false,
    "is_upgrade_user": false,
    "web_id": 6934486383370142000,
    "ip_addr_id": 0,
    "ssid": "acf3dd8f-7a18-42b1-996b-56a20156249c"
  },
  "header": {
    "app_id": 10000010,
    "app_name": "mock_web",
    "access": "",
    "client_ip": "221.122.122.122",
    "carrier": "",
    "os_name": "mac",
    "os_version": "10_15_5",
    "product_id": 107,
    "product_name": "default_to_b",
    "custom": "{\"app_id\":10000010,\"screen_width\":1440,\"screen_height\":900}",
    "trace_id": "16015901108710420012361360828522",
    "language": "zh-CN",
    "device_model": "Macintosh",
    "resolution": "1440x900",
    "width": 1440,
    "height": 900,
    "timezone": 8,
    "tz_offset": -28800,
    "platform": "web",
    "browser": "Chrome",
    "browser_version": "78.0.3904.108",
    "referrer": "",
    "referrer_host": ""
  },
  "params": "{\"app_name\":\"mock_web\",\"referrer\":\"\",\"user_unique_id\":\"\",\"time\":1601590110322,\"is_bav\":1,\"title\":\"测试页面\",\"event_index\":1616590857270,\"url\":\"http://demo.com.cn/product/list\",\"url_path\":\"/product/list\"}",
  "event_name": "predefine_pageview",
  "session_id": "aa7b79a1-4e27-44fe-bed8-56adfffddc07",
  "datetime": 1601590110,
  "server_time": 1601590110,
  "rnd": "ne0000",
  "log_type": "mario_event",
  "local_time_ms": 1601590110322
},{其他事件},{其他事件}]

3.2 单个事件具体字段说明

//一个事件
Event {
          User user //user内格式见下面
          Header header //header格式见下面
          string params  // 事件参数,单层json map,需要dump成字符串
     string event_name  // 事件名
     uint64 event_id  // 事件id
     string session_id
          uint64 datetime  // 事件发生时间戳(秒)
     uint64 server_time  // 日志到达服务器时间
     string log_type 
          uint64 local_time_ms    // 事件发生时间戳(毫秒)
}

//事件内user字段

User {
          string user_unique_id  // 用户唯一id
     uint64 user_id  // 用户id
     uint32 user_type  // 用户类型
     bool user_is_auth  // 是否授权
     bool user_is_login  // 是否登录
     uint64 device_id  // 设备id
     string open_udid  // openudid
     string udid  // udid
     string client_udid  // 客户端自己生成的设备id
     string mc    // 设备mac地址
     string build_serial    // 硬件序列号
     string serial_number    // 序列号
     string idfa    // idfa
     bool is_upgrade_user    // 是否app升级用户
     uint64 web_id 
          uint64 ip_addr_id 
          string ssid 
          string idfv 
          string oaid 
          string cdid 
          string user_unique_id_type    // user_unique_id字段口径,tob场景使用,为空或default_user_unique_id_type为默认口径
}

//事件内header字段

Header {
          string headers  // 自定义header,单层json map,需要dump成字符串
     uint32 app_id  // app_id
     string app_name  // app名称
     string app_version  // app版本
     string app_package  // app包名称
     string display_name  // app名称
     string app_channel  // app分发渠道
     string access  // 网络访问类型
     string client_ip  // 客户端ip
     string carrier    // 运营商
     string os_name    // 系统名称
     string os_version    // 系统版本
     uint32 product_id    // 产品id
     string product_name    // 产品名称
     uint64 install_id    // app升级id
     string custom //自定义事件公共属性,是一个json的字符串
          string trace_id 
          uint32 client_port    // 客户端端口号
     string data_center    //上报机房
     string app_key    // 应用key
     uint32 version_code    // 版本号
     string sig_hash    // sig_hash
     uint32 update_version_code    // 内部更新版本号
     string vendor_id    // app发行商id
     string app_language    // app语言
     string language    // 系统语言
     string app_region    // app设置地区
     string region    // 系统设置地区
     string vid    // vid
     string traffic_type 
          string carrier_region 
          string device_model    // 设备型号
     string device_brand    // 设备品牌
     string device_manufacturer    // 设备制造商
     string resolution    // 屏幕分辨率
     string display_density    // 屏幕像素显示级别
     uint32 density_dpi    // 屏幕像素显示密度
     sint32 width    // 屏幕宽度
     sint32 height    // 屏幕宽度
     string cpu_abi    // cpu类型
     uint32 origin_app_id    // 中台重置的原始app_id
     string origin_app_name    // 中台重置的原始app_name
     float timezone    // 时区
     string tz_name    // 时区名称
     sint32 tz_offset    // 时区偏差
     string mcc_mnc    // 国家+运行商标记
     uint32 os_api    // 客户端系统API版本号
     string rom    // rom
     string rom_version    // rom版本
     string release_build    // release_build
     uint32 manifest_version_code    // Android配置版本号
     string sim_region    // sim地区
     string sim_serial_number    // sim序列号
     bool is_jailbroken    // 设备是否越狱
     string push_os    // 支持的推送os
     string platform    // 平台类型
     string province    // 省
     string city    // 市
     string ab_version    // ab_test字段
     string ab_group    // ab_test字段
     string ab_feature    // ab_test字段
     string ab_client    // ab_test字段
     string ab_sdk_version    // ab_test字段
     string utm_source    // 广告来源
     uint32 sdk_version    // 建议使用sdk_version_v2
     bool not_request_sender    // not_request_sender
     string user_agent    // user_agent
     bool gcm_available 
          string utm_medium    // 广告媒介
     string utm_campaign    // 广告名称
     uint64 campaign_id 
          uint64 ad_id 
          uint64 creative_id 
          string browser 
          string browser_version 
          string referrer 
          string referrer_host 
          string app_version_minor    //4位版本号
     string utm_term    //广告关键词
     string utm_content    //广告内容
     string sdk_version_v2    //string类型sdk版本
     string pgl_oaid  [deprecated]  //已废弃,请使用user中的pgl_oaid字段
     string tracer_data    // SDK tracer自定义字段,json串
     string sdk_lib    // 标识sdk类型
     uint64 harmony_os_api    // 524~530为鸿蒙系统特有标识
     string harmony_os_version 
          string harmony_release_type 
          uint64 harmony_build_version 
          uint64 harmony_major_version 
          uint64 harmony_senior_version 
          uint64 harmony_feature_version 
 
}
4.常见问题FAQ

4.1 能否获取历史数据?

不支持,当前仅支持推送实时采集的埋点数据,历史已经上报的数据不支持推送。
同理,已停用的任务如果重新启用,停用期间的数据不可回溯。

4.2 数据发送时间?

正常情况数据上报后20-60s内发送。

4.3 数据发送失败怎么办?

由于业务自身服务接收造成的发送失败不会自动重试,发送失败的数据一般不支持恢复;因网络不稳定等各种原因,可能会出现部分数据重复推送的情况;如有特殊情况可联系您的客户成功经理或火山的技术支持。