EasyAds IOS Save

🔥持续更新🔥EasyAds,全球热门的开源聚合SDK广告软件。帮助App开发者便捷接入国内多家主流广告 SDK包括:字节穿山甲、腾讯优量汇、百度百青藤、快手联盟。几行代码就可以快速实现开屏、Banner横幅、插屏、激励视频、原生信息流、全屏等广告形式。

Project README

EasyAds-iOS 快速指引

目前版本: 2.0.0

1. 支持的SDK平台及广告位

SDK平台 版本号 开屏 激励视频 横幅 插屏(弹窗) 模板信息流 全屏视频 draw信息流
穿山甲 4.9.0.6
优量汇 4.14.02
百青藤 5.101
快手 3.3.36

注意: EasyAds不对各SDK的版本号进行限制, 上图中的版本号的意义是该版本的EasyAds是基于上述SDK平台版本进行开发的

2. 快速接入

下面介绍EasyAds的快速接入方法,开发中也可以参考Example下的示例工程,快速了解。

2.1 开发环境准备

2.2 引入SDK

根据需要将相关的渠道SKAdNetwork ID添加到info.plist中,保证SKAdNetwork 的正确运行。 示例如下:

<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>238da6jt44.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>22mmun2rn5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>f7s53z58qe.skadnetwork</string>
    </dict>
     <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>r3y5dwb26t.skadnetwork</string>
    </dict>
  </array>

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,帮助你快速解决对接中遇到的问题。

SDK错误码

常见问题

技术支持

QQ群: EasyAds开源社区群

QQ群二维码:

image

邮件技术支持:[email protected]

Open Source Agenda is not affiliated with "EasyAds IOS" Project. README Source: bayescom/EasyAds-iOS

Open Source Agenda Badge

Open Source Agenda Rating