实例分析facebook激励视频广告接入(代码片段)

Chin_style Chin_style     2022-12-15     610

关键词:

一,前期基础知识储备

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);

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

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

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

         // Banner
         adView.setAdListener(new AdListener() 
            @Override
            public 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*/
            

            @Override
            public void onAdLoaded(Ad ad) 
                Toast.makeText(Ad_Banner.this, "Ad Loaded", Toast.LENGTH_LONG).show();
                Log.d(TAG, "facebook_ad,,onAdLoaded: Ad 90 Loaded: ");
            

            @Override
            public void onAdClicked(Ad ad) 

            

            @Override
            public void onLoggingImpression(Ad ad) 

            
        );
        // Rectangle
        adView.setAdListener(new AdListener() 
            @Override
            public void onError(Ad ad, AdError adError) 
                Log.d(TAG, "facebook_ad,,onError: Ad_Rectangle : " + adError.getErrorMessage());
            

            @Override
            public void onAdLoaded(Ad ad) 

            

            @Override
            public void onAdClicked(Ad ad) 

            

            @Override
            public void onLoggingImpression(Ad ad) 

            
        );
        // interstitial
        interstitialAd.setAdListener(new AbstractAdListener() 

            @Override
            public void onError(Ad ad, AdError error) 
                super.onError(ad, error);
                Log.d(TAG, "facebook_ad,,onError: interstitialAd,,," + error.getErrorMessage());
            

            @Override
            public void onInterstitialDisplayed(Ad ad) 
                super.onInterstitialDisplayed(ad);
            

            @Override
            public void onInterstitialDismissed(Ad ad) 
                super.onInterstitialDismissed(ad);
            

            @Override
            public void onAdLoaded(Ad ad) 
                super.onAdLoaded(ad);
                if (canShowFullscreenAd) 
                    interstitialAd.show();
                
            
        );
         // reward
         rewardedVideoAd.setAdListener(new S2SRewardedVideoAdListener() 
            @Override
            public void onRewardServerFailed() 
                Log.d(TAG, "S2S onRewardServerFailed: ");
            

            @Override
            public void onRewardServerSuccess() 
                Log.d(TAG, "S2S onRewardServerSuccess: ");
            

            @Override
            public void onRewardedVideoCompleted() 
                Log.d(TAG, "S2S onRewardedVideoCompleted: ");
            

            @Override
            public void onLoggingImpression(Ad ad) 
                Log.d(TAG, "S2S onLoggingImpression: ");
            

            @Override
            public void onRewardedVideoClosed() 
                Log.d(TAG, "S2S onRewardedVideoClosed: ");
                rewardedVideoAd.loadAd(true);
            

            @Override
            public void onError(Ad ad, AdError adError) 
                Log.d(TAG, "S2S onError: ");
                /*rewardedVideoAd.loadAd(true);*/
                initRewardAd();
            

            @Override
            public void onAdLoaded(Ad ad) 
                Log.d(TAG, "S2S onAdLoaded: ");
            

            @Override
            public 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即可。

 

 

 

 

Facebook 上传视频广告:错误代码:1363030。“您的视频上传在完成之前超时”

】Facebook上传视频广告:错误代码:1363030。“您的视频上传在完成之前超时”【英文标题】:Facebookuploadvideoad:ErrorCode:1363030."Yourvideouploadtimedoutbeforeitcouldbecompleted"【发布时间】:2015-07-0911:14:15【问题描述】:我在尝试上传... 查看详情

1022-快手短视频广告主接入实践笔记(代码片段)

概述对于不熟悉快手短视频推广,广告主接入的有很多坑,给我的整体感觉就是技术实现简单,但是方式上有很多坑,希望分享出来给大家解惑,也留给自己作为技术实践中的经验总结。第一步是企业去快手... 查看详情

从facebook广告获取评论(营销)(代码片段)

在Facebook广告管理器上为我的帖子制作广告后。Facebook广告管理器向我显示此广告有多少评论。这对我来说非常重要,可以验证我的广告系列的有效性。在编程方面:有没有办法计算我的广告所属的数字,如Facebook广告管理器(我... 查看详情

适配器中的激励视频广告版本 20.0.0 以上

】适配器中的激励视频广告版本20.0.0以上【英文标题】:RewardedVideoAdsversion20.0.0aboveinAdapter【发布时间】:2022-01-2117:47:58【问题描述】:我是Java新手,我想在Adapter.class中实现奖励视频广告20.0.0或更高版本。正如我在此链接https://d... 查看详情

已开源flutter穿山甲广告插件的集成-flutterads(代码片段)

...为5种广告形式,分别是开屏、插屏、Banner、信息流、激励视频。随着短视频的崛起,出现了新的全屏视频和前面5种的混入视频形式。集成广告插件Flutter穿山甲广告插件flutter_pangle_ads插件特点🔨接入简单快速(封... 查看详情

ios接入腾讯优量汇开屏广告教程(代码片段)

文章目录引言I、SDK部署1.1开屏广告Demo1.2SDK核心API1.3接入注意事项II、iOS14适配III、上架权限配置引言本文以对接开屏广告为例子https://developers.adnet.qq.com/doc/ios/union/union_splash广告类型接入方式简介适用场景版本备注开屏广告SDK原... 查看详情

faq接入hmscore广告服务中的常见问题总结和解决方法(代码片段)

HMSCore广告服务(AdsKit)为开发者提供流量变现服务和广告标识服务,依托华为终端能力,整合资源,帮助开发者获取高质量的广告内容。同时提供转化跟踪参数服务,支持三方监测平台、广告主进行转化... 查看详情

faq接入hmscore广告服务中的常见问题总结和解决方法(代码片段)

HMSCore广告服务(AdsKit)为开发者提供流量变现服务和广告标识服务,依托华为终端能力,整合资源,帮助开发者获取高质量的广告内容。同时提供转化跟踪参数服务,支持三方监测平台、广告主进行转化... 查看详情

android如何接入穿山甲广告?(代码片段)

...示走即可创建完毕之后去依次点击流量–>代码位创建广告位根据自己的需求去创建即可最后点击接入选择SDK下 查看详情

gb28181接入摄像头输出可结构化分析的视频流(代码片段)

...启动即用:https://www.liveqing.com/docs/download/LiveGBS.html什么是视频结构化视频结构化是对视频数据的结构化处理,对原始视频流进行分析,提取出关键数据,在一些智能化场景下建模使用。开启输出RTSP注意在Linux下面开启554端口通常... 查看详情

Facebook 广告 API /adcreatives 视频错误

】Facebook广告API/adcreatives视频错误【英文标题】:FacebookAdsAPI/adcreativesvideoerror【发布时间】:2017-07-0705:57:16【问题描述】:我和我的团队一直在搜寻网络和Facebook文档以寻求答案,但由于某种原因,我们的问题没有有效的答案。... 查看详情

Facebook 原生广告 API,仅显示视频

】Facebook原生广告API,仅显示视频【英文标题】:FacebookNativeAdsAPI,showvideoonly【发布时间】:2015-10-2208:09:49【问题描述】:我在我的Android应用中使用FacebookAudienceNativeAds,我只想向我的用户展示视频广告。有没有办法检测加载的Nati... 查看详情

已开源flutter穿山甲广告插件的集成-flutterads(代码片段)

...为5种广告形式,分别是开屏、插屏、Banner、信息流、激励视频。随着短视频的崛起,出现了 查看详情

others-facebook广告实施app-ads应用的所有权(代码片段)

title:others-facebook广告实施app-ads应用的所有权categories:Otherstags:[facebook,广告]date:2022-04-1418:14:42comments:falsemathjax:truetoc:trueothers-facebook广告实施app-ads应用的所有权前篇官方验证AudienceNetwork应用的所有权-https://ww 查看详情

如何获得facebook广告utm(代码片段)

...在创建广告时,我可以使用端点URL_Tags=>https://developers.facebook.com/docs/marketing-api/reference/ad-creative/定义UTM标记但如果我想跟踪性能,我无法取回UTM=>https://developers.facebook.com/docs/marketing-api/insights/parameters我知道超级指标能够获得U... 查看详情

小程序开发之流量主

...条件1.2广告位id获取II、相关开发2.1广告显示2.2是否开启激励视频(阅读/下载)III、导流3.1小程序换友链3.2从公众号导粉丝3.3提升搜索结果加权IV4.1获取小程序页面小程序码4.2获取小程序路径seealso引言流量主接入简单,仅需复制... 查看详情

阿里云物联网智能视频服务接入(代码片段)

物联网视频服务(LinkVisual)支持视频流上云、存储、转发、告警事件等视频基础能力,提供丰富的视频算法以及云边协同(算法云端训练、云端下发、边缘计算推理)服务。旨在帮助视频设备厂商、方案商与... 查看详情

如何在egretnative中接入穿山甲广告,为开发者营收添砖加瓦(代码片段)

...展能力接入第三方原生SDK,本文将为开发者介绍如何接入广告系统。穿山甲是字节跳动提供的广告接入SDK,提供了多种广告样式,具体信息可以参见其官方文档。穿山甲平台准备进入穿山甲平台官网,完成注册登录,并按照平台... 查看详情