Giter Site home page Giter Site logo

bayescom / easyads-ios Goto Github PK

View Code? Open in Web Editor NEW
71.0 4.0 23.0 1.83 MB

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

Home Page: http://easyads.bayescom.cn

License: GNU General Public License v2.0

Ruby 1.00% Objective-C 99.00%
ios cocoapods ad baidu gdt csj ks gromore topon ios-sdk

easyads-ios's Introduction

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]

easyads-ios's People

Contributors

flayone avatar lightyear5235 avatar shichuanyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

easyads-ios's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.