MergerExposureLogManage.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // MergerExposureLogManage.h
  3. // SPMTracker
  4. //
  5. // Created by BoTao on 2017/4/6.
  6. // Copyright © 2017年 Alipay. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #ifndef MergerExposureLogManage_h
  10. #define MergerExposureLogManage_h
  11. NS_ASSUME_NONNULL_BEGIN
  12. extern NSString* const kConfigTime;
  13. extern NSString* const kConfigArea;
  14. /////////////////////////////////////////////////////////////////////////////////////
  15. @protocol MergerExposureLogProtocel <NSObject>
  16. //上报曝光埋点
  17. -(void)uploadMergerExposureLogWithSeedId:(NSString *)seedId
  18. entityId:(NSString *)entityId
  19. bizCode:(NSString *)bizCode
  20. extParams:(NSDictionary *)param
  21. view:(nullable NSObject *)view
  22. pageId:(nullable NSString *)pageId
  23. logLevel:(NSString *)logLevel;
  24. @end
  25. /////////////////////////////////////////////////////////////////////////////////////
  26. @interface MergerExposureLogManage : NSObject
  27. @property (nonatomic, strong) id<MergerExposureLogProtocel> logProtocol;
  28. /*
  29. * 延时曝光
  30. * 解决列表元素曝光需求,每个元素不会重复曝光,储存曝光日志,达到上报条件时,多条曝光日志合并后上报埋点
  31. *
  32. * @param spmId: 埋点SPMID
  33. * @param entityId entityId需要从埋点平台找@望乡 申请
  34. * @param rid: RPC唯一标示,可以时tracerid、recommondid等
  35. * @param pos: cell索引号,类似SPMID的N
  36. * @param extParams: 其他扩展参数,既原埋点第四位的扩展参数
  37. * @param view: 对应ViewController,view、pageId必须有一个不为空
  38. * @param pageId: 对应ViewController的pageId,view、pageId必须有一个不为空
  39. */
  40. - (void)writeMergerExposureLogWithSeedId:(NSString *)seedId
  41. entityId:(NSString *)entityId
  42. rid:(NSString *)rid
  43. position:(NSString *)pos
  44. bizCode:(NSString *)bizCode
  45. extParams:(NSDictionary *)extParams
  46. view:(nullable NSObject *)view
  47. pageId:(nullable NSString *)pageId
  48. logLevel:(NSString *)logLevel ;
  49. /*
  50. * 立即上报,业务需要在vc的viewWillDisappear中调用,否则曝光埋点可能未上报
  51. *
  52. * @param spmId: 埋点SPMID,取前a、b位,所有匹配spmid都上报
  53. * @param view: 对应ViewController,view、pageId必须有一个不为空
  54. * @param pageId: 对应ViewController的pageId,view、pageId必须有一个不为空
  55. */
  56. - (void)commiteMergerExposureLogWithSpmId:(nullable NSString *)spmId
  57. view:(nullable NSObject *)view
  58. pageId:(nullable NSString *)pageId;
  59. /*
  60. * 类方法,触发所有MergerExposureLogManage实例上报
  61. *
  62. * @param seedId: 埋点SPMID,取前a、b位,所有匹配seedId都上报
  63. * @param view: 对应ViewController,view、pageId必须有一个不为空
  64. * @param pageId: 对应ViewController的pageId,view、pageId必须有一个不为空
  65. */
  66. + (void)commiteAllMergerExposureLogWithSpmId:(nullable NSString *)seedId
  67. view:(nullable NSObject *)view
  68. pageId:(nullable NSString *)pageId;
  69. @end
  70. NS_ASSUME_NONNULL_END
  71. #endif