新闻信息流广告NewsAdsSDK(内部)接入文档(广点通、百度、头条穿山甲)

NewsAdsSDK_iOS接入文档

版本 发布时间 版本内容 人员
v1.1 2019-12-11 新增穿山甲个性化模板广告,自渲染和个性化模板切换参数kBU_NativeAd
v1.0 2019-12-05 新闻信息流广告SDK,支持广点通、穿山甲、百度

SDK地址,阿里云code,切换至iOS分支,无权限请联系管理员。

注意事项:

1.广告类型关键字符识别:广点通(GDT)、穿山甲(BU)、百度(Baidu)。

2.广点通为模板广告,百度为原生自渲染,穿山甲(头条)有自渲染和模板两种。

3.目前,所有广告均含小图(左文右小图)、大图(上文下大图)、三图(上文下三小图),只有穿山甲有视频广告。

4.头条广告分为自渲染和个性化模板两种,2019.11.28穿山甲联盟中已关闭自渲染申请通道,只能使用个性化模板。请使用kBU_NativeAd切换广告,可删除多余部分代码。

5.百度广告产品管理后台需要配置好返回广告条数>1,效果为佳。

6.Demo中图片宽高比如不需要自定义,请忽略本条

  • 百度广告默认小图和三图图片宽高比为3:2,大图和视频宽高比为16:9,
    可修改宏定义NewsBaiduSmallPic_ScaleNewsBaiduBigPic_Scale
  • 穿山甲自渲染广告宽高比暂未抽取,请自行去代码中修改。
  • 穿山甲模板广告和广点通模板广告高度自适应,可在联盟后台修改样式。

7.百度默认请求https广告,若期望请求http的广告,直接调用如下接口:

[BaiduMobAdSetting sharedInstance].supportHttps = NO;

集成步骤:

可全局搜索Demo中代码标记 NewsAd_Code,查看嵌入代码

1.pod集成广告SDK
     # 广点通
     pod 'GDTMobSDK'
     # 谷歌广告(暂不支持)
     # pod 'Google-Mobile-Ads-SDK'
     # 百度
     pod 'BaiduMobAdSDK'
     # 头条
     pod 'Bytedance-UnionAD'
2.配置info.plist
  • 定位权限(百度及广点通广告需要)
    NSLocationAlwaysAndWhenInUseUsageDescription
    NSLocationWhenInUseUsageDescription

  • ADMob配置
    key:GADApplicationIdentifier
    value:ADMob应用ID,对应值为宏定义中kAdmob_AppKey

3.拖入Demo中文件夹

NewsAdsSDK

4.可引入广告管理头文件至pch文件,也可按需局部引入

#import "NewsAds.h"

5.配置所有广告key
  • 替换NewsAds.h中配置广告的key值,根据对应的注释正确填写。
  • 应用的BundleIdentifier对应,广告SDK才能拉取数据成功。
6.初始化广告池
  • AppDelegate.m中初始化广告池,可在didFinishLaunchingWithOptions方法中调用
[self registerNewsAdsPool];
  • 根据需要修改registerNewsAdsPool方法中使用的key值,可以直接使用NewsAds.h中宏定义key,也可使用后台接口配置的key,如下:
// 百度小图
 NewsAdModuleBaidu *smallBaidu = [[NewsAdModuleBaidu alloc] initWithAppId:kBaidu_AppKey adId:[AllBaseDataManager shareManager].baiduSmallPic];
7.升级新闻接口
  • 新闻列表接口中要增加广告版本参数&adversion=1.1,否则无法通过广告管理后台控制广告在新闻列表中显示的位置。
8.配置新闻列表数据模型

目前,已通过NSObject+NewsModel.h分类动态为新闻列表数据模型添加adIndexPositionType属性。具体说明如下:

  • adIndex:记录广告所属位置。
  • PositionType:有些新闻数据中新增属性,用于区分广告所属位置(启动页、列表页、推荐页、热词、详情页),如果接口中有此属性,需要注意区分。
  • 注意cellType属性的使用,为自定义属性,用于记录当前模型要显示的UI类型,请求到接口数据后要对此属性赋值,具体实现查看demo中getNewsDetailInfo的实现,枚举值如下:
    typedef NS_ENUM(NSInteger, InfoNewsCellType){
        InfoNewsZeroImgCellTypeDef, //无图(默认)
        InfoNewsOneImgCellType,     //一张图
        InfoNewsThreeImgCellType,   //三张图
        InfoNewsVideoCellType,      //video
        InfoNewsADCellType          //广告
    };
9.配置新闻列表Tableview
  • 自定义Tableview增加属性adList,用于广告存储 。
   @property (nonatomic, strong) NSMutableDictionary *adList;
  • 懒加载初始化:
-(NSMutableDictionary *)adList{
    if (!_adList) {
        _adList = [NSMutableDictionary dictionary];
    }
    return _adList;
}
10.管理新闻数据中广告
  • 自定义Tableview中实现bindADToModels方法,并注意参考demo中调用时机。遍历当前请求中所有新闻数据,IsAD为1,并满足PositionType不存在,或存在并且为列表页类型ZJAdvertisementTypeList时从广告池中提取广告。
11.接管UITableView代理
  • 查看UITableView+NewsAd.h中方法,并参照demo在对应的方法中实现注册广告cell,计算cell高,展示cell度,处理cell中广告曝光事件等。
12.点击模板广告叉功能实现
  • 接收点击模板广告叉通知kNewsAdDislikeNotification,实现删除数据源中对应数据,并更新列表。参考demo实现。

常见问题:

1.点击广告后如不能展示?
  • 需要修改传入广告SDK的控制器,具体方法参考willReturnAD实现
2.头条信息流个性化模板点击叉后无效?
  • 如不能显示头条SDK自带原因列表弹窗,则传入的控制器不正确,需要在willReturnAD中选择合适控制器。
  • 点击后显示弹窗,但点击弹窗选项后无反应,需要接受通知kNewsAdDislikeNotification,并参照demo中处理方式移除数据源并更新列表。

技术交流请联系QQ:781117967

你可能感兴趣的:(新闻信息流广告NewsAdsSDK(内部)接入文档(广点通、百度、头条穿山甲))