You need to enable JavaScript to run this app.
导航

使用 Web Tracking 采集日志

最近更新时间2024.03.28 10:17:47

首次发布时间2022.09.15 14:42:12

日志服务支持 Web Tracking 功能,通过 OpenAPI 的 Web Tracking 接口采集多种移动端平台的日志数据,包括 HTML、iOS、Android 等平台。本文档介绍为日志主题开启 Web Tracking 功能,并采集日志数据到服务端的操作步骤。

背景信息

轻量级的埋点采集场景中,通常需要快速完成埋点设置和数据上报的工作。例如某些营销活动中,需要快捷的手段满足用户行为和浏览数据的采集和上报,包括用户的设备与浏览器信息、浏览行为记录、特定内容的停留时间等等。Web Tracking 技术也称为 Tracking Pixel,您可以在页面上嵌入一个 0 Pixel 图片,该图片默认对用户不可见,当访问该页面显示加载图片时,会顺带发起一个 Get 请求到服务端,这个时候就会把参数传给服务端。
日志服务通过 Web Tracking 功能提供轻量级的日志采集方案,通过 HTTP Get 请求将数据上传到日志服务的服务端,支持浏览器、JS、Image 等标签埋点,适用于各种无需任何验证的静态网页、广告投放、宣传资料和移动端数据采集。
通过 WebTracking 接口写入日志数据时,日志服务默认在原始日志中增加以下预留字段:

预留字段

说明

clientAddr

通过 Webtracking 方式写入日志时,记录日志数据源端的 IP 地址及端口号。

User-Agent

访问终端名称。
日志服务仅在通过 HTML img 标签方式写入日志时默认添加此字段。

referer

访问页面来源。
日志服务仅在通过 HTML img 标签方式写入日志时默认添加此字段。

注意事项

  • 为日志主题开启 Web Tracking 后,通过 API 接口 WebTracks 写入数据时无需经过鉴权,相当于面向公网开放了匿名写入权限,可能产生脏数据。
  • 通过 GET 请求调用 WebTrack 接口时,不支持上传 16 KiB 以上的 Body 内容。
  • 通过 POST 请求调用 WebTracks 接口时,每次写入的日志数量上限为 5 MiB。更多信息,请参见 WebTracks

1 开启 Web Tracking 功能

您可以通过控制台方式为指定日志主题开启 Web Tracking 功能,成功开启后才能通过 Web Tracking 采集日志。

  1. 登录日志服务控制台
  2. 在左侧导航栏中选择日志服务 > 日志项目管理
  3. 单击指定日志项目名称。
  4. 在指定日志主题对应的操作列,单击编辑
  5. 打开WebTracking开关,并单击确定

2 通过 Web Tracking 采集日志

开通 Web Tracking 后,您可以通过以下方式上传日志到指定日志主题中。

浏览器 JavaScript SDK 方式

日志服务浏览器 JavaScript SDK 提供 send() 等方法用于上传日志数据,您可以参考浏览器 JavaScript SDK 文档安装必要的依赖,并调用接口发起请求。同时,日志服务在 GitHub 中提供了浏览器 JavaScript SDK 的示例项目供您参考。

HTML img 标签方式

您可以在页面上通过 img 标签嵌入一个 0 Pixel 图片,该图片默认对用户不可见,当访问该页面显示加载图片时,会顺带发起一个 GET请求到服务端,此时 <img> 中的数据就会被发送到日志服务指定日志主题中。
例如在页面中嵌入以下 img 标签:

<img src='http://${host}/WebTrack.gif?ProjectId=testproject&TopicId=newtopic&key1=value1&key2=value2'/>
<img src='http://${host}/WebTrackUa.gif?ProjectId=testproject&TopicId=newtopic&key1=value1&key2=value2'/>

其中:

  • ${host} 为日志服务的公网服务地址,各地域的服务地址请参考服务地址
  • WebtrackUa.gif 为固定名称,此图片除了上传自定义的参数外,还会将 HTTP Header 中的访问终端名称(UserAgent)、页面来源(referer)也作为日志中的字段上传到日志服务。
  • 支持 HTTPS 协议,即 img 标签中的 Web Tracking 的链接可以指定为 HTTPS,此时还可以采集 HTTPS 页面的页面来源信息。

HTTP GET 请求方式

您可以通过 HTTP GET 请求的方式调用 WebTrack 接口,向指定日志主题上传日志数据。

  • 请求示例:

    curl --request GET 'http://${host}/WebTrack?ProjectId=abc&TopicId=def&key1=val1&key2=val2'
    
  • 请求参数:

    参数

    是否必填

    说明

    ${host}

    日志服务所在地域的 Endpoint。更多信息,请参见服务地址

    ProjectId

    日志项目 ID。

    TopicId

    日志主题 ID。

    key1=val1&key2=val2

    键值对形式(Key-Value)的日志数据。多个键值对之间通过&连接。

    说明

    请确保日志数据总长度小于 16 KiB。

HTTP POST 请求方式

如果请求的数据量比较大,可以使用 POST 方法调用 WebTrack 接口上传数据。更多信息,请参见 WebTracks