本文共 5609 字,大约阅读时间需要 18 分钟。
1). 新手入门
使用 Facebook Audience Network,您的 Android 应用可以通过展示 Facebook 广告实现创收。以下是文档位置
(需翻墙)
2).测试 Audience Network 的实施情况
请在推送至生产环境之前,测试 Facebook Audience Network SDK 的实施情况,以验证使用体验。Audience Network 提供和服务器端两种测试方法。
(需翻墙)
实际项目中,开发者需要熟悉1)中文档的操作,把Facebook的SDK接入到正式项目;然后2)中的操作由后台人员进行对接,其中开发者需要提供一部测试机的 Google 广告编号 (AAID),用以在Facebook后台注册,以激活视频广告。
参考开源项目 和Facebook官方项目 具体分析步骤。
① 添加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: "); } });
⑥ 显示广告
不同类型的广告,显示的方法也有一些不同;
// banneradView.loadAd();// RectangleadView.loadAd();// interstitialinterstitialAd.loadAd();@Overridepublic void onAdLoaded(Ad ad) { super.onAdLoaded(ad); Log.d(TAG, "facebook_ad,,onAdLoaded: interstitialAd,," + ad); txStatus.setText("Ad Loaded"); if (canShowFullscreenAd) { interstitialAd.show(); }}// rewardedrewardedVideoAd.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 Play即可。
转载地址:http://xxjg.baihongyu.com/