Android
gmubase.aar
中定义了框架埋点协议InformationCollection.java
,对接三方埋点SDK时需要新建一个管理类(独立的组件,依赖GMUBase和埋点SDK)来实现该协议并在方法实现中调用三方SDK提供的方法。同时该管理类需要调用InformationCollection
类的public static void setInstance(InformationCollection informationCollection) {
instance = informationCollection;
}
来调用到管理类,管理类调用到三方SDK,从而实现用户事件采集
新建一个管理类实现
InformationCollection
协议,并实现协议中的必选方法:public class xxInformationCollectionImpl extends InformationCollection{
public void openPage(String pageId, Map other) {
调用三方SDK的openPage方法
}
public void onResume(Context context,String pageId) {
}
// ...
}
管理类加载时设置管理类的单例到
InformationCollection
:public static xxInformationCollectionImpl getInstance(){
if(instance==null){
instance = new UMengInformationCollectionImpl();
InformationCollection.setInstance(instance);
}
return instance;
}调用
InformationCollection
实现调用埋点SDK,以采集打开页面为例:if (InformationCollection.getInstance() != null) {
InformationCollection.getInstance().openPage(mPageId, null);
}
iOS
GMUBase.framework
中HLAnalytics
类定义了框架埋点协议HLAnalyticsProtocol
,对接三方埋点SDK时需要新建一个管理类(独立的组件,依赖GMUBase和埋点SDK)来实现该协议并在方法实现中调用三方SDK提供的方法。同时该管理类需要调用HLAnalytics
类的+[HLAnalytics setDelegate:]
方法将本类单例传递给HLAnalytics
,业务页面需要采集用户事件时通过HLAnalytics
来调用到管理类,管理类调用到三方SDK,从而实现用户事件采集:
新建一个管理类实现
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管理类加载时设置管理类的单例到
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调用
HLAnalytics
完成用户事件采集:@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[HLAnalytics beginLogPageView:NSStringFromClass(self.class)];
}
@end