android接入facebook原生广告

最近上班,公司开发国外版本的app,接的全是些国外版本的sdk这些,下面我就来总结一下,记录一下这几天踩的坑。

这里先讲facebook接入广告

第一步先登录facebook的开发者官网去注册开发者(先注册一个普通的facebook帐号,然后进入开发者官网之后只需绑定手机号码就可以了,记得选区号,绑定之后创建自己的第一个app就可以了,其他的信息自己看着填)

https://developers.facebook.com

第二步就是为自己的app添加广告的功能,左侧点击控制平台就可以看到很多产品,选择Audience Network添加就可以了,这个就是广告添加的时候会让你选择类型,这个取决于你,这里我要接入的是原生广告,默认就是第一个,原生广告,然后接下来就会得到一个   版位编号  这个编号就是PLACEMENT_ID,之后要填到你的应用里面去的,复制下来放好。

然后你会发现下面有让你填收钱的帐号,这个是肯定的,不过不填也不影响你测试,这里我暂时没有填,也可以测试。

第三步,为了让自己之后能顺利的看到效果,第三步还是准备工作,你创建的第一个应用一定没有上线吧,这就需要用到测试用户,位置很好找

添加多少个测试用户就随便你了,帐号就是邮箱,密码的话,点击右侧的编辑,修改密码,你才有密码可用。2333

第四步,接上一步说。在你的手机上面安装facebook的app,然后登录你的测试用户,保证的你手机访问facebook的官网(翻墙),这就可以了。这是facebook给你发放测试广告的条件。好了,然后真正的进行第四步。打开facebook提供的接入网站,开始你的准备工作,大概就是创建项目,然后引入sdk什么的

https://developers.facebook.com/docs/audience-network/android

这个网址已经讲的很清楚了。创建好项目添加


这一句就可以了。当然如果你的studio是3.0以上的,会提示你compile已经快过时了。换成implementation就可以了。

第五步,这个时候可以接着看了:


我要接入的是原生广告,就点这个看了

https://developers.facebook.com/docs/audience-network/android-native

如果你觉得这个网站是全英文的看着很烦躁的话,你可以用谷歌浏览器访问,然后右键点击网页,你懂的。

看代码的时候还是需要撤销翻译的,不然全是乱的看个锤子。。。不知道撤销翻译的快捷建的话


看这儿。点一下收藏旁边的图标,可以选择显示原网页。

好了说了这么多,第五步就是照着这个网页写的,把布局弄下来,把代码弄下来,反正都是测试嘛,不存在的直接拿来用就是了。然后跑一下你就会发现怎么没拿到呢。

好的,到现在你的代码工作就基本完成,是不是感觉自己好像还没做什么?不过就是如此简单的操作,还是有很多坑的。

比如我就是跑了一下没效果,检查一下手机有没有开vpn,因为这儿需要访问外网。然后检查一下手机上的facebook有没有登录你的测试帐号,都搞定的话,我给你说。是那个PLACEMENT_ID出了问题。你测试的时候肯定不是让你直接用他的这个id哇。

第一个坑PLACEMENT_ID:测试的时候有专门的id格式的:

https://developers.facebook.com/docs/audience-network/testing

这个文档里有写返回的各种errorCode是什么意思,也告诉你应该怎么去填你那个测试用的ID


这个网页往下翻,你就看到了这个,他测试的id是有格式的:   格式代码#你的ID

原生的格式代码就是我标记出来的这个,其他的是什么视频的啊,其他杂七杂八的,自己去研究,然后填到应用里面就应该是这样的:


好了,这样你跑出来就有效果了

第二个坑:你会不会觉得facebook 广告 在方法里绑定界面的代码太多太烦了?

这个是自定义的界面,根据你的app来嘛,当然还有他默认给你界面:

https://developers.facebook.com/docs/audience-network/android/nativeadtemplate

这个地址里面就写得很清楚了,其他的代码不变


就这个方法里面的代码。看到没,直接用NativeAdView这个类的render方法可以返回一个view给你,这个就是他给你的界面,你连界面文件都不用编写了。直接拿到这个view加到你的界面里去就可以了


效果就是这样的,其实还挺美观的。

第三个坑:如果你是想把广告加到你的recyclerView里面的话,或者什么列表里面的话,你肯定不满足于只是获取到一个广告吧,怎么获取多个广告呢。这个我在官方网站上面找了一会儿,没找到,是真的没找到,可能是我眼神不好吧。。。2333

后来我百度,看到一个博客里面有写怎么多个访问:

https://blog.csdn.net/figo0423/article/details/46914423


有一个NativeAdsManager类,这个类可以loadAds(),这下就舒服多了。new的时候在id的后面跟了一个数字,我猜的是请求条数,不过我也测试过了。确实是请求条数。我就请求的5条,我记得好像我在facebook的文档里面依稀好像记得我看到过一个警告或者建议啥哦,说广告最多请求5条。也不知道是不是。反正我就请求5条就够用了。多的条数我也没去测试。

对了,这里用nextNativeAd()方法遍历得到的不是view,是nativeAd,这样你就可以选择是自己定义界面好呢。还是用facebook提供的那种界面,反正随意了。我反正用的官方的。反正也挺好看的。

  

这里附上我的代码。拿到views之后然后发出去。加到你的列表里哇,或者什么的,都可以

最后墨迹一下,你再去请求的时候,NativeAdsManager这个类,你不用再去new了。也不用再去setLisenter了,直接就再次loadAds()就可以了。然后还是一样的操作。

如果你的列表很长,往下翻的时候,要不断的加入这个广告的view的话。你最好是把之前的广告view给移除,还有就是再次请求的话,之前的nativeAd也需要处理,不然你的内存迟早挂掉。


比如这样的操作。

好了。完

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值