NewsAdsSDK_iOS接入文檔
| 版本 | 發(fā)布時(shí)間 | 版本內(nèi)容 | 人員 |
|---|---|---|---|
| v1.1 | 2019-12-11 | 新增穿山甲個(gè)性化模板廣告,自渲染和個(gè)性化模板切換參數(shù)kBU_NativeAd | ???? |
| v1.0 | 2019-12-05 | 新聞信息流廣告SDK,支持廣點(diǎn)通、穿山甲、百度 | ???? |
SDK地址,阿里云code,切換至iOS分支,無權(quán)限請(qǐng)聯(lián)系管理員。
注意事項(xiàng):
1.廣告類型關(guān)鍵字符識(shí)別:廣點(diǎn)通(GDT)、穿山甲(BU)、百度(Baidu)。
2.廣點(diǎn)通為模板廣告,百度為原生自渲染,穿山甲(頭條)有自渲染和模板兩種。
3.目前,所有廣告均含小圖(左文右小圖)、大圖(上文下大圖)、三圖(上文下三小圖),只有穿山甲有視頻廣告。
4.頭條廣告分為自渲染和個(gè)性化模板兩種,2019.11.28穿山甲聯(lián)盟中已關(guān)閉自渲染申請(qǐng)通道,只能使用個(gè)性化模板。請(qǐng)使用kBU_NativeAd切換廣告,可刪除多余部分代碼。
5.百度廣告產(chǎn)品管理后臺(tái)需要配置好返回廣告條數(shù)>1,效果為佳。
6.Demo中圖片寬高比如不需要自定義,請(qǐng)忽略本條
- 百度廣告默認(rèn)小圖和三圖圖片寬高比為3:2,大圖和視頻寬高比為16:9,
可修改宏定義NewsBaiduSmallPic_Scale和NewsBaiduBigPic_Scale - 穿山甲自渲染廣告寬高比暫未抽取,請(qǐng)自行去代碼中修改。
- 穿山甲模板廣告和廣點(diǎn)通模板廣告高度自適應(yīng),可在聯(lián)盟后臺(tái)修改樣式。
7.百度默認(rèn)請(qǐng)求https廣告,若期望請(qǐng)求http的廣告,直接調(diào)用如下接口:
[BaiduMobAdSetting sharedInstance].supportHttps = NO;
集成步驟:
可全局搜索Demo中代碼標(biāo)記 NewsAd_Code,查看嵌入代碼
1.pod集成廣告SDK
# 廣點(diǎn)通
pod 'GDTMobSDK'
# 谷歌廣告(暫不支持)
# pod 'Google-Mobile-Ads-SDK'
# 百度
pod 'BaiduMobAdSDK'
# 頭條
pod 'Bytedance-UnionAD'
2.配置info.plist
定位權(quán)限(百度及廣點(diǎn)通廣告需要)
NSLocationAlwaysAndWhenInUseUsageDescription,
NSLocationWhenInUseUsageDescriptionADMob配置
key:GADApplicationIdentifier
value:ADMob應(yīng)用ID,對(duì)應(yīng)值為宏定義中kAdmob_AppKey
3.拖入Demo中文件夾
NewsAdsSDK
4.可引入廣告管理頭文件至pch文件,也可按需局部引入
#import "NewsAds.h"
5.配置所有廣告key
- 替換
NewsAds.h中配置廣告的key值,根據(jù)對(duì)應(yīng)的注釋正確填寫。 - 應(yīng)用的BundleIdentifier對(duì)應(yīng),廣告SDK才能拉取數(shù)據(jù)成功。
6.初始化廣告池
- 在
AppDelegate.m中初始化廣告池,可在didFinishLaunchingWithOptions方法中調(diào)用
[self registerNewsAdsPool];
- 根據(jù)需要修改
registerNewsAdsPool方法中使用的key值,可以直接使用NewsAds.h中宏定義key,也可使用后臺(tái)接口配置的key,如下:
// 百度小圖
NewsAdModuleBaidu *smallBaidu = [[NewsAdModuleBaidu alloc] initWithAppId:kBaidu_AppKey adId:[AllBaseDataManager shareManager].baiduSmallPic];
7.升級(jí)新聞接口
- 新聞列表接口中要增加廣告版本參數(shù)
&adversion=1.1,否則無法通過廣告管理后臺(tái)控制廣告在新聞列表中顯示的位置。
8.配置新聞列表數(shù)據(jù)模型
目前,已通過NSObject+NewsModel.h分類動(dòng)態(tài)為新聞列表數(shù)據(jù)模型添加adIndex和PositionType屬性。具體說明如下:
-
adIndex:記錄廣告所屬位置。 -
PositionType:有些新聞數(shù)據(jù)中新增屬性,用于區(qū)分廣告所屬位置(啟動(dòng)頁(yè)、列表頁(yè)、推薦頁(yè)、熱詞、詳情頁(yè)),如果接口中有此屬性,需要注意區(qū)分。 - 注意
cellType屬性的使用,為自定義屬性,用于記錄當(dāng)前模型要顯示的UI類型,請(qǐng)求到接口數(shù)據(jù)后要對(duì)此屬性賦值,具體實(shí)現(xiàn)查看demo中getNewsDetailInfo的實(shí)現(xiàn),枚舉值如下:
typedef NS_ENUM(NSInteger, InfoNewsCellType){
InfoNewsZeroImgCellTypeDef, //無圖(默認(rèn))
InfoNewsOneImgCellType, //一張圖
InfoNewsThreeImgCellType, //三張圖
InfoNewsVideoCellType, //video
InfoNewsADCellType //廣告
};
9.配置新聞列表Tableview
- 自定義Tableview增加屬性
adList,用于廣告存儲(chǔ) 。
@property (nonatomic, strong) NSMutableDictionary *adList;
- 懶加載初始化:
-(NSMutableDictionary *)adList{
if (!_adList) {
_adList = [NSMutableDictionary dictionary];
}
return _adList;
}
10.管理新聞數(shù)據(jù)中廣告
- 自定義Tableview中實(shí)現(xiàn)
bindADToModels方法,并注意參考demo中調(diào)用時(shí)機(jī)。遍歷當(dāng)前請(qǐng)求中所有新聞數(shù)據(jù),IsAD為1,并滿足PositionType不存在,或存在并且為列表頁(yè)類型ZJAdvertisementTypeList時(shí)從廣告池中提取廣告。
11.接管UITableView代理
- 查看
UITableView+NewsAd.h中方法,并參照demo在對(duì)應(yīng)的方法中實(shí)現(xiàn)注冊(cè)廣告cell,計(jì)算cell高,展示cell度,處理cell中廣告曝光事件等。
12.點(diǎn)擊模板廣告叉功能實(shí)現(xiàn)
- 接收點(diǎn)擊模板廣告叉通知
kNewsAdDislikeNotification,實(shí)現(xiàn)刪除數(shù)據(jù)源中對(duì)應(yīng)數(shù)據(jù),并更新列表。參考demo實(shí)現(xiàn)。
常見問題:
1.點(diǎn)擊廣告后如不能展示?
- 需要修改傳入廣告SDK的控制器,具體方法參考
willReturnAD實(shí)現(xiàn)
2.頭條信息流個(gè)性化模板點(diǎn)擊叉后無效?
- 如不能顯示頭條SDK自帶原因列表彈窗,則傳入的控制器不正確,需要在
willReturnAD中選擇合適控制器。 - 點(diǎn)擊后顯示彈窗,但點(diǎn)擊彈窗選項(xiàng)后無反應(yīng),需要接受通知
kNewsAdDislikeNotification,并參照demo中處理方式移除數(shù)據(jù)源并更新列表。