# EasyAds-iOS **Repository Path**: bayescom/EasyAds-iOS ## Basic Information - **Project Name**: EasyAds-iOS - **Description**: 🔥持续更新🔥EasyAds,全球热门的开源聚合SDK广告软件。帮助App开发者便捷接入国内多家主流广告 SDK包括:字节穿山甲、腾讯优量汇、百度百青藤、快手联盟。几行代码就可以快速实现开屏、Banner横幅、插屏、激励视频、原生信息流、全屏等广告形式。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 3 - **Created**: 2021-11-30 - **Last Updated**: 2025-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: IOS, ios-sdk, easyads ## README # EasyAds-iOS 快速指引 ## 1. 支持的SDK平台及广告位 | SDK平台 | 开屏 | 激励视频 | 横幅 | 插屏(弹窗) | 模板信息流 | 全屏视频 | draw信息流 | |-------|---|---|---|---|---|---|---| | 穿山甲 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | 优量汇 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | 百青藤 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | | 快手 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ## 2. 快速接入 下面介绍EasyAds的快速接入方法,开发中也可以参考[Example](https://github.com/bayescom/EasyAds-iOS/tree/main/Example)下的示例工程,快速了解。 ### 2.1 开发环境准备 - 开发工具:推荐使用Xcode 12及以上版本 - 部署目标:iOS 9.0及以上版本 - 开发管理工具:[CocoaPods](https://cocoapods.org/),[CocoaPods安装方法及问题参考](https://github.com/bayescom/EasyAds-iOS/wiki/5.1-CocoaPods%E5%AE%89%E8%A3%85%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) ### 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说明](https://github.com/bayescom/EasyAds-iOS/wiki/2.-SDK%E5%88%86%E5%8F%91%E7%AD%96%E7%95%A5%E9%85%8D%E7%BD%AEJSON) 不同广告位的JSON策略配置示例见:[不同广告位JSON配置示例](https://github.com/bayescom/EasyAds-iOS/tree/main/Example/EasyAdsSDK/ExampleController/Template/DataJson) ```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](http://easyads.bayescom.cn/#/tools),方便生成广告位的策略配置JSON。 ### 2.3 获取广告 以下步骤,为获取广告的必要步骤,**适用于所有广告位**。 不同广告位置的不同实现,可参考[Example示例](https://github.com/bayescom/EasyAds-iOS/tree/main/Example); #### 2.3.1 获取执行策略 从SDK策略配置的JSON文件获取分发策略并转换成NSDictionary,可参考Demo中的AdDataJsonManager文件 ```objective-c - (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`,以开屏为例 ```objective-c EasyAdSplash *splashAd = [[EasyAdSplash alloc] initWithJsonDic:self.dic viewController:self]; ``` #### 2.3.3 设置代理 ```objective-c splashAd.delegate = self ``` #### 2.3.4 设置其他属性(可选) App根据自生需要设置以下参数 ```objective-c // 是否必须展示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 调用获取广告 方式一:**请求并展示广告**。 ```objective-c [splashAd loadAndShowAd]; ``` 方式二:先发起请求广告: ```objective-c [splashAd loadAd]; ``` 待广告成功拉取后,开发者可根据业务需求在合适的时机,决定调用展示广告方法。(**注意:广告会存在有效期,过久未调用展示,会导致广告失效**) ```objective-c [splashAd showAd]; ``` #### 2.3.4 各广告位集成实现 * [开屏广告:EasyAdSplash](https://github.com/bayescom/EasyAds-iOS/wiki/3.1-%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A) * [插屏广告:EasyAdInterstitial](https://github.com/bayescom/EasyAds-iOS/wiki/3.2-%E6%8F%92%E5%B1%8F%28%E5%BC%B9%E7%AA%97%29%E5%B9%BF%E5%91%8A) * [横幅广告:EasyAdBanner](https://github.com/bayescom/EasyAds-iOS/wiki/3.3-%E6%A8%AA%E5%B9%85%E5%B9%BF%E5%91%8A) * [原生模板、信息流广告:EasyAdNativeExpress](https://github.com/bayescom/EasyAds-iOS/wiki/3.4-%E5%8E%9F%E7%94%9F%E6%A8%A1%E6%9D%BF%E3%80%81%E4%BF%A1%E6%81%AF%E6%B5%81%E5%B9%BF%E5%91%8A) * [激励视频广告:EasyAdRewardVideo](https://github.com/bayescom/EasyAds-iOS/wiki/3.5-%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A) * [全屏视频广告:EasyAdFullScreenVideo](https://github.com/bayescom/EasyAds-iOS/wiki/3.6-%E5%85%A8%E5%B1%8F%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A) ## 3. SDK错误码 & 常见问题 调试遇到问题?欢迎查询SDK错误码及常见问题FAQ,帮助你快速解决对接中遇到的问题。 [SDK错误码](https://github.com/bayescom/EasyAds-iOS/wiki/4.1-SDK%E9%94%99%E8%AF%AF%E7%A0%81) [常见问题](https://github.com/bayescom/EasyAds-iOS/wiki/4.2-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) ## 技术支持 QQ群: EasyAds开源社区群 QQ群二维码: ![image](http://www.bayescom.com/uploads/20211220/43af3f34fc5a7bb50d84f94e374b3e98.png) 邮件技术支持: