在Android中添加Facebook横幅广告
我在Android应用程序中添加了Facebook横幅广告。我使用了有效的横幅ID,但没有任何内容。我想知道我的代码是否有问题 这是我的密码 在在Android中添加Facebook横幅广告,android,facebook-ads-api,Android,Facebook Ads Api,我在Android应用程序中添加了Facebook横幅广告。我使用了有效的横幅ID,但没有任何内容。我想知道我的代码是否有问题 这是我的密码 在build.app中 compile 'com.facebook.android:audience-network-sdk:4.18.0' 在main活动中 com.facebook.ads.AdView adView2 = new com.facebook.ads.AdView(this, "my_banner_id",AdSize.BANN
build.app中
compile 'com.facebook.android:audience-network-sdk:4.18.0'
在main活动中
com.facebook.ads.AdView adView2 = new com.facebook.ads.AdView(this, "my_banner_id",AdSize.BANNER_HEIGHT_50);
LinearLayout adContainer = (LinearLayout) findViewById(R.id.banner_container);
adContainer.addView(adView2);
adView2.loadAd();
在activity_main.xml中
<LinearLayout
android:id="@+id/banner_container"
android:layout_width="match_parent"
android:layout_height="55dp"
android:orientation="vertical"
/>
解决此问题的步骤:
- 将此测试id添加到onCreate方法中
AdSettings.addTestDevice(“您散列id”)代码>
- 有时由于工资单不完整,我们不得不面对这个问题。交叉检查您的工资单信息是否完整
有关此问题的更多详细信息,请查看此链接 当我更改时,它会起作用:
app.build
从
到
在main活动中
com.facebook.ads.AdView adView2 = new com.facebook.ads.AdView(this, "my_banner_id",AdSize.BANNER_HEIGHT_50);
LinearLayout adContainer = (LinearLayout) findViewById(R.id.banner_container);
adContainer.addView(adView2);
adView2.loadAd();
从
到
但是我在日志中仍然有这个错误
TeamDetails has leaked IntentReceiver com.facebook.ads.internal.DisplayAdController$c@3012f931 that was originally registered here. Are you missing a call to unregisterReceiver()?
我不知道为什么这个错误仍然出现在日志中
使用facebook ads sdk一步一步地解决。确保使用最新版本,因为旧版本不会收到广告。我运行的是旧版本,广告停止渲染
为了接收广告,您必须在测试设备上拥有一个facebook帐户,该帐户链接到您试图将其货币化的monetisation manager属性
下面是我如何渲染扇形横幅。请记住,我有一个渲染方法,它接收adConfig
作为配置对象,其中包含facebook adUnit和父对象,父对象是我要渲染add的布局容器(这些仅适用于我的项目):
检查你的logcat以了解可能的原因。你是在emulator还是在real device上测试它?在real device上。你的代码非常完美,请尝试在logcat中查看一些调试消息。我在logcat中发现了这一点`当使用Facebook的广告单元测试你的应用程序时,你必须指定设备哈希ID以确保测试广告的交付,在加载广告之前添加以下代码:AdSettings.addTestDevice(“一些字母”);`我会试试这句话。谢谢你的回答。什么是散列id?您可以从facebook开发者控制台创建测试散列id,您可以在那里创建横幅广告。此链接将对您有所帮助。好的,当我使用hash_id时,add没有出现,并且给我这个错误已经泄露了IntentReceiver com.facebook.ads.internal.DisplayAdController$c@421bdf40原来是在这里注册的。是否缺少对unregisterReceiver()的调用
Hello Nouman:)在问题中看到我的编辑,我想我已经解决了。谢谢你的回答,我的问题是使用了旧版本的Facebook ads sdk。尝试添加@Override protected void onDestroy(){if(adView!=null){adView.destroy();}super.onDestroy();}@DivyeshPatel当我添加onDestroy()时会发生什么
函数?当活动/片段删除谢谢您时,它会正确关闭adview,但是对于InterstitalAD
,在adview中是否有类似于销毁的函数?ondestory函数在活动或片段中可用
com.facebook.ads.AdView adView2 = new com.facebook.ads.AdView(this, "my_banner_id",AdSize.BANNER_HEIGHT_50);
Resources res = getResources();
com.facebook.ads.AdView adView2 = new com.facebook.ads.AdView(this,res.getString(R.string.facebook_banner),AdSize.BANNER_HEIGHT_50);
TeamDetails has leaked IntentReceiver com.facebook.ads.internal.DisplayAdController$c@3012f931 that was originally registered here. Are you missing a call to unregisterReceiver()?
if (adConfig != null && adConfig.getAdUnit() != null) {
Log.d(TAG, "displayBanner " + adConfig.getClass().getSimpleName() + " : " + adConfig.getAdUnit());
parent.setVisibility(View.VISIBLE);
parent.removeAllViews();
com.facebook.ads.AdView adView = new com.facebook.ads.AdView(parent.getContext(), adConfig.getAdUnit(), com.facebook.ads.AdSize.BANNER_HEIGHT_50);
parent.addView(adView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
adView.loadAd();
}