Android 中的 AdMob Facebook 中介无法正常工作
Posted
技术标签:
【中文标题】Android 中的 AdMob Facebook 中介无法正常工作【英文标题】:AdMob Facebook Mediation in Android not working 【发布时间】:2021-07-16 01:48:56 【问题描述】:我的 ad mob 帐户受到限制,我在尝试加载广告时收到错误 I/Ads: Ad failed to load : 3
。
我了解到,即使 ad mob 帐户受到限制,中介网络仍然可以工作,因此我正在尝试添加到中介 facebook 受众网络 (FAN),但我遇到了问题
我创建了一个 Facebook 企业帐户,并按照以下官方指南喜欢 AdMob: https://developers.google.com/admob/android/mediation/facebook#step_3_import_the_facebook_audience_network_sdk_and_adapter
然后我按照本指南测试中介网络: https://developers.google.com/admob/android/mediation-test-suite
我在 ad mob 和 FAN 上都添加了我的设备作为测试设备。
如日志中所述,我也添加了
AdSettings.addTestDevice(deviceHash)
和
MobileAds.setRequestConfiguration(configuration)
但是当运行应用程序并使用中介测试工具(见图)加载 Facebook 广告时,我仍然收到错误
I/Ads: Ad failed to load : 3
这让我很困惑。就像没有考虑到 facebook 调解!我怎样才能调试更多呢?
PS:
在尝试加载广告之前,我已在 facebook 上选择了测试广告的类型 我已安装并登录了 facebook 应用程序顺便说一句,我尝试直接集成 facebook 广告 sdk,我可以通过我想使用中介来加载测试广告
这是我的 MainActivity 代码:
package com.perl***ca.buongiornobuonanotte
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.onNavDestinationSelected
import com.facebook.ads.AdSettings
import com.google.android.ads.mediationtestsuite.MediationTestSuite
import com.google.android.gms.ads.*
import com.perl***ca.buongiornobuonanotte.BuildConfig.AD_UNIT_ID_BANNER
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
class MainActivity : AppCompatActivity()
private lateinit var adView: AdView
private lateinit var configuration: RequestConfiguration
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MediationTestSuite.launch(this);
AdSettings.addTestDevice("0e48fb1f-dd5c-4102-8d93-be6fcc0955dc");
configuration = RequestConfiguration.Builder()
.setTestDeviceIds(Arrays.asList("1F642237A220D0BF1833E04E81F1CEBE")).build()
MobileAds.setRequestConfiguration(configuration)
adView = AdView(this)
adContainer.addView(adView)
loadBanner()
override fun onCreateOptionsMenu(menu: Menu): Boolean
val inflater: MenuInflater = menuInflater
inflater.inflate(R.menu.options_menu, menu)
return true
override fun onOptionsItemSelected(item: MenuItem): Boolean
// Handle item selection
return item.onNavDestinationSelected(findNavController(R.id.nav_host_fragment)) || super.onOptionsItemSelected(
item
)
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get()
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = adContainer.width.toFloat()
if (adWidthPixels == 0f)
adWidthPixels = outMetrics.widthPixels.toFloat()
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
private fun loadBanner()
adView.adUnitId = AD_UNIT_ID_BANNER
adView.adSize = adSize
val adRequest = AdRequest
.Builder()
.build()
print("is test-------")
println(adRequest.isTestDevice(this))
// Start loading the ad in the background.
adView.loadAd(adRequest)
【问题讨论】:
【参考方案1】:在 facebook 货币化管理器上启用测试模式。
【讨论】:
以上是关于Android 中的 AdMob Facebook 中介无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Android 实时应用 - 带有 Facebook 广告的 Google Admob 中介仅显示测试广告
我可以在同一个 Android 应用中使用 Admob 广告帐户和 Facebook 货币化帐户吗