集成 SDK
集成神策分析 SDK
在使用弹窗 SDK 之前,请确保已经集成了神策分析 iOS SDK,版本需要在 v4.2.0及以上。详细集成步骤请参照 iOS SDK 埋点集成使用帮助文档。
集成神策弹窗 SDK
CocoaPods 方式
- 项目 Podfile 中添加以下配置:
pod 'SensorsFocus'
- 在 Podfile 目录下执行 pod install 安装 SDK。
手动集成方式
- 从 GitHub 获取 SDK;
- 将 SDK(SensorsFocus → SensorsFocus 中的 SensorsFocus.xcframework 与 SensorsFocus.bundle)导入 App 项目,并选中 Copy items if needed。
弹窗 SDK 集成 Demo,可参考 GitHub。
初始化 SDK
首先您需要初始化神策分析 SDK,具体可参考:初始化 SDK 并开启全埋点。
神策分析 SDK 初始化完成之后,再初始化神策弹窗 SDK。参考代码如下:
#import <SensorsFocus/SensorsFocus.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 1. 初始化神策分析 SDK
...
// 2. 初始化神策弹窗 SDK
SFConfigOptions *sfOptions = [[SFConfigOptions alloc] initWithApiBaseURL:@"<#服务器地址,请联系运营人员获取#>"];
sfOptions.popupDelegate = self;
sfOptions.campaignDelegate = self;
[SensorsFocus startWithConfigOptions:sfOptions];
return YES;
}
配置 Scheme
关于 Scheme 的配置方法,参考:配置 Scheme。
AppDelegate 中的 - application:openURL:options: 方法中调用 - handleOpenURL: 对神策 Scheme 进行处理。
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) {
return YES;
}
if ([SensorsFocus handleOpenURL:url]) {
return YES;
}
return NO;
}
实现弹窗回调
在 SensorsFocus 初始化时,可以通过设置 SFConfigOptions 的 popupDelegate 和 campaignDelegate 来设置对弹窗的回调监听。遵守 SensorsFocusPopupDelegate 和SensorsFocusCampaignDelegate 协议,并实现以下协议方法。
设置弹窗开始触达回调
在弹窗触达开始时,SDK 会调用 - campaignDidStart: 回调方法。
/**
弹窗开始触达回调
@param campaign 弹窗数据
*/
- (void)campaignDidStart:(SFCampaign *)campaign {
if (campaign.type == SFCampaignTypeCustomized) {
// 自定义弹窗
}
}
设置弹窗触达结束回调
在弹窗触达结束时,SDK 会调用 - campaignDidEnd: 回调方法。
/**
弹窗触达结束回调
@param campaign 弹窗数据
*/
- (void)campaignDidEnd:(SFCampaign *)campaign {
}
设置弹窗触达失败回调
在弹窗触达失败时,SDK 会调用 - campaignFailed: error: 回调方法。
/**
弹窗触达失败回调
@param campaign 弹窗数据
@param error 失败错误信息。除了网络请求中系统默认的错误之外,SDK 也自定义了的部分错误,domain 为 SensorsFocusErrorDomain。错误信息如下:
1. 图片下载失败:1000
2. 获取测试弹窗数据请求失败:1001
*/
- (void)campaignFailed:(SFCampaign *)campaign error:(NSError *)error {
}
设置弹窗按钮点击回调
当用户点击预置弹窗上的按钮、图片或遮罩时,SDK 会触发 - popupDidClickWithPlanID:action: 回调方法。
- (void)popupDidClickWithPlanID:(NSString *)planID action:(SensorsFocusActionModel *)action {
NSLog(@"Did click action: %@,\n Plan id: %@", action, planID);
switch (action.type) {
case SensorsFocusActionTypeClose:
// 自动关闭弹窗
break;
case SensorsFocusActionTypeOpenlink:
// 自定义处理打开链接
NSLog(@"%@", action.value);
break;
case SensorsFocusActionTypeCopy:
// 自动复制弹窗文本
NSLog(@"%@", action.value);
break;
case SensorsFocusActionTypeCustomize:
// 处理自定义信息
NSLog(@"%@", action.extra);
break;
default:
break;
}
}
目前支持的操作有:关闭弹窗、跳转链接、复制文本、自定义链接。对应关系如下:
序号 | 类型 | 弹窗响应 | type | value | extra |
---|---|---|---|---|---|
1 | 关闭弹窗 | 点击后弹窗关闭 | SensorsFocusActionTypeClose | nil | nil |
2 | 跳转链接 | 点击后弹窗关闭 | SensorsFocusActionTypeOpenlink | URL 跳转链接 | nil |
3 | 复制文本 | 点击后弹窗不关闭 | SensorsFocusActionTypeCopy | 被复制的文本 | nil |
4 | 自定义链接 | 点击后弹窗关闭 | SensorsFocusActionTypeCustomize | nil | 自定义的 key-value |
注意
SDK 无法自动处理 SensorsFocusActionTypeOpenlink 和 SensorsFocusActionTypeCustomize 类型,需要手动处理页面跳转操作。
弹窗调试
创建运营计划并测试弹窗
首先在神策智能运营中创建运营计划,并且“触发条件”中的“平台类型”选择 iOS,然后配置好“触达配置”就可以点击右侧的“测试弹窗”按钮以打开二维码。
扫描二维码
使用已安装了测试 App 的设备,通过手机自带的系统相机扫描二维码,扫码后会在浏览器中打开二维码对应的网页。
唤起 App
若 App 已经成功集成 SDK 则会直接唤起 App 或提示询问是否唤起 App。
若 App 集成 SDK 存在问题或未安装 App,则会进入到如下报错界面,请检查您的 App 配置。
测试弹窗效果
跳转成功后,会在 App 内弹出弹窗。
弹窗后的关闭弹窗、点击按钮等效果与创建的运营计划一致。