Skip to content

Instantly share code, notes, and snippets.

@ronfe
Last active November 30, 2015 04:36
Show Gist options
  • Save ronfe/468976d271197621d113 to your computer and use it in GitHub Desktop.
Save ronfe/468976d271197621d113 to your computer and use it in GitHub Desktop.
Data Collection

v3.0 Points Documentation (APP)

by ronfe
Last Modified: 15NOV30

本文档基于产品埋点需求文档 v151030 之埋点描述,适用于3.0 Mobile App端埋点。

学习模块

点击学习模块


知识点滑动页,点击进入课前学习时触发。

  • eventKey: startLearning
  • category: course
  • 必传字段:
    • 所在知识点ID topicId: ObjectId

开始播放视频


视频页,视频加载并开始播放。

  • eventKey: startVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId

暂停视频


视频播放时,用户点击暂停按钮。
视频所有时间戳均为毫秒数。

  • eventKey: pauseVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId
    • 用户暂停时的时间戳 pauseTime: Number

恢复播放视频


用户暂停视频后,再次点击播放按钮。

  • eventKey: resumeVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId
    • 用户点击播放按钮时的时间戳 resumeTime: ISODate

分享视频


视频播放时,用户点击右上角视频按钮。

  • eventKey: shareVideo
  • category: site
  • 必传字段:
    • 视频ID videoId: ObjectId
    • (未载于埋点文档)用户分享平台 sharePlatform: String enum: ["qq", "qzone", "weibo", "wechatIM", "wechatShare", 'tencentWeibo']

视频交互


视频播放页面,用户回答视频交互题。

  • eventKey: answerVideoInteraction
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId
    • 交互ID interactionId: ObjectId
    • 用户答案 answer: String

拖动视频


视频播放页面,用户拖动视频进度条。

  • eventKey: dragVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId
    • 拖动方向 dragDirection: String enum: ['backward', 'forward']
    • 拖动时视频时间戳 fromTimeStamp: TimeStamp
    • 拖动至视频时间戳 toTimeStamp: TimeStamp

完成视频


用户完成观看视频。

  • eventKey: finishVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId

退出学习模块


(适用于多视频学习模块)视频完成页,用户中途退出视频。

  • eventKey: quitLearning
  • category: course
  • 必传字段:
    • 退出视频模块前所完成的视频ID videoId: ObjectId
    • 所退出的学习模块知识点ID topicId: ObjectId

弹窗后选择视频


(适用于用户完成学习模块)知识点滑动页,点击“进入学习模块”,弹出选择视频页面,用户选择某一视频。

  • eventKey: chooseFinishedVideo
  • category: site
  • 必传字段:
    • 知识ID topicId: ObjectId
    • 所选择的视频ID videoId: ObjectId

完成学习模块


用户完成视频,弹出视频完成页面。

  • eventKey: completeLearning
  • category: course
  • 必传字段:
    • 所在知识点ID topicId: ObjectId

退出视频


视频播放页,用户中途退出视频。

  • eventKey: quitVideo
  • category: video
  • 必传字段:
    • 视频ID videoId: ObjectId
    • 退出时的视频时间戳 quitTimeStamp: TimeStamp

点击缓存


视频播放页面,点击缓存按钮。

  • eventKey: clickBuffer
  • category: site
  • 必传字段:
    • 视频ID videoId: ObjectId

点击开始缓存


知识点滑动页,点击右上角缓存按钮。

  • eventKey: startBuffer
  • category: site
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 缓存视频数量 bufferVideos: Number
    • 缓存视频ID列表 videoList: [ObjectId]

缓存成功


知识点滑动页,点击缓存后视频成功缓存。

  • eventKey: bufferSuccess
  • category: site
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 缓存视频列表 videoList: [ObjectId]

缓存失败


知识点滑动页,点击缓存后视频缓失败。

  • eventKey: bufferFailure
  • category: site
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 缓存视频列表 videoList: [ObjectId]
    • 缓存失败原因 errorMessage: String

练习模块

点击练习模块


知识点滑动页,点击进入课后练习按钮。

  • eventKey: startMaster
  • category: course
  • 必传字段:
    • 所在知识点ID topicId: ObjectId

开始专题或挑战


练习模块页,点击“开始专题”。

  • eventKey: startProblemSet
  • category: course
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 所在专题ID problemSetId: ObjectId

退出专题


专题页,点击左上角退出按钮。

  • eventKey: quitProblemSet
  • category: course
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 所在专题ID problemSetId: ObjectId

进入题目


题目页,题目打开。

  • eventKey: enterProblem
  • category: problem
  • 必传字段:
    • 问题ID problemId: ObjectId

答题


专题或挑战页,开始选择选项(选择)或开始输入第一个字符(填空)。

  • eventKey: answerProblem
  • category: problem
  • 必传字段:
    • 问题ID problemId: ObjectId
    • 用户选择选项 userChoice: String

修改选项


(仅用于选择题)题目页,用户重新选择选项。

  • eventKey: modifyChoice
  • category: problem
  • 必传字段:
    • 问题ID problemId: ObjectId
    • 用户新选择选项 userChoice: String

提交答案


题目页,用户点击提交按钮。

  • eventKey: submitAnswer
  • category: problem
  • 必传字段:
    • 问题ID problemId: ObjectId
    • 用户选择选项 answer: String
    • 用户选择正误 correctness: Boolean

视频讲解


题目页,用户点击视频讲解按钮。

  • eventKey: clickExpVideo
  • category: problem
  • 必传字段:
    • 专题ID problemSetId: ObjectId
    • 问题ID problemId: ObjectId
    • 题目状态 problemState: String enum: ['answering', 'correct', 'incorrect']

进入下一题


题目页,用户点击继续按钮。

  • eventKey: clickNextProblem
  • category: site
  • 必传字段:
    • 当前问题ID problemId: ObjectId

退出题目


题目页,点击左上角退出按钮。

  • eventKey: quitProblem
  • category: problem
  • 必传字段:
    • 所在知识点ID topicId: ObjectId
    • 所在专题ID problemSetId: ObjectId
    • 所在层数 layer: String
    • 所在题目ID problemId: ObjectId

专题失败


专题页,用户未通过专题。

  • eventKey: problemSetFailure
  • category: course
  • 必传字段:
    • 专题ID problemSetId: ObjectId

专题通过


专题页,用户通过专题。

  • eventKey: problemSetSuccess
  • category: course
  • 必传字段:
    • 专题ID problemSetId: ObjectId

完成练习模块


用户完成专题及挑战,弹出练习完成页面。

  • eventKey: completeMaster
  • category: course
  • 必传字段:
    • 知识点ID topicId: ObjectId

外循环

点击打开某章节


外循环页,用户点击打开某章节按钮。

  • eventKey: startChapter
  • category: site
  • 必传字段:
    • 章节ID chapterId: ObjectId

点击进入知识点


外循环页,用户打开章节按钮并点击某一知识点(非引入视频)按钮。

  • eventKey: enterTopic
  • category: site
  • 必传字段:
    • 知识点ID topicId: ObjectId
    • 进入状态 state: String, enum: ['success', 'fail']

点击进入观看引入视频


外循环页,用户打开章节并点击章节引入视频按钮。

  • eventKey: startGuideVideo
  • category: site
  • 必传字段:
    • 章节ID chapterId: Object
    • 进入状态 state: String, enum: ['success', 'fail']

进入个人中心


任意位置,用户点击”我的“。

  • eventKey: enterMyProfile
  • category: site

进入设置


任意位置,用户点击”设置“。

  • eventKey: enterSetting
  • category: site

新用户、登录相关

进入引导页


打开应用进入引导页。

  • eventKey: enterGuidePage
  • category: site

立即使用


引导页,用户点击“立即使用”。

  • eventKey: clickExperience
  • category: site

登录-进登录页面


引导页,选择‘注册或登录’

  • eventKey: enterSignupPage
  • category: site

登录-点击忘记密码


登录页,用户点击‘忘记密码’。

  • eventKey: clickForgetPassword
  • category: site

登录-登录


登录页,用户点选“登录”。

  • eventKey: clickLoginBtn
  • category: site

登录-登录成功


登录页,用户成功登录。

  • eventKey: loginSuccess
  • category: site

登录-登录失败


登录页,用户登录失败。

  • eventKey: loginFailure
  • category: site
  • 必传字段:
    • 失败原因 errorMessage: String

登录-QQ登录


登录页,用户点选“QQ账号登录”。

  • eventKey: loginQQ
  • category: site

登录-QQ登录成功


登录页,用户通过QQ成功登录。

  • eventKey: qqLoginSuccess
  • category: site

登录-QQ登录失败


登录页,用户通过QQ登录失败。

  • eventKey: qqLoginFailure
  • category: site
  • 必传字段:
    • 失败原因 errorMessage: String

登录-切换至注册


登录页,用户点选“注册新用户”。

  • eventKey: switchRegister
  • category: site

注册-进入注册页面


注册页,注册页面打开。

  • eventKey: enterSigninPage
  • category: site

注册-切换至登录


注册页,用户选择”立即登录“按钮。

  • eventKey: switchLogin
  • category: site

注册-完成注册


注册页,用户点选“完成注册”。

  • eventKey: clickSignupBtn
  • category: site

注册-注册成功


注册页,用户注册成功。

  • eventKey: registSuccess
  • category: site

注册-注册失败


注册页,用户注册失败。

  • eventKey: registFailure
  • category: site
  • 必传字段:
    • 失败原因 errorMessage: String

未登录完成-以后再说


未登录完成页,用户选择”以后再说“按钮。

  • eventKey: clickLogLater
  • category: site
  • 必传字段:
    • 知识点ID topicId: ObjectId
    • 模块类型 type: String, enum: ['learning', 'practice']

未登录完成-登录


未登录完成页,用户选择”登录“按钮。

  • eventKey: clickLoginNow
  • category: site
  • 必传字段:
    • 知识点ID topicId: ObjectId
    • 模块类型 type: String, enum: ['learning', 'practice']

设置

点击切换教材


设置页,用户选择”教材“。

  • eventKey: clickSwitchBook
  • category: site

切换教材成功


设置页,用户选择”教材“并选择后切换成功。

  • eventKey: switchBookSuccess
  • category: site
  • 必传字段:
    • 用户所选的教材ID newBookId: ObjectId

切换年级


设置页,用户选择”年级“,并选择其一。

  • eventKey: switchGrage
  • category: site
  • 必传字段:
    • 用户所选的年级ID newGradeId: ObjectId

更改网络环境设置


设置页,用户更改”使用2G/3G/4G网络“开关。

  • eventKey: switchNetworkConfig
  • category: site
  • 必传字段:
    • 用户更改后的开关状态 networkConfig: Boolean

分享


设置页,用户选择”分享“。

  • eventKey: clickShareApp
  • category: site
  • 必传字段:
    • (未载于埋点文档)用户分享平台 sharePlatform: String enum: ["qq", "qzone", "weibo", "wechatIM", "wechatShare", 'tencentWeibo']

评分


(适用于iOS应用)设置页,用户选择”给洋葱数学评分“。

  • eventKey: clickRateApp
  • category: site

消息推送


设置页,用户更改”消息推送“开关。

  • eventKey: switchNotification
  • category: site
  • 必传字段:
    • 用户更改后的开关状态 notificationConfig: Boolean

用户反馈


设置页,用户选择”用户反馈“。

  • eventKey: clickFeedback
  • category: site

用户发送反馈


设置页,用户选择”用户反馈“后点击“发送”。

  • eventKey: sendFeedback
  • category: site

缓存管理


设置页,用户选择”缓存管理“。

  • eventKey: clickBufferManagement
  • category: site

缓存管理-点击编辑


设置页,用户进入缓存管理,点击”编辑“。

  • eventKey: clickEditBuffer
  • category: site

缓存管理-点击全选


设置页,用户进入缓存管理,点击编辑,再点击”全选“。

  • eventKey: clickBufferSelectAll
  • category: site

缓存管理-点击删除


设置页,用户进入缓存管理,点击编辑,再点击”删除“。

  • eventKey: clickBufferDel
  • category: site

退出登录


设置页,用户点击个人头像,选择”退出登录“。

  • eventKey: clickLogout
  • category: site

变更目标


我的页,选择”我的目标“并成功变更。

  • eventKey: changePersonalGoal
  • category: site
  • 必传字段
    • 用户变更后的目标 newGoal: String, enum: ['standard', 'advanced']

进入商店


我的页,用户选择”洋葱商店“。

  • eventKey: enterShop
  • category: site

兑换头像


我的页,用户进入洋葱商店,兑换任一头像。

  • eventKey: changeProfileAvatar
  • category: site
  • 必传字段:
    • 用户兑换之头像ID newAvatarId: ObjectId

兑换头像成功


我的页,用户进入洋葱商店,兑换任一头像,并成功兑换。

  • eventKey: changeProfileAvatarSuccess
  • category: site
  • 必传字段:
    • 用户兑换之头像ID newAvatarId: ObjectId

v3.0 Points Documentation (PC)

by ronfe
Last Modified: 15NOV24

本文档基于产品埋点需求文档 v151030 之埋点描述,适用于3.0 PC端埋点。

首页、登录、注册、新手引导

进入首页


进入首页

  • eventKey: enterHome
  • category: site

切换教师版


首页,点击“教师版”按钮

  • eventKey: switchTeacherHome
  • category: site

切换学生版


首页,点击“学生版”按钮

  • eventKey: switchStudentHome
  • category: site

首页-点击登录


首页,点击“登录”按钮

  • eventKey: clickLoginBtn
  • category: site

首页-点击注册


首页,点击“注册”按钮

  • eventKey: clickSignupBtn
  • category: site

学生首页-免费使用


学生版首页第一屏,点击“免费使用”

  • eventKey: clickFreeForUseSS
  • category: site

学生首页-应用下载


学生版首页第一屏,点击“应用下载”

  • eventKey: clickDownloadApp
  • category: site

学生首页-观看视频


学生版首页第二屏,点击“点击观看”

  • eventKey: clickWatchingVideoSample
  • category: site

学生首页-iOS下载


学生版首页末屏,点击“下载iOS版”

  • eventKey: clickDownloadIosSS
  • category: site

学生首页-安卓下载


学生版首页末屏,点击“下载Android版”

  • eventKey: clickDownloadAndoridSS
  • category: site

学生首页-Windows下载


学生版首页末屏,点击“下载Windows版”

  • eventKey: clickDownloadWindowsSS
  • category: site

教师首页-看看微课


教师版首页第一屏,点击“看看微课”

  • eventKey: clickHaveALook
  • category: site

教师首页-免费使用


教师版首页第一屏,点击“免费使用”

  • eventKey: clickFreeForUseTC
  • category: site

教师首页-引入视频


教师版首页第二屏全章引入视频,点击“点击观看”

  • eventKey: clickWatchGuideVideo
  • category: site

教师首页-基础视频


教师版首页第二屏基础视频,点击“点击观看”

  • eventKey: clickWatchElementaryVideo
  • category: site

教师首页-提高食品


教师版首页第二屏提高视频,点击“点击观看”

  • eventKey: clickWatchAdvancedVideo
  • category: site

教师首页-详情点击


教师版首页第四屏,点击“详情点击”

  • eventKey: clickLearnMoreLink
  • category: site

教师首页-请戳


教师版首页第四屏,点击“请戳”

  • eventKey: clickClickMe
  • category: site

教师首页-iOS下载


教师版首页末屏,点击“下载iOS版”

  • eventKey: clickDownloadIosTC
  • category: site

教师首页-安卓下载


教师版首页末屏,点击“下载Android版”

  • eventKey: clickDownloadAndroidTC
  • category: site

教师首页-Windows下载


教师版首页末屏,点击“下载Windows版”

  • eventKey: clickDownloadWindowsTC
  • category: site

登录页-进入登录页


进入登录页

  • eventKey: enterLoginPage
  • category: site

登录页-忘记密码


登录页,点击“忘记密码?”

  • eventKey: clickForgetPasswd
  • category: site

登录页-QQ登录


登录页,点击“QQ账号登录”

  • eventKey: clickQQLogin
  • category: site

登录页-登录成功


登录页,用户登录成功

  • eventKey: loginSuccess
  • category: site

登录页-登录失败


登录页,用户登录失败

  • eventKey: loginFailure
  • category: site
  • 必传字段:
    • 登录失败原因 String

注册页-进入注册页面


进入注册页

  • eventKey: enterSignupPage
  • category: site

注册页-选择学生


注册页,选择“我是学生”

  • eventKey: chooseStudentRole
  • category: site

注册页-选择老师


注册页,选择“我是老师”

  • eventKey: chooseTeacherRole
  • category: site

注册页-注册成功


注册页,用户注册成功

  • eventKey: signupSuccess
  • category: site

注册页-注册失败


注册页,用户注册失败

  • eventKey: signupFailure
  • category: site

新手引导页-跳过


新手引导页,跳过新手引导

  • eventKey: chooseSkipNewbieGuide
  • category: site

新手引导页-开始


新手引导页,开始新手引导

  • eventKey: chooseStartNewbieGuide
  • category: site

新手引导页-观看视频


新手引导页,开始观看视频

  • eventKey: startNewbieGuideVideo
  • category: site

新手引导页-提交答案


新手引导页,提交问题答案

  • eventKey: submitNewbieGuideAnswer
  • category: site

新手引导页-选择教材


新手引导页,成功选择教材

  • eventKey: chooseNewbieBook
  • category: site
  • 必传字段:
    • 所选择的教材版本ID bookId: ObjectId

新手引导页-选择年级


新手引导页,成功选择年级

  • eventKey: chooseNewbieGrade
  • category: site
  • 必传字段:
    • 所选择的的年级ID gradeId: ObjectId

新手引导页-选择目标


新手引导页,成功选择目标

  • eventKey: chooseNewbieTarget
  • category: site
  • 必传字段:
    • 所选择的的目标 target: String, enum: ['standard', 'advanced']

新手引导页-完成


新手引导页,完成新手引导

  • eventKey: finishNewbieGuide
  • category: site

外循环

外循环页-我的学习


外循环页导航栏,点击“我的学习”

  • eventKey: clickMyLearning
  • category: site

外循环页-错题本


外循环页导航栏,点击“错题本”

  • eventKey: clickMistackLog
  • category: site

外循环页-打开章节


外循环页,打开某章节

  • eventKey: startChapter
  • category: site
  • 必传字段:
    • 章节ID chapterId: ObjectId

外循环页-进入知识点


外循环页,打开章节并点击某一知识点(非引入视频)

  • eventKey: enterTopic
  • category: site
  • 必传字段:
    • 知识点ID topicId: ObjectId

外循环页-引入视频


外循环页,打开章节并点击引入视频

  • eventKey: startGuideVideo
  • category: site
  • 必传字段:
    • 章节ID chapterId: ObjectId

外循环页-商店


外循环页,点击商店图标

  • eventKey: enterShop
  • category: site

外循环页-兑换头像


商店页,点击任一头像“兑换”

  • eventKey: changeProfileAvatar
  • category: site
  • 必传字段:
    • 用户兑换之头像ID newAvatarId: ObjectId

外循环页-兑换头像成功


商店页,成功兑换头像

  • eventKey: changeProfileAvatarSuccess
  • category: site
  • 必传字段:
    • 用户兑换之头像ID newAvatarId: ObjectId

外循环页-关注我们


外循环页,点击“关注我们”区域任一按钮

  • eventKey: clickFollowUs
  • category: site
  • 必传字段:
    • 用户所关注的社交媒体 followPlatform: String, enum: ['qqGroup', 'wechat', 'weibo']

外循环页-目标


外循环页,设定(或更改)每周目标

  • eventKey: changePersonalGoal
  • category: site
  • 必传字段:
    • 用户变更后的目标 newGoal: String, enum: ['standard', 'advanced']
var point = new Schema({
"eventKey": String, //Required, event name of the point, refer to the doc
"category": {type: String, enum: ["site", "course", "video", "problem"]}, //Required, event category of the point, refer to the doc
"eventValue": {}, //Conditional optional, relevant event values, refer to the poiunt doc
"eventTime": Number, //Required, timeStamp of points generated, unix epoch time (in ms)
"serverTime": ISODate, //Server required, Time recorded by server
"device": String, //Required, unique id for pc, imei for android, idfa for ios
"deviceAttr": {
"imei": String, //Android app required, device imei
"idfv": String, //iOS app required, device idfv
"idfa": String, //iOS app required, device idfa
"version": String, //App required, app version name
"os": {
"name": String, //Required, operating system name macos/linux/win for pc, android/ios/win for mobile
"version": String //Conditional optional, os version code
},
"model": { //App conditional optional, mobile model information
"brand": String ,
"name": String
},
"browser": { //Non-app required, browser type and version info
"name": String,
"version": String
}
},
"user": ObjectId, //Required, userId for login user, tempId for non-login user
"userAttr": {
"isBatch": Boolean, //Conditional optional, required for login user, True if user is batchly made
"isRegistered": Boolean, //Required, True for login user
"registDate": ISODate, //Conditional optional, required if "isRegistered" is true, user's date of registration
"activateDate": ISODate, //Conditional
"from": String, // Be the same as the user's from (incl. QQ/Weibo/Wechat...)
"role": {"type": String, "enum": ["teacher", "student"]},
"ip": String,
"ipLocation": { // same as header.location in 2.5
"region0": String, //provincal
"region1": String //municipal
},
"school": ObjectId //only for users who registered his/her school
"schoolLocation": {
"region0": String,
"region1": String
}
},
"url": String, //only for pc, the full url
"state": {"type": String, enum: ["normal", "lagged"]}, // lagged for app until mobile send points in real time
"platform": {"type": String, enum: ["web", "app", "share", "landing", "promotion", "vs"]}, //Required
"platform2": {"type": String, enum: ["PC", "android", "iOS"]}, //Required
"q": String
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment