iOS10收集IDFA,植入第三方广告[终结]--ADMob
[PS: 前段时间,公司做ASO推广,需要在应用中收集IDFA值,跟广告平台做交互!于是有了这个需求~~]
1、首先,考虑了一下情况(自己懒 -_-#),就直接在首页上写了一个Banner,循环加载广告[都是自己公司的一些广告消息];
然后,就过了审核![万事大吉]
这里打个小广告,自己简单封装了一个MBAdBanner小框架,已经上传到GitHub上了。
2、然后,最近更新版本的时候,由于收集IDFA而没有实质性广告就杯具了。果断的大大红色Reject!
DONE: 加入了一些其他平台的广告(*东6.18活动等),作为收集IDFA使用。
3、最后,嫌弃麻烦,就导入了第三方的广告服务[AdMob]
(1)利用CocoaPods, [ pod 'GoogleMobileAds', '~> 7.8.0' ];
--需要VPN才行。
(2)终端pod search GoogleMobileAds,找到 - Source: https://www.gstatic.com/cpdc/f5ae88269a942f37-GoogleMobileAds-7.8.0.tar.gz,将GoogleMobileAds.framework下载下来
--官网上没有需要加入的框架文档,只能从更新的版本中找到;
--如下:

(3)集成Banner代码
// 导入@import GoogleMobileAds;
// 声明变量@property (nonatomic, strong) GADBannerView *bannerView;
// viewDidLoad 中加入核心代码- (void)viewDidLoad {
self.bannerView = [[GADBannerView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
// self.bannerView.frame = CGRectMake(0, 0, 320, 50);
self.bannerView.adUnitID = @"ca-app-pub-8372750357813473/1825818546";
// test.
// self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716";
self.bannerView.rootViewController = self;
[self.bannerView loadRequest:[GADRequest request]];// 在需要的时候request,刷新显示广告![上架后,通过接口,关闭广告服务即可]
[self.view addSubview:_bannerView];
}
[ PS:额外提示]
1、这其中的adUnitID,是有google的AdMob后台提供的。
2、还有插屏广告服务的接入等。
官网文档地址:https://firebase.google.com/docs/admob/ios/quick-start
------------------------
iOS10 重大更新!
In iOS 10.0 and later, the value of advertisingIdentifier is all zeroes when the user has limited ad tracking.
在iOS10.0 beta版中,idfa这个值,将在用户打开“广告追踪限制”后,获取的值为全零! “0000-0000-00000-00000-0000”
------------------------
iOS10收集IDFA,植入第三方广告[终结]--ADMob的更多相关文章
- Java基础 之软引用、弱引用、虚引用 ·[转载]
Java基础 之软引用.弱引用.虚引用 ·[转载] 2011-11-24 14:43:41 Java基础 之软引用.弱引用.虚引用 浏览(509)|评论(1) 交流分类:Java|笔记分类: Ja ...
- [caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=.= 主要过程稍微记录一下: 1.安装BLAS s ...
- [Swift]基础
[Swift]基础 一, 常用变量 var str = "Hello, playground" //变量 let str1="Hello xmj112288" ...
- [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
1. 什么是internationalization(i18n)? 国际化,英文简称i18n,按照维基百科的定义:国际化是指在设计软件,将软件与特定语言及地区脱钩的过程.当软件被移植到不同的语言及地区 ...
- [译]一个灵活的 Trello 敏捷工作流
[译]一个灵活的 Trello 敏捷工作流 翻译自 An Agile Trello Workflow That Keeps Tasks Flexible Getting things done 可不只 ...
- CSU 1642 Problem B[难][前缀和]
Description 已知两个正整数a和b,求在a与b之间(包含a和b)的所有整数的十进制表示中1出现的次数. Input 多组数据(不超过100000组),每组数据2个整数a,b.(1≤a,b≤1 ...
- [ufldl]Supervised Neural Networks
要实现的部分为:forward prop, softmax函数的cost function,每一层的gradient,以及penalty cost和gradient. forwad prop forw ...
- [干货]2017已来,最全面试总结——这些Android面试题你一定需要
地址.http://blog.csdn.net/xhmj12/article/details/54730883 相关阅读: 吊炸天!74款APP完整源码! [干货精品,值得收藏]超全的一线互联 ...
- Git之(一)Git是什么[转]
为什么使用Git 孔子曾经曰过的,名正则言顺 言顺则事成. 我们在学习一项新技术之前,弄清楚为什么要学它至关重要,至于为什么要学习Git,我用一段if-else语句告诉你原因: if(你相信我){ 我 ...
随机推荐
- mybatis至mysql插入一个逗号包含值误差
mybatis至mysql插入形如"11,22,33"当误差.我使用了错误的原因是美元符号镶嵌sql.正确的做法是使用# 有时间去看看mybatis的$和#差异. 版权声明:本文 ...
- linuxIO刷新机制fsync和fdatasync详细解释
前言: Linux,unix在内核中设有 缓冲区快速缓冲或页面快速缓冲.大多数磁盘I/O都通过缓冲进行,採用延迟写技术. sync:将全部改动过的快缓存区排入写队列.然后返回.并不等待实际写磁盘操作结 ...
- C# 开机自动启动程序
原文:C# 开机自动启动程序 新建一个winform拖一个checkbox进来.. 然后设置它的changed事件. 已经测试过,可以直接复制使用. private void checkBox1_Ch ...
- 简单vector达到
得知c++于,看完这本书后,,最近苦于不知道下一步该怎么做了,在寻找STL在各种容器的源代码分析,我想一次又一次地实现它. 之前,很多问题看的时候不知道是怎么回事,意与理解的.这个vector类写得特 ...
- RecyclerView0基于使用
(转载请注明出处:http://www.kennethyo.me/post/android/recyclerviewchu-ji-shi-yong) RecyclerView是Android在v7包中 ...
- uva 11572 - Unique Snowflakes(和书略有不同)
本书是关于使用刘汝佳set, 通过收集找到.count()和删除.erase().这种方法比我好.用较短的时间. 我想map这个任务可以完成.但是,这是不容易删除,必须先找到find()标.然后删除索 ...
- Mac下Jekyll安装
之前一直用Wordpress,虽然功能强大,各种插件各种bug,如果想弄个主题,折腾得要命.最近改用jekyll+gitHub免费空间.记录一下. 我用的是Mac,所以只讲述Mac下如何安装,Wind ...
- Java它配备了一个很好的工具2
Jconsole 本机java自带的系统monitor具,它也可以连接到的本地远程连接java process,联系java process申请后可查看CPU,内存,主题.GC事件,能帮忙看看系统是否 ...
- java两个音频进入巩固期 玩的同时类似的伴奏
/** * * @param partsPaths 阵列要合成音频路径 * @param unitedFilePath 输入合并结果数组 */ public void uniteWavFile(Str ...
- from声明
在整个应用程序,只有三行声明.这是最短单WIN32应用,但它的功能是非常有限,简单地显示一个消息框,示出来,其他什么事情也没有做.以下就来分析这三行语句了.别小看这三行语句.其实是隐藏着非常多知识点在 ...