TalkingData.h 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. //
  2. // TalkingData.h
  3. // __MyProjectName__
  4. //
  5. // Created by Biao Hou on 11-11-14.
  6. // Copyright (c) 2011年 __MyCompanyName__. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. typedef NS_ENUM(NSUInteger, TDAccountType) {
  10. TDAccountTypeAnonymous = 0, // 匿名帐户
  11. TDAccountTypeRegistered = 1, // 显性注册帐户
  12. TDAccountTypeSinaWeibo = 2, // 新浪微博
  13. TDAccountTypeQQ = 3, // QQ帐户
  14. TDAccountTypeTencentWeibo = 4, // 腾讯微博
  15. TDAccountTypeND91 = 5, // 91帐户
  16. TDAccountTypeWeiXin = 6, // 微信
  17. TDAccountTypeType1 = 11, // 自定义类型1
  18. TDAccountTypeType2 = 12, // 自定义类型2
  19. TDAccountTypeType3 = 13, // 自定义类型3
  20. TDAccountTypeType4 = 14, // 自定义类型4
  21. TDAccountTypeType5 = 15, // 自定义类型5
  22. TDAccountTypeType6 = 16, // 自定义类型6
  23. TDAccountTypeType7 = 17, // 自定义类型7
  24. TDAccountTypeType8 = 18, // 自定义类型8
  25. TDAccountTypeType9 = 19, // 自定义类型9
  26. TDAccountTypeType10 = 20 // 自定义类型10
  27. };
  28. @interface TalkingDataOrder : NSObject
  29. /**
  30. * @method createOrder
  31. * @param orderId 订单id 类型:NSString
  32. * @param total 订单总价 类型:int
  33. * @param currencyType 币种 类型:NSString
  34. */
  35. + (TalkingDataOrder *)createOrder:(NSString *)orderId total:(int)total currencyType:(NSString *)currencyType;
  36. /**
  37. * @method addItemWithCategory
  38. * @param itemId 商品Id 类型:NSString
  39. * @param category 商品类别 类型:NSString
  40. * @param name 商品名称 类型:NSString
  41. * @param unitPrice 商品单价 类型:int
  42. * @param amount 商品数量 类型:int
  43. */
  44. - (TalkingDataOrder *)addItem:(NSString *)itemId category:(NSString *)category name:(NSString *)name unitPrice:(int)unitPrice amount:(int)amount;
  45. @end
  46. @interface TalkingDataShoppingCart : NSObject
  47. /**
  48. * @method createShoppingCart
  49. */
  50. + (TalkingDataShoppingCart *)createShoppingCart;
  51. /**
  52. * @method addItem
  53. * @param itemId 商品Id 类型:NSString
  54. * @param category 商品类别 类型:NSString
  55. * @param name 商品名称 类型:NSString
  56. * @param unitPrice 商品单价 类型:int
  57. * @param amount 商品数量 类型:int
  58. */
  59. - (TalkingDataShoppingCart *)addItem:(NSString *)itemId category:(NSString *)category name:(NSString *)name unitPrice:(int)unitPrice amount:(int)amount;
  60. @end
  61. // 以下枚举用于WatchApp页面追踪
  62. typedef enum {
  63. TDPageTypeGlance = 1,
  64. TDPageTypeNotification = 2,
  65. TDPageTypeWatchApp = 3
  66. } TDPageType;
  67. @interface TalkingData: NSObject
  68. /**
  69. * @method getDeviceID
  70. * 获取SDK所使用的DeviceID
  71. * @return DeviceID
  72. */
  73. + (NSString *)getDeviceID;
  74. /**
  75. * @method setLogEnabled
  76. * 统计日志开关(可选)
  77. * @param enable 默认是开启状态
  78. */
  79. + (void)setLogEnabled:(BOOL)enable;
  80. /**
  81. * @method setExceptionReportEnabled
  82. * 是否捕捉程序崩溃记录(可选)
  83. 如果需要记录程序崩溃日志,请将值设成YES,并且在调用sessionStarted:withChannelId:之前调用此函数
  84. * @param enable 默认是 NO
  85. */
  86. + (void)setExceptionReportEnabled:(BOOL)enable;
  87. /**
  88. * @method setSignalReportEnabled
  89. * 是否捕捉异常信号(可选)
  90. 如果需要开启异常信号捕捉功能,请将值设成YES,并且在调用sessionStarted:withChannelId:之前调用此函数
  91. * @param enable 默认是NO
  92. */
  93. + (void)setSignalReportEnabled:(BOOL)enable;
  94. /**
  95. * @method setLatitude:longitude:
  96. * 设置位置信息(可选)
  97. * @param latitude 维度
  98. * @param longitude 经度
  99. */
  100. + (void)setLatitude:(double)latitude longitude:(double)longitude;
  101. /**
  102. * @method sessionStarted:withChannelId:
  103. * 初始化统计实例,请在application:didFinishLaunchingWithOptions:方法里调用
  104. * @param appKey 应用的唯一标识,统计后台注册得到
  105. * @param channelId 渠道名,如“app store”(可选)
  106. */
  107. + (void)sessionStarted:(NSString *)appKey withChannelId:(NSString *)channelId;
  108. /**
  109. * @method initWithWatch:
  110. * 初始化WatchApp统计实例,请在每个入口类的init方法里调用
  111. * @param appKey 应用的唯一标识,统计后台注册得到
  112. */
  113. + (void)initWithWatch:(NSString *)appKey;
  114. /**
  115. * @method onRegister 注册
  116. * @param accountId 帐户ID
  117. * @param type 帐户类型
  118. * @param name 帐户昵称
  119. */
  120. + (void)onRegister:(NSString *)accountId type:(TDAccountType)type name:(NSString *)name;
  121. /**
  122. * @method onLogin 登录
  123. * @param accountId 帐户ID
  124. * @param type 帐户类型
  125. * @param name 帐户昵称
  126. */
  127. + (void)onLogin:(NSString *)accountId type:(TDAccountType)type name:(NSString *)name;
  128. /**
  129. * @method trackEvent
  130. * 统计自定义事件(可选),如购买动作
  131. * @param eventId 事件名称(自定义)
  132. */
  133. + (void)trackEvent:(NSString *)eventId;
  134. /**
  135. * @method trackEvent:label:
  136. * 统计带标签的自定义事件(可选),可用标签来区别同一个事件的不同应用场景
  137. 如购买某一特定的商品
  138. * @param eventId 事件名称(自定义)
  139. * @param eventLabel 事件标签(自定义)
  140. */
  141. + (void)trackEvent:(NSString *)eventId label:(NSString *)eventLabel;
  142. /**
  143. * @method trackEvent:label:parameters
  144. * 统计带二级参数的自定义事件,单次调用的参数数量不能超过10个
  145. * @param eventId 事件名称(自定义)
  146. * @param eventLabel 事件标签(自定义)
  147. * @param parameters 事件参数 (key只支持NSString, value支持NSString和NSNumber)
  148. */
  149. + (void)trackEvent:(NSString *)eventId
  150. label:(NSString *)eventLabel
  151. parameters:(NSDictionary *)parameters;
  152. /**
  153. * @method setGlobalKV:value:
  154. * 添加全局的字段,这里的内容会每次的自定义事都会带着,发到服务器。也就是说如果您的自定义事件中每一条都需要带同样的内容,如用户名称等,就可以添加进去
  155. * @param key 自定义事件的key,如果在之后,创建自定义的时候,有相同的key,则会覆盖,全局的里相同key的内容
  156. * @param value 这里是NSObject类型,或者是NSString 或者NSNumber类型
  157. */
  158. + (void)setGlobalKV:(NSString *)key value:(id)value;
  159. /**
  160. * @method removeGlobalKV:
  161. * 删除全局数据
  162. * @param key 自定义事件的key
  163. */
  164. + (void)removeGlobalKV:(NSString *)key;
  165. /**
  166. * @method trackPageBegin
  167. * 开始跟踪某一页面(可选),记录页面打开时间
  168. 建议在viewWillAppear或者viewDidAppear方法里调用
  169. * @param pageName 页面名称(自定义)
  170. */
  171. + (void)trackPageBegin:(NSString *)pageName;
  172. /**
  173. * @method trackPageBegin:withPageType:
  174. * 开始跟踪WatchApp某一页面(可选),记录页面打开时间
  175. 建议在willActivate方法里调用
  176. * @param pageName 页面名称(自定义)
  177. * @param pageType 页面类型(TDPageType枚举类型)
  178. */
  179. + (void)trackPageBegin:(NSString *)pageName withPageType:(TDPageType)pageType;
  180. /**
  181. * @method trackPageEnd
  182. * 结束某一页面的跟踪(可选),记录页面的关闭时间
  183. 此方法与trackPageBegin方法结对使用,
  184. 在iOS应用中建议在viewWillDisappear或者viewDidDisappear方法里调用
  185. 在Watch应用中建议在DidDeactivate方法里调用
  186. * @param pageName 页面名称,请跟trackPageBegin方法的页面名称保持一致
  187. */
  188. + (void)trackPageEnd:(NSString *)pageName;
  189. /**
  190. * @method onPlaceOrder 下单
  191. * @param accountId 帐号 类型:NSString
  192. * @param order 订单 类型:TalkingDataOrder
  193. */
  194. + (void)onPlaceOrder:(NSString *)accountId order:(TalkingDataOrder *)order;
  195. /**
  196. * @method onOrderPaySucc 支付
  197. * @param accountId 帐号 类型:NSString
  198. * @param payType 支付类型 类型:NSString
  199. * @param order 订单详情 类型:TalkingDataOrder
  200. */
  201. + (void)onOrderPaySucc:(NSString *)accountId payType:(NSString *)payType order:(TalkingDataOrder *)order;
  202. /**
  203. * @method onViewItem
  204. * @param itemId 商品Id 类型:NSString
  205. * @param category 商品类别 类型:NSString
  206. * @param name 商品名称 类型:NSString
  207. * @param unitPrice 商品单价 类型:int
  208. */
  209. + (void)onViewItem:(NSString *)itemId category:(NSString *)category name:(NSString *)name unitPrice:(int)unitPrice;
  210. /**
  211. * @method onAddItemToShoppingCart
  212. * @param itemId 商品Id 类型:NSString
  213. * @param category 商品类别 类型:NSString
  214. * @param name 商品名称 类型:NSString
  215. * @param unitPrice 商品单价 类型:int
  216. * @param amount 商品数量 类型:int
  217. */
  218. + (void)onAddItemToShoppingCart:(NSString *)itemId category:(NSString *)category name:(NSString *)name unitPrice:(int)unitPrice amount:(int)amount;
  219. /**
  220. * @method onViewShoppingCart
  221. * @param shoppingCart 购物车信息 类型:TalkingDataShoppingCart
  222. */
  223. + (void)onViewShoppingCart:(TalkingDataShoppingCart *)shoppingCart;
  224. @end