iOS SDK 集成文档

iOS SDK API 参考

下载SDK

更新时间:2017/3/23

AppAdhoc iOS SDK  2.3.4

导入SDK

Objective-C  |  Swift

将下载得到的 AdhocSDK.framework 拖入到的Xcode工程目录Supporting Files中,在弹出的options界面中勾选 Copy items if needed,并确保 Add to targets 勾选相应的 target:

引入SDK

检查 TARGETS --> Build Phases --> Link Binary With Libraries 选项下是否已经加入 AdhocSDK.framework,如果没有,请手动加入。并手动链接libsqlite3.dylib或者,直接引入SDK:

引入SDK

在 TARGETS --> Build Settings 选项下 Other Linker Flags 中设置链接器参数: -ObjC。

链接器参数

或者,使用CocoaPods安装,只需在项目根目录的Podfile文件中添加:

pod 'AdhocSDK', '~> 2.3.3'

然后在Terminal中执行:

pod install

新建"Bridging-Header.h"文件,并在该文件中引入AdhocSDK头文件@import AdhocSDK,在 TARGETS —> Build Settings 选项下 Objective-C Bridging Header 写入"Bridging-Header.h"文件的相对路径。

权限设置

1.在info.plist文件中添加相机权限: 相机

2.为了保证用户的唯一性,SDK将设备ID存储在本地Keychain中,iOS10需在Capabilities中打开Keychain sharing 相机

SDK初始化

在@selector(application:didFinishLaunchingWithOptions:)中:

Objective-C  |  Swift
AdhocSDKConfig *config = [AdhocSDKConfig defaultConfig];
config.appKey = @“ADHOC_xxx”;
[AdhocSDK startWithConfigure:config options:launchOptions];
var config:AdhocSDKConfig = AdhocSDKConfig.defaultConfig() as! AdhocSDKConfig
config.appKey = “ADHOC_xxx”
AdhocSDK.start(withConfigure: config, options: launchOptions)

并设置appKey为 AppAdhoc 后台的app_key值。“app_key” 是在登录 AppAdhoc 后,创建“应用”之后获得的授权标识。

可在AppAdhoc控制台应用列表找到, 如下图红线部分:

app_key

请勿在SDK基础上进行自行封装,以免影响到试验逻辑,造成试验无法正常运行。如果确有自行封装的需求,请与客户经理联系,获取注意事项。

编程模式:根据“试验变量”展示相应内容

在编程模式中,“试验变量”的值决定了展示的内容或程序的逻辑。可视化试验可跳过此步骤。

注意:试验变量值应由PM或相关A/B Testing需求制定人员在后台提前录入完毕,如下图“版本管理”红线部分:

app_key

在调用SDK之前,记得引用头文件:

#import "AdhocSDK/AdhocSDK.h"

展示相应内容需要两步:

1.获取AppAdoc 后台试验变量

Objective-C  |  Swift
[AdhocSDK getFlag:@"isNewHomePage" default:@(NO)]
AdhocSDK.getFlag("isNewHomePage", default: false).boolValue

2.再根据所获取的试验变量设置来执行不同版本的代码,在相应的测试页面添加代码

Objective-C  |  Swift
- (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
      //获取Boolean类型的试验变量isNewHomePage的值
      BOOL isNewHomePage = [[AdhocSDK getFlag:@" isNewHomePage " default:@(NO)] boolValue];
      if (isNewHomePage) {
          //跳转至新首页
      } else {
          //跳转至新旧首页
      }
  }

其中,'isNewHomePage' 即是“试验变量“,应与上图中红线标识保持一致。

请注意在用户访问到试验页面时,需要触发所有变量才算作进入试验,否则将不会上报试验数据。在此示例中,“AdhocSDK getFlag:@" isNewHomePage " default:@(NO)] boolValue”算作触发变量“isNewHomePage”。

override func viewWillAppear(animated: Bool) {
      super.viewWillAppear(animated)
      //获取Boolean类型的试验变量isNewHomePage的值
      let isNewHomePage = AdhocSDK.getFlag("isNewHomePage", default: false).boolValue
      if isNewHomePage == true {
          //跳转至新首页
      } else {
          //跳转至新旧首页
      }
  }

其中,'isNewHomePage' 即是“试验变量“,应与上图中红线标识保持一致。

请注意在用户访问到试验页面时,需要触发所有变量才算作进入试验,否则将不会上报试验数据。在此示例中,“AdhocSDK.getFlag("isNewHomePage", default: false).boolValue”算作触发变量“isNewHomePage”。

编程模式:上报指标

指标用于量化试验结果的好坏,AppAdhoc 后台中的试验图表根据此数据生成。

优化指标

比如在进入某一逻辑分支后,可以统计点击次数。将上图中的指标“clickTimes”传入函数track实现上报指标, 每次累加1:

Objective-C  |  Swift
- (IBAction)btnClicked:(id)sender {
    [AdhocSDK track:@"clickTimes" value:@(1)];
}
func btnClicked(btn: UIButton) {
    AdhocSDK.track("clickTimes", value: 1)
}

启用预定义指标

AppAdhoc提供3个预定义指标:访问时长、会话数、崩溃数,只需要在init时添加对应配置,即可获取统计数据。

注意:指标值应由PM或相关AB Test需求制定人员在后台选择添加:

优化指标

在init方法中加入以下配置项:

Objective-C  |  Swift
AdhocSDKConfig *config = [AdhocSDKConfig defaultConfig];
    //统计崩溃次数
    config.crashTrackEnabled = YES;
    //统计APP访问次数
    config.sessionTrackEnabled = YES;
    //统计访问时长
    config.durationTrackEnabled = YES;

[AdhocSDK startWithConfigure:config options:launchOptions];
var config:AdhocSDKConfig = AdhocSDKConfig.defaultConfig() as! AdhocSDKConfig
    //统计崩溃次数
    config.crashTrackEnabled = YES;
    //统计APP访问次数
    config.sessionTrackEnabled = YES;
    //统计访问时长
    config.durationTrackEnabled = YES;

AdhocSDK.start(withConfigure: config, options: launchOptions)

集成调试

集成调试只是为验证SDK的集成是否成功(并不是真正开始试验!)。

Objective-C  |  Swift

在SDK启动时设置是否显示调试按钮

AdhocSDKConfig *config = [AdhocSDKConfig defaultConfig];
#ifdef DEBUG
    config.debugAssistiveShow = YES;
#else
    config.debugAssistiveShow = NO;
#endif
[AdhocSDK startWithConfigure:config options:launchOptions];

在工程任意地方添加如下代码:

var config:AdhocSDKConfig = AdhocSDKConfig.defaultConfig() as! AdhocSDKConfig
#if DEBUG
    config.debugAssistiveShow = true
#else
    config.debugAssistiveShow = false
#endif
AdhocSDK.start(withConfigure: config, options: launchOptions)

在Debug模式下启动APP,会出现下图中的悬浮图标:

在debug模式下启动APP的悬浮图标

点击上面的悬浮图标,扫描后台系统“集成调试”中的二维码,进入相应试验:

app_key

开始试验

恭喜,您完成了AppAdhoc AB Testing Web SDK的埋点集成工作,请通知PM或相关AB Test需求制定人员,点下开始试验按钮吧!

注意:确保app_key, 试验变量字符串,指标字符串与后台截图处一一对应,否则可能出现异常或无试验数据情况。

高级功能 自定义受众定向(需要联系管理员开启)

AppAdhoc Web SDK 会自动把浏览器名称、版本、语言等用户标签自动上传,开发者也可以根据需要给当前用户打上合适的自定义标签,进而实现将不符合条件的用户排除在此次试验之外。比如只想要女性用户,或30岁以下的用户参与试验等。

注意:自定义受众定向条件应由PM或相关AB Test需求制定人员在后台提前录入完毕,如下图“受众定向”红线部分。

在运行控制/右侧定向试验:

受众定向

选择分组,点击编辑用户群:

受众定向

即得到受众条件的key,在下图例子中,“sex”是key:

受众定向

Objective-C  |  Swift

在application:didFinishLaunchingWithOptions:方法中进行设置:

NSString *sex = @"male" ; //根据您自身的业务获取的用户性别

在SDK启动时设置定向条件:

AdhocSDKConfig *config = [AdhocSDKConfig defaultConfig];
config.customProperty = @{@“sex”: sex};
[AdhocSDK startWithConfigure:config options:launchOptions];

在application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool方法中进行设置:

//eg.对用户性别进行区别统计
let sex = “male” or “female” //获取用户性别
var config:AdhocSDKConfig = AdhocSDKConfig.defaultConfig() as! AdhocSDKConfig
config.customProperty = [“sex”: sex]
AdhocSDK.start(withConfigure: config, options: launchOptions)

API 参考

iOS SDK API 参考

results matching ""

    No results matching ""