在使用admob广告功能时,单独在一个viewcontroller 中是可以显示的,当把bannerview 放在拥有导航控制器的其中一个VC时,即使是bannerview 已经收到了广告内容,屏幕上也是不会显示广告的,之前一直以为bannerview 被其他页面遮盖住----所以不显示,但使用Xcode 带的view debug 后,查看页面层次,发现没被遮盖。最后尝试把bannerview add到navigationcontroller 的view上
[self.navigationController.view addSubview:adView];
结果可以成功显示广告了。
使用admob 要VPN,这个很不方便的,创建好应用后得到发布者id ,这个id 是和admob sdk 绑定的(该id是具体的广告功能的id,可以在一个页面创建多个广告展示位,每个展示位都有不同的id。)admob 的使用还是很方便的,广告不显示时,调试台一般都会给出提示,没有设置bannerview的rootViewController 了,或者是
adUnitID 不正确。最主要的时当使用测试机进行调试时,要在
GADRequest *request = [GADRequest request];
添加testDevices, 模拟器就用 kGADSimulatorID
真机的话,先省略这个值把程序运行起来,调试台就会有提示,说添加testDevices,然后把相应的那串数字就是你真机测试的testDevices。(引入
#import <AdSupport/AdSupport.h>
,使用
)
[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString] 也可以直接获得testDevices 的串号。
这也做的前提是导入 AdSupport.framework 。
相比苹果自家的iAD,admob集成到工程中复杂性多些。感觉iAD集成很容易,但这个在部分国家是不能使用的。好像广告业务方面使用admo 的还是多一些吧。