iOS第三方推送ID配置
概述
基于百度移动统计的用户分群功能,推出的“用户触达-精准定向”功能,可以帮助您管理基于“百度云推送”、“极光”、“个推”等平台的推送Id,并支持根据多种维度筛选定向人群进行推送。具体功能,请登录MTJ网站后,顶部Tab选择“用户分群”,再选择左侧“用户触达-精准定向”进行了解。
在使用该用能时,在SDK集成阶段,需要您通过Api上传第三方平台的推送Id以提供百度移动统计平台进行管理。
具体的Api调用方式如下。
百度移动统计接口声明
- 接口声明
/**
推送平台定义
*/
typedef enum _BaiduMobStatPushPlatform{
BaiduMobStatPushPlatformBaiduCloud = 0, //百度云推送平台
BaiduMobStatPushPlatformJiGuang = 1, //极光推送平台
BaiduMobStatPushPlatformGeTui = 2, //个推推送平台
BaiduMobStatPushPlatformUmeng = 5, //友盟推送平台
BaiduMobStatPushPlatformXinGe = 6, //信鸽推送平台
BaiduMobStatPushPlatformAliYun = 7, //阿里云推送平台
} BaiduMobStatPushPlatform;
/**
* 上传第三方Push平台的Id,pushId长度限制1024字节。设置为nil或者空字符串,则清空对应平台的pushId
*
* @prama pushId 从第三方Push SDK接口中获取的pushId
* @prama platform 指定Push平台类型,详见枚举声明
*/
- (void)setPushId:(NSString *)pushId platform:(BaiduMobStatPushPlatform)platform;
- 调用示例
// 可以在任意位置调用,建议在startWithAppId之前调用
// 传入百度云推送平台的推送ID、SDK枚举定义的平台类型,其他平台类似。
[[BaiduMobStat defaultStat] setPushId:@"YourPushId" platform:BaiduMobStatPushPlatformBaiduCloud];
第三方推送平台推动ID获取
第三方平台的接入流程,请到对应平台查看接入方法。这里介绍当您成功接入推送平台SDK之后,获取推送ID,并调用setPushId:platform:
接口设置到MTJ平台的方法。
百度云推送平台获取推送ID
当您集成完百度云推送SDK之后,找到每一个bindChannelWithCompleteHandler:
的函数调用,在其中的回调block中第一行插入如下调用:
[BPush bindChannelWithCompleteHandler:^(id result, NSError *error) {
// [BPush getChannelId]函数是获取推送ID的方法,将其传入MTJ
[[BaiduMobStat defaultStat] setPushId:[BPush getChannelId] platform:BaiduMobStatPushPlatformBaiduCloud];
// 下面执行您自己的逻辑
}];
如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:
前,调用如下方法:
[[BaiduMobStat defaultStat] setPushId:[BPush getChannelId] platform:BaiduMobStatPushPlatformBaiduCloud];
[[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];
极光平台获取推送ID
当您集成完极光推送SDK之后,在MTJ SDK的初始化函数startWithAppId:
前,调用如下方法:
[[BaiduMobStat defaultStat] setPushId:[JPUSHService registrationID] platform:BaiduMobStatPushPlatformJiGuang];
[[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];
个推平台获取推送ID
当您集成完个推SDK之后,找到每一个GeTuiSdkDidRegisterClient:
的函数调用,在其中第一行插入如下调用:
- (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
[[BaiduMobStat defaultStat] setPushId:clientId platform:BaiduMobStatPushPlatformGeTui];
// 下面执行您自己的逻辑
}
如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:
前,调用如下方法:
[[BaiduMobStat defaultStat] setPushId:[GeTuiSdk clientId] platform:BaiduMobStatPushPlatformGeTui];
[[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];
友盟推送平台获取推送ID
友盟推送平台,使用iOS系统DeviceToken去除特殊字符后的64位长度id,作为pushID。当您集成完友盟推送SDK之后,在系统回调函数application:didRegisterForRemoteNotificationsWithDeviceToken:
中第一行插入如下代码获取pushID:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *umPushID = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""];
[[BaiduMobStat defaultStat] setPushId:umPushID platform:BaiduMobStatPushPlatformUmeng];
// 下面执行您自己的逻辑
}
信鸽平台获取推送ID
当您集成完信鸽SDK之后,找到每一个xgPushDidRegisteredDeviceToken:error:
的函数调用,在其中第一行插入如下调用:
- (void)xgPushDidRegisteredDeviceToken:(NSString *)deviceToken error:(NSError *)error {
[[BaiduMobStat defaultStat] setPushId:deviceToken platform:BaiduMobStatPushPlatformXinGe];
// 下面执行您自己的逻辑
}
如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:
前,调用如下方法:
[[BaiduMobStat defaultStat] setPushId:[[XGPushTokenManager defaultTokenManager] deviceTokenString] platform:BaiduMobStatPushPlatformXinGe];
[[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];
阿里云推送平台获取推送ID
当您集成完阿里云推送SDK之后,在MTJ SDK的初始化函数startWithAppId:
前,调用如下方法:
[[BaiduMobStat defaultStat] setPushId:[CloudPushSDK getDeviceId] platform:BaiduMobStatPushPlatformAliYun];
[[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];