iOS第三方推送ID配置

概述

基于百度移动统计的用户分群功能,推出的“用户触达-精准定向”功能,可以帮助您管理基于“百度云推送”、“极光”、“个推”等平台的推送Id,并支持根据多种维度筛选定向人群进行推送。具体功能,请登录MTJ网站后,顶部Tab选择“用户分群”,再选择左侧“用户触达-精准定向”进行了解。

在使用该用能时,在SDK集成阶段,需要您通过Api上传第三方平台的推送Id以提供百度移动统计平台进行管理。

具体的Api调用方式如下。

百度移动统计接口声明

  • 接口声明
  1. /**
  2. 推送平台定义
  3. */
  4. typedef enum _BaiduMobStatPushPlatform{
  5. BaiduMobStatPushPlatformBaiduCloud = 0, //百度云推送平台
  6. BaiduMobStatPushPlatformJiGuang = 1, //极光推送平台
  7. BaiduMobStatPushPlatformGeTui = 2, //个推推送平台
  8. BaiduMobStatPushPlatformUmeng = 5, //友盟推送平台
  9. BaiduMobStatPushPlatformXinGe = 6, //信鸽推送平台
  10. BaiduMobStatPushPlatformAliYun = 7, //阿里云推送平台
  11. } BaiduMobStatPushPlatform;
  12. /**
  13. * 上传第三方Push平台的Id,pushId长度限制1024字节。设置为nil或者空字符串,则清空对应平台的pushId
  14. *
  15. * @prama pushId 从第三方Push SDK接口中获取的pushId
  16. * @prama platform 指定Push平台类型,详见枚举声明
  17. */
  18. - (void)setPushId:(NSString *)pushId platform:(BaiduMobStatPushPlatform)platform;
  • 调用示例
  1. // 可以在任意位置调用,建议在startWithAppId之前调用
  2. // 传入百度云推送平台的推送ID、SDK枚举定义的平台类型,其他平台类似。
  3. [[BaiduMobStat defaultStat] setPushId:@"YourPushId" platform:BaiduMobStatPushPlatformBaiduCloud];

第三方推送平台推动ID获取

第三方平台的接入流程,请到对应平台查看接入方法。这里介绍当您成功接入推送平台SDK之后,获取推送ID,并调用setPushId:platform:接口设置到MTJ平台的方法。

百度云推送平台获取推送ID

当您集成完百度云推送SDK之后,找到每一个bindChannelWithCompleteHandler:的函数调用,在其中的回调block中第一行插入如下调用:

  1. [BPush bindChannelWithCompleteHandler:^(id result, NSError *error) {
  2. // [BPush getChannelId]函数是获取推送ID的方法,将其传入MTJ
  3. [[BaiduMobStat defaultStat] setPushId:[BPush getChannelId] platform:BaiduMobStatPushPlatformBaiduCloud];
  4. // 下面执行您自己的逻辑
  5. }];

如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:前,调用如下方法:

  1. [[BaiduMobStat defaultStat] setPushId:[BPush getChannelId] platform:BaiduMobStatPushPlatformBaiduCloud];
  2. [[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];

极光平台获取推送ID

当您集成完极光推送SDK之后,在MTJ SDK的初始化函数startWithAppId:前,调用如下方法:

  1. [[BaiduMobStat defaultStat] setPushId:[JPUSHService registrationID] platform:BaiduMobStatPushPlatformJiGuang];
  2. [[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];

个推平台获取推送ID

当您集成完个推SDK之后,找到每一个GeTuiSdkDidRegisterClient:的函数调用,在其中第一行插入如下调用:

  1. - (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
  2. [[BaiduMobStat defaultStat] setPushId:clientId platform:BaiduMobStatPushPlatformGeTui];
  3. // 下面执行您自己的逻辑
  4. }

如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:前,调用如下方法:

  1. [[BaiduMobStat defaultStat] setPushId:[GeTuiSdk clientId] platform:BaiduMobStatPushPlatformGeTui];
  2. [[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];

友盟推送平台获取推送ID

友盟推送平台,使用iOS系统DeviceToken去除特殊字符后的64位长度id,作为pushID。当您集成完友盟推送SDK之后,在系统回调函数application:didRegisterForRemoteNotificationsWithDeviceToken:中第一行插入如下代码获取pushID:

  1. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  2. NSString *umPushID = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""];
  3. [[BaiduMobStat defaultStat] setPushId:umPushID platform:BaiduMobStatPushPlatformUmeng];
  4. // 下面执行您自己的逻辑
  5. }

信鸽平台获取推送ID

当您集成完信鸽SDK之后,找到每一个xgPushDidRegisteredDeviceToken:error:的函数调用,在其中第一行插入如下调用:

  1. - (void)xgPushDidRegisteredDeviceToken:(NSString *)deviceToken error:(NSError *)error {
  2. [[BaiduMobStat defaultStat] setPushId:deviceToken platform:BaiduMobStatPushPlatformXinGe];
  3. // 下面执行您自己的逻辑
  4. }

如果您找不到以上的函数调用,在MTJ SDK的初始化函数startWithAppId:前,调用如下方法:

  1. [[BaiduMobStat defaultStat] setPushId:[[XGPushTokenManager defaultTokenManager] deviceTokenString] platform:BaiduMobStatPushPlatformXinGe];
  2. [[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];

阿里云推送平台获取推送ID

当您集成完阿里云推送SDK之后,在MTJ SDK的初始化函数startWithAppId:前,调用如下方法:

  1. [[BaiduMobStat defaultStat] setPushId:[CloudPushSDK getDeviceId] platform:BaiduMobStatPushPlatformAliYun];
  2. [[BaiduMobStat defaultStat] startWithAppId:@"YourAppKey"];