实例分析Facebook激励视频广告接入

一,前期基础知识储备

1).Facebook Audience Network 新手入门

使用 Facebook Audience Network,您的 Android 应用可以通过展示 Facebook 广告实现创收。以下是文档位置

https://developers.facebook.com/docs/audience-network/get-started/android/?translation (需翻墙)

2).测试 Audience Network 的实施情况

请在推送至生产环境之前,测试 Facebook Audience Network SDK 的实施情况,以验证使用体验。Audience Network 提供客户端和服务器端两种测试方法。

https://developers.facebook.com/docs/audience-network/guides/test (需翻墙)

实际项目中,开发者需要熟悉1)中文档的操作,把Facebook的SDK接入到正式项目;然后2)中的操作由后台人员进行对接,其中开发者需要提供一部测试机的 Google 广告编号 (AAID),用以在Facebook后台注册,以激活视频广告。

二,上代码,正式实现

参考开源项目FacebookAds 和Facebook官方项目audience-network 具体分析步骤。

添加Facebook的SDK依赖

implementation 'com.facebook.android:audience-network-sdk:5.6.0'

Application内注册,初始化设置

AudienceNetworkAds.initialize(this);

之后根据需要去为每个广告位申请 PLACEMENT_ID 之后添加进代码中

    static String FB_BANNER = "607114842814xyz_1115067832019xyz";static String FB_RECTANGLE = "607114842814xyz_1116658658526xyz";static String FB_INTERSTITIAL = "607114842814xyz_1129224397270xyz";static String FB_REWARD = "607114842814xyz_1120504261475xyz";  

这里需要注意,Facebook有多种广告类型,需要根据真实的需要,获取对应的广告ID,然后对应使用。

④(可选)在界面布局中放置一个父容器,广告在此父容器中进行加载

有些广告,比如Banner横幅广告,Rectangle矩形广告,需要在布局中添加一个父容器,然后在该容器中加载广告;

AdView adView = new AdView(mContext, mContext.getString(R.string.rectangle_placement_id), 
AdSize.RECTANGLE_HEIGHT_250); // 可以设置不同大小的广告
mRectangleAd.addView(adView);

其他的插页广告,原生广告,视频广告无此要求。

⑤ (可选)为广告添加监听

一般我们需要对广告进行监听,这样方便执行其他的相关逻辑。需要注意的是,不同广告类型注册的监听是不一样的。

         // BanneradView.setAdListener(new AdListener() {@Overridepublic void onError(Ad ad, AdError adError) {Toast.makeText(Ad_Banner.this, "Ad 90 Error: " + adError.getErrorMessage(), Toast.LENGTH_LONG).show();Log.d(TAG, "facebook_ad,,onError: Ad 90 Error: " + adError.getErrorMessage()); /*(#606) SDK version not supported*/}@Overridepublic void onAdLoaded(Ad ad) {Toast.makeText(Ad_Banner.this, "Ad Loaded", Toast.LENGTH_LONG).show();Log.d(TAG, "facebook_ad,,onAdLoaded: Ad 90 Loaded: ");}@Overridepublic void onAdClicked(Ad ad) {}@Overridepublic void onLoggingImpression(Ad ad) {}});
        // RectangleadView.setAdListener(new AdListener() {@Overridepublic void onError(Ad ad, AdError adError) {Log.d(TAG, "facebook_ad,,onError: Ad_Rectangle : " + adError.getErrorMessage());}@Overridepublic void onAdLoaded(Ad ad) {}@Overridepublic void onAdClicked(Ad ad) {}@Overridepublic void onLoggingImpression(Ad ad) {}});
        // interstitialinterstitialAd.setAdListener(new AbstractAdListener() {@Overridepublic void onError(Ad ad, AdError error) {super.onError(ad, error);Log.d(TAG, "facebook_ad,,onError: interstitialAd,,," + error.getErrorMessage());}@Overridepublic void onInterstitialDisplayed(Ad ad) {super.onInterstitialDisplayed(ad);}@Overridepublic void onInterstitialDismissed(Ad ad) {super.onInterstitialDismissed(ad);}@Overridepublic void onAdLoaded(Ad ad) {super.onAdLoaded(ad);if (canShowFullscreenAd) {interstitialAd.show();}}});
         // rewardrewardedVideoAd.setAdListener(new S2SRewardedVideoAdListener() {@Overridepublic void onRewardServerFailed() {Log.d(TAG, "S2S onRewardServerFailed: ");}@Overridepublic void onRewardServerSuccess() {Log.d(TAG, "S2S onRewardServerSuccess: ");}@Overridepublic void onRewardedVideoCompleted() {Log.d(TAG, "S2S onRewardedVideoCompleted: ");}@Overridepublic void onLoggingImpression(Ad ad) {Log.d(TAG, "S2S onLoggingImpression: ");}@Overridepublic void onRewardedVideoClosed() {Log.d(TAG, "S2S onRewardedVideoClosed: ");rewardedVideoAd.loadAd(true);}@Overridepublic void onError(Ad ad, AdError adError) {Log.d(TAG, "S2S onError: ");/*rewardedVideoAd.loadAd(true);*/initRewardAd();}@Overridepublic void onAdLoaded(Ad ad) {Log.d(TAG, "S2S onAdLoaded: ");}@Overridepublic void onAdClicked(Ad ad) {Log.d(TAG, "S2S onAdClicked: ");}});

显示广告

不同类型的广告,显示的方法也有一些不同;

// banner
adView.loadAd();// Rectangle
adView.loadAd();// interstitial
interstitialAd.loadAd();@Override
public void onAdLoaded(Ad ad) {super.onAdLoaded(ad);Log.d(TAG, "facebook_ad,,onAdLoaded: interstitialAd,," + ad);txStatus.setText("Ad Loaded");if (canShowFullscreenAd) {interstitialAd.show();}
}// rewarded
rewardedVideoAd.loadAd(true);rewardedVideoAd.show();

经过以上步骤,就可以加载Facebook的广告了。

 

实际开发中,如果是第一次接入Facebook的广告,建议:

先去熟悉广告的开源项目,这时不要使用后台给的正式Placement_id,而是使用Facebook提供的测试id — 

"YOUR_PLACEMENT_ID",即,

    static String FB_BANNER = "YOUR_PLACEMENT_ID";static String FB_RECTANGLE = "YOUR_PLACEMENT_ID";static String FB_INTERSTITIAL = "YOUR_PLACEMENT_ID";static String FB_REWARD = "YOUR_PLACEMENT_ID";

然后在全局中,设置广告状态为测试状态,

AdSettings.setTestMode(true);

这样,就可以方便地测试各种广告,又不会承担风险。

以下为几张Facebook广告的测试图:

      

 

最后补充一点,开发者在首次接入Facebook的广告时需要激活,这时需要为后台提供一个AAID。

这篇文章《获取Google Advertising ID作为唯一识别码》实测可行,手机上装好Google Play即可。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53685.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看过都不会后悔,这估计是2022最有意思的瓜

虽然 2022 年已过半,但是我个人已经把这个瓜评选为年度前三了。很久没有吃过这么有质量,又让我酣畅淋漓的瓜了。 事情这样的,我在知乎上刷到了这样的问题: 按理来说,我是一个数学渣的,这种关于数学的问题我…

移动卡(非全球通)欠费停机3个月后自动销号无影响

想要查询手机号归属地和卡品牌的,可以去手机号码归属地查询 或者全国手机查询

电信副卡显示无服务器,电信副卡,你从来就是一个陷阱吗?

电信副卡,你从来就是一个陷阱吗? 前年,在某电信营业厅,经不起工作人员的热情推介,我办了一张副卡。副卡是跟自己的电话卡(主卡)绑定在一起的另一张电话卡,副卡和主卡共享话费和流量,主副卡之间无限通话,副卡不用缴费,但需要主卡每月多交10块钱。 当时正值假期,我想,…

机器学习在金融风控实践经验

由于金融风控场景的特殊性,很多算法同学在刚进入这个领域容易“水土不服”,为了使机器学习项目(也包括图算法相关的应用)落地更加顺利,本文介绍下实践过程的一些经验和踩过的坑。 金融风控场景的特殊性 与电商、广告…

水土不服?谈一谈机器学习在金融风控实践经验

作者 | 风浪(已授权) 整理 | NewBeeNLP 由于金融风控场景的特殊性,很多算法同学在刚进入这个领域容易“水土不服”,为了使机器学习项目(也包括图算法相关的应用)落地更加顺利,本文介绍下实践过…

不要的流量卡怎么处理,可以直接扔了吗?

在网上申请的大流量卡,不想要了该怎么处理呢?以下这几种情况大家一定要注意了! 首先大家不管在任何地方下单了流量卡,只要是正规卡,都是有一个激活流程的,激活后就会出现在自己的名下,如果不想…

砸盘、销号、解散社群,Merlin Lab“跑路三连”暴露了DeFi哪些问题?

抛售代币、注销推特、微信群解散,昨夜BSC机枪池项目MerlinLab上演一出火速“大逃亡”。 6月29日15点24分,Merlin Lab遭到黑客攻击。据区块链安全公司PeckShield分析,Merlin Lab 遭到黑客攻击源于 MerlinStrategyAlpacaBNB 中存在的逻辑漏洞&a…

物联卡长时间不用会过期吗?关于物联卡强制激活和物联卡销户规则

很多用户反应,对于物联卡的激活不太了解,今天,51物联卡就为你介绍一下正规的物联卡激活方式。 企业认证:企业用户先提供营业执照、法人信息、设备信息等资质,发卡后将SIM卡插入物联网设备,设备通电后&…

王牌战士没显示我的服务器,王牌战士号没了怎么回事 游戏档案被销号解决方法...

【小白网】 王牌战士许多玩家登录游戏发现,自己之前玩的所有记录都没有了,怎么会被销号了呢?毕竟辛辛苦苦玩的数据就直接没了,这个问题让很多玩家都难以接受,下面就来看看解决方法吧。 1:账号登录大区错了 虽然游戏每…

体积较小的计算机称为微型计算机,小型计算机和微型计算机是同一个吗?

不是同一个。 小型计算机是相对于大型计算机而言,小型计算机的软件、硬件系统规模比较小,但价格低、可靠性高、便于维护和使用。小型计算机是属于硬件系统比较小,但功能却不少的微型计算机。 微型计算机简称“微型机”、“微机”,…

“主播露真容,男粉丝销号”的真正启示是什么?

文 | 丁阳 今天,各大网站论坛微博知乎都被一条新闻刷屏,“萝莉音女主播不慎露真容,刷10万元礼物男粉丝销号”。这起网络直播的“翻车”事故,除了让围观者啧啧称奇外,也让那些宅男直播受众愤恨不已,纷纷谴责…

湖南大学计算机博士好考吗,湖南大学最年轻的副教授是什么水平

美美哒花儿2020-08-04 12:50:16 点灭只看此人举报 引用 乐邦神迹发表的: 现在不读博后就可以入职高校了?离谱 现在不读博后就可以入职高校了?离谱 看文章啊,文章够,哪里都可以横着走,做博后不就是因为文章不够嘛。 看文…

linux sleep线程吗,sleep会让出cpu吗 linux sleep 时占CPU吗

一个线程处于sleep状态时它会消耗CPU吗?为什么? sleep()与阻塞函数 是否会一直占用cpu ? 在应用程序中,sleep() 或者 一些读写,同步的阻塞函数,当资源请求没应该不会占用cpu,在sleep期间。 Linux下的sleep…

在mysql+地址是什么类型_Mysql数据库地址是什么怎么填写

Mysql数据库地址:C:\ProgramData\MySQL\MySQL Server 5.5\data。 具体情况: 一、Mysql数据使用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI。默认存放位置是C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Ser…

LeetCode从入门到销号

欢迎各位各位收看从入门到脱坑栏目, ** ** 今天给大家演示一下LeetCode怎么玩 1:注册一个账号 2:点击题库 3:点击《两数之和》,如图所示 4,来到以下界面, 5:框1写的是题目,本题的意…

苹果id可以彻底注销吗_QQ可以销号了!我们一代人的青春,你会注销吗?

朋友,你有多久没上QQ了? QQ 承载了很多人的 青春和回忆 但是,如果有一天 我们可以注销自己的QQ账号 与QQ来一次彻底的“决裂” 你愿意吗? 近日,微博热搜榜上 关于“QQ将实现注销功能”的消息 让网友们沸腾起来了 ▼ 3月…

计算机与现代化是核心期刊吗,计算机与现代化是核心期刊吗

《计算机与现代化》属于国家级的计算机刊物,这本期刊不是核心期刊这一点作者可以在知网和维普上进行查询,如果作者想要发表这本期刊可以联系我们的在线编辑,可以在线给您答疑。 《计算机与现代化》期刊简介: 《计算机与现代化》本…

希望所有计算机专业同学都知道这些老师

C语言教程——翁凯老师、赫斌 翁恺老师是土生土长的浙大码农,从本科到博士都毕业于浙大计算机系,后来留校教书,一教就是20多年。 翁恺老师的c语言课程非常好,讲解特别有趣,很适合初学者学习。 郝斌老师的思路是以初学…

【AutoGPT】什么是 AutoGPT?—— 解决 GPT 复杂任务无需人为干预(Github Star 60K)

GitHub地址 (Star 60K): https://github.com/Torantulino/Auto-GPT 目录 前言 什么是 AutoGPT? AutoGPT 有哪些特点

智慧眼:人机共智,跟Chat GPT聊聊数字健康

发布仅仅三个月,用户数据破亿,刚刚过去的情人节,有报告称全球 30% 男性在用他写情书,对于亿万网友来讲,ChatGPT是一个貌似无所不能的对话机器人,他会整合各种有用的信息,协助人类完成写代码、文…