京东渲染开屏广告
简介
SDK 为接入方提供了开屏广告,开屏广告建议为用户在进入 App 时展示的全屏广告。
注意❗️❗❗️ 开屏采用动态化渲染方式后,JADSplashView 类样式属性(splashStyle)配置不再生效
开始之前
在开始集成开屏广告之前,您需要完成以下步骤:
- 在京媒合作平台创建开发者账号,添加应用,然后申请并配置一个京东渲染开屏的代码位。
将 iOS SDK 集成到您的开发项目并完成 SDK 初始化操作
注意❗️❗❗️ 2.1.0及后续版本,区分了京东渲染与媒体渲染代码位,如采用京东渲染接口加载广告,需传入京东渲染代码位
- 注意❗️❗❗️ 2.1.0及后续版本,京东渲染开屏只需要创建一个代码位即可,SDK不再有入参尺寸比例要求
使用说明
京东渲染开屏广告使用 JADSplashView 对象调用 loadAdData 方法请求广告,使用 addSubview 添加广告进行展示,通过设置 JADSplashViewDelegate 代理,获取广告、展示、点击、关闭、跳过等回调。
步骤 1. 初始化开屏广告
京媒SDK 触发几个事件来通知您开屏广告活动。要显示开屏广告,需要创建 JADSplashView 对象,设置它的委托并加载广告。
创建 JADSplashView 对象
必传参数:
字段定义 | 字段名称 | 字段类型 | 备注 |
---|---|---|---|
slotID | 代码位 | NSString | 必传参数,代码位ID |
adSize | 尺寸 | CGSize | 必传参数,广告位请求尺寸 |
rootViewController | 控制器 | UIViewController | 必传参数,落地页跳转所需控制器 |
delegate | 开屏视图代理 | id |
必传参数,回调代理 |
可选参数:
字段定义 | 字段名称 | 字段类型 | 备注 |
---|---|---|---|
tolerateTime | 容忍超时时间 | NSTimeInterval | 默认超时时间为5s |
skipTime | 跳过超时时间 | NSTimeInterval | 默认超时时间为5s |
hideSkipButton | 隐藏跳过按钮 | BOOL | 如果您自定义跳过按钮,则需要调用removeSplashView方法来关闭开屏广告 |
注意❗️❗❗️ JADClickEventTriggerType 触发点击事件的手势类型,该可选属性已做过期处理
下面的代码片段演示了如何使用 JADSplashView 类来创建 splashView 对象,并实现 JADSplashView 接口来接收 splashView 广告事件。SDK 将通知委托所有可能发生的事件如下:
@property (strong, nonatomic) JADSplashView *splashView;
- (JADSplashView *)splashView {
if(!_splashView) {
_splashView = [[JADSplashView alloc] initWithSlotID:@"YOUR_SLOT_ID" adSize:CGSizeMake(splashWidth, splashHeight)];
// Required 回调代理
_splashView.delegate = self;
// Required 开屏落地页控制器设置
_splashView.rootViewController = self.window.rootViewController;
// Optional 加载广告最大容忍时长,默认5s
_splashView.tolerateTime = 5;
// Optional 开屏广告跳过时长,默认5s
_splashView.skipTime = 5;
// Optional 隐藏跳过按钮
_splashView.hideSkipButton = YES;
}
return _splashView;
}
JADSplashViewDelegate 回调说明
在代码中实现以下回调函数,以在收到广告状态时处理广告逻辑。通过 JADSplashViewDelegate 协议声明的方法,允许采用的委托响应来自 JADSplashView 类的消息,从而响应诸如是否已加载广告或用户单击广告之类的操作。
回调方法 | 注释 |
---|---|
jadSplashViewDidLoadSuccess: | 加载成功回调,建议在该回调方法中统计您的请求成功数 |
jadSplashViewDidLoadFailure:error: | 返回的错误码(error),表示广告加载失败的原因,所有错误码详情,请见链接 Link |
jadSplashViewDidRenderSuccess: | 渲染成功回调,建议在该回调方法中统计您的填充数 |
jadSplashViewDidRenderFailure:error: | 渲染失败回调,网络原因或者硬件原因导致渲染失败,可以更换手机或者网络环境测试。 |
jadSplashViewDidExposure: | 有效曝光回调,建议在该回调方法中统计您的曝光数 |
jadSplashViewDidClick: | 点击回调,建议在该回调方法中统计您的点击数 |
jadSplashViewDidClose: | 关闭回调,当点击跳过按钮或者用户点击广告时会直接触发此回调,建议在此回调方法中直接进行广告对象的移除动作,并将广告对象置为nil |
步骤 2. 加载开屏广告
调用 loadAdData 方法,请求开屏广告。
[self.splashView loadAdData];
调用 preloadAdData 方法,预缓存广告
[self.splashView preloadAdData];
步骤 3. 显示开屏广告
通过 JADSplashViewDelegate 协议声明的方法,当响应 Render Success 回调方法时展示广告
- (void)jadSplashViewDidRenderSuccess:(JADSplashView *)splashView {
NSLog(@"SplashView Render Success");
[self.window.rootViewController.view addSubview:splashView];
}
自定义关闭广告
媒体可通过调用 removeSplashView 方法来关闭广告。(如果您自定义跳过按钮,则需要调用此方法来关闭开屏广告)
[_splashView removeSplashView];
获取广告价格
// 获取竞价价格,广告加载成功后才能获取到价格,单位:分
NSInteger price = _splashView.price;
注意事项
- 开屏广告的请求最好放在didFinishLaunchingWithOptions回调方法中进行相关的处理,避免任何形式的缓存处理,开屏广告的请求统一放在前台进行相关的处理
- 避免出现展示广告的window被提前释放或取错window的情况
- 在jadSplashViewDidLoadFailure:error 回调方法中做广告对象移除操作,避免广告请求失败时导致的一些特定场景
- 确认设置了Allow Arbitrary Loads权限,避免某些广告资源无法加载情景的发生
- 开屏广告的容忍超时时间建议设置在5s以上,确保和自身项目的请求超时时间不冲突,避免出现请求失败的场景
- 开屏广告返回的是一个view,客户端直接展示view即可。如果要在底部添加自身logo,需要缩小开屏广告的展示区域,此时请求的宽高填写裁剪后的宽高即可
- jadSplashViewDidClick、jadSplashView:didFailWithError 回调方法中进行广告的移除操作
- 2.0.0前旧版本接口不再进行支持,本次对广告初始化接口、广告加载接口等、以及广告相关回调,进行了全面升级,接入后请检查您的回调是否使用最新版本。
资源
详细接入可参考Demo中的AppDelegate类、JADSplashViewController类