对接三方埋点

Android

gmubase.aar中定义了框架埋点协议InformationCollection.java,对接三方埋点SDK时需要新建一个管理类(独立的组件,依赖GMUBase和埋点SDK)来实现该协议并在方法实现中调用三方SDK提供的方法。同时该管理类需要调用InformationCollection类的public static void setInstance(InformationCollection informationCollection) { instance = informationCollection; }
来调用到管理类,管理类调用到三方SDK,从而实现用户事件采集

  1. 新建一个管理类实现InformationCollection协议,并实现协议中的必选方法:

    public class xxInformationCollectionImpl extends InformationCollection{

    @Override
    public void openPage(String pageId, Map other) {
    调用三方SDK的openPage方法

    }

    @Override
    public void onResume(Context context,String pageId) {

    }
    // ...

    }
  1. 管理类加载时设置管理类的单例到InformationCollection

    public static xxInformationCollectionImpl getInstance(){
    if(instance==null){
    instance = new UMengInformationCollectionImpl();

    InformationCollection.setInstance(instance);
    }
    return instance;
    }
  2. 调用InformationCollection实现调用埋点SDK,以采集打开页面为例:

    if (InformationCollection.getInstance() != null) {
    InformationCollection.getInstance().openPage(mPageId, null);
    }

iOS

GMUBase.frameworkHLAnalytics类定义了框架埋点协议HLAnalyticsProtocol,对接三方埋点SDK时需要新建一个管理类(独立的组件,依赖GMUBase和埋点SDK)来实现该协议并在方法实现中调用三方SDK提供的方法。同时该管理类需要调用HLAnalytics类的+[HLAnalytics setDelegate:]方法将本类单例传递给HLAnalytics,业务页面需要采集用户事件时通过HLAnalytics来调用到管理类,管理类调用到三方SDK,从而实现用户事件采集:

  1. 新建一个管理类实现HLAnalyticsProtocol协议,并实现协议中的必选方法:

    @interface HLUMengAnalyticsManager () <HLAnalyticsProtocol>

    @end

    @implementation HLUMengAnalyticsManager

    - (void)startWithAppkey:(NSString *)appkey
    {
    [UMConfigure initWithAppkey:appkey channel:@"App Store"];
    [MobClick setCrashReportEnabled:NO];
    }

    - (void)event:(NSString *)eventId
    {
    [MobClick event:eventId];
    }

    - (void)beginLogPageView:(NSString *)pageName
    {
    [MobClick beginLogPageView:pageName];
    }

    - (void)endLogPageView:(NSString *)pageName
    {
    [MobClick endLogPageView:pageName];
    }

    - (void)profileSignInWithPUID:(NSString *)puid
    {
    [MobClick profileSignInWithPUID:puid];
    }

    @end
  2. 管理类加载时设置管理类的单例到HLAnalytics

    @implementation HLUMengAnalyticsManager

    + (void)load
    {
    [HLAnalytics setDelegate:self.sharedManager];
    }

    + (instancetype)sharedManager
    {
    static HLUMengAnalyticsManager *_manager;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    _manager = [HLUMengAnalyticsManager new];
    });

    return _manager;
    }

    @end
  3. 调用HLAnalytics完成用户事件采集:

    @interface ViewController ()

    @end

    @implementation ViewController

    - (void)viewDidLoad {
    [super viewDidLoad];
    [HLAnalytics beginLogPageView:NSStringFromClass(self.class)];

    }


    @end