EasyAds-iOS 是开源聚合 SDK 广告软件。帮助 App 开发者便捷接入国内多家主流广告 SDK。
EasyAds-iOS 快速指引
1. 支持的SDK平台及广告位
SDK平台 | 开屏 | 激励视频 | 横幅 | 插屏(弹窗) | 模板信息流 | 全屏视频 | draw信息流 |
---|---|---|---|---|---|---|---|
穿山甲 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
优量汇 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
百青藤 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
快手 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
2. 快速接入
下面介绍EasyAds的快速接入方法,开发中也可以参考Example下的示例工程,快速了解。
2.1 开发环境准备
- 开发工具:推荐使用Xcode 12及以上版本
- 部署目标:iOS 9.0及以上版本
- 开发管理工具:CocoaPods,CocoaPods安装方法及问题参考
2.2 引入SDK
根据需要将相关的渠道SKAdNetwork ID添加到info.plist中,保证SKAdNetwork 的正确运行。 示例如下:
SKAdNetworkItems SKAdNetworkIdentifier 238da6jt44.skadnetwork SKAdNetworkIdentifier 22mmun2rn5.skadnetwork SKAdNetworkIdentifier f7s53z58qe.skadnetwork SKAdNetworkIdentifier r3y5dwb26t.skadnetwork
2.3 SDK分发策略配置
配置SDK的分发策略,可方便的实现流量的切分操作,实现多SDK的混合执行策略。
在EasyAds中,我们通过JSON文件的方式配置SDK的分发策略,开发者可根据自身流量分发的需求,按照EasyAds中提供的JSON配置格式及方法设置流量分发策略。
以开屏广告对接穿山甲和优量汇两个SDK为例,配置选择80%流量穿山甲->优量汇的顺序请求,20%流量优量汇->穿山甲的顺序请求,配置如下所示。
其中,suppliers字段下配置媒体在穿山甲和优量汇平台申请的广告代码位信息,rules字段下配置流量分发策略及比例;
策略JSON的配置说明详细见:SDK策略配置JSON说明
不同广告位的JSON策略配置示例见:不同广告位JSON配置示例
{ "rules": [ { "tag": "A", "sort": [ 1, 2 ], "percent": 80 }, { "tag": "B", "sort": [ 2, 1 ], "percent": 20 } ], "suppliers": [ { "tag": "csj", "adspotId": "穿山甲广告位ID", "appId": "穿山甲应用ID", "index": 1 }, { "tag": "ylh", "adspotId": "优量汇广告位ID", "appId": "优量汇应用ID", "index": 2 } ] }
注: 为了方便开发者配置流量分发策略,我们也提供了在线可视化的便捷工具EasyTools,方便生成广告位的策略配置JSON。
2.3 获取广告
以下步骤,为获取广告的必要步骤,适用于所有广告位。 不同广告位置的不同实现,可参考Example示例;
2.3.1 获取执行策略
从SDK策略配置的JSON文件获取分发策略并转换成NSDictionary,可参考Demo中的AdDataJsonManager文件
- (NSDictionary *)loadAdDataWithJsonName:(NSString *)jsonName { if (!jsonName) { return nil; } @try { NSString *path = [[NSBundle mainBundle] pathForResource:jsonName ofType:@"json"]; NSData *data = [[NSData alloc] initWithContentsOfFile:path]; return [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; } @catch (NSException *exception) {} }
2.3.2 使用执行策略初始化广告对象
使用获取的执行策略初始化广告对象EasyAdXXX
,以开屏为例
EasyAdSplash *splashAd = [[EasyAdSplash alloc] initWithJsonDic:self.dic viewController:self];
2.3.3 设置代理
splashAd.delegate = self
2.3.4 设置其他属性(可选)
App根据自生需要设置以下参数
// 是否必须展示Logo 默认: NO 注意: 强制展示Logo可能会影响收益 !!! splashAd.showLogoRequire = YES; // App logo图片 splashAd.logoImage = [UIImage imageNamed:@"app_logo"]; // 开屏广告未加载完成时,所展示的背景图(建议设置为启动页图片) splashAd.delegate.backgroundImage = [UIImage imageNamed:@"LaunchImage_img"]; // 超时时间 splashAd.delegate.timeout = 5;
2.3.5 调用获取广告
方式一:请求并展示广告。
[splashAd loadAndShowAd];
方式二:先发起请求广告:
[splashAd loadAd];
待广告成功拉取后,开发者可根据业务需求在合适的时机,决定调用展示广告方法。(注意:广告会存在有效期,过久未调用展示,会导致广告失效)
[splashAd showAd];
2.3.4 各广告位集成实现
3. SDK错误码 & 常见问题
调试遇到问题?欢迎查询SDK错误码及常见问题FAQ,帮助你快速解决对接中遇到的问题。