android 什么来取代FacebookAdapter&FacebookExtras与上com.google.ads.调解:facebook:6.14.0.0?

rm5edbpk  于 2023-09-28  发布在  Android
关注(0)|答案(3)|浏览(251)

后台

我有这个项目,通过Admob处理Facebook广告:

  1. implementation 'com.google.ads.mediation:facebook:6.11.0.0'

在代码中:

  1. final AdRequest.Builder builder = new AdRequest.Builder();
  2. builder.addNetworkExtrasBundle(FacebookAdapter.class, new FacebookExtras().setNativeBanner(true).build());
  3. adLoader.loadAd(builder.build());

它工作正常。

问题

现在,当更新到新版本时(最初我问的是6.12.0):

  1. implementation 'com.google.ads.mediation:facebook:6.14.0'

这表明FacebookAdapter和FacebookExtras都不存在了。

我所尝试的

检查文档,即使他们说要使用这个版本,他们告诉使用的代码与以前相同:

  • https://developers.google.com/admob/android/mediation/meta#step_3_import_the_meta_audience_network_sdk_and_adapter
  • https://developers.google.com/ad-manager/mobile-ads-sdk/android/mediation/meta#using_meta_audience_network_native_ads_without_a_mediaview
  1. Bundle extras = new FacebookExtras()
  2. .setNativeBanner(true)
  3. .build();
  4. AdManagerAdRequest request = new AdManagerAdRequest.Builder()
  5. .addNetworkExtrasBundle(FacebookAdapter.class, extras)
  6. .build();

编辑:有人写道我应该使用这个,但没有任何解释他从哪里得到这个,我也没能找到它的起源:

我试着问了一些问题,但后来它被删除了。
编辑:看来旧的说明现在已经完全没有了。
也许现在已经不需要了:
https://developers.google.com/admob/android/mediation/meta#using_facebook_native_ads_without_a_mediaview
然后,他们仍然在那里提到了不再存在的类:FacebookAdapter。
我尝试更新依赖项并删除无法使用的代码,但在加载原生广告时出现此错误:

  1. error code 3 - Unable to instantiate mediation adapter class.

问题

我应该用什么来代替?为什么没有记录在案?

8fsztsew

8fsztsew1#

我对这个问题做了一些研究,我冒昧地猜测,与FacebookMediationAdapter相关的文档正在更新中,之前给出的答案是AI生成的,这就是为什么你找不到这些类的原因。
我还检查了6.11.0.0版本中的FacebookAdapter.java,它包含以下日志:Facebook瀑布中介已被弃用,并将在未来的适配器版本中删除。请更新以提供投标广告代替。有关详细信息,请参阅link。”
此外,文档还提到:“观众网络现在只使用竞价来填充iOS和Android应用程序中的广告。你需要将你的应用程序从瀑布移动到竞价,然后通过Audience Network赚钱。”
我可以假设(但这不是事实)FacebookAdapter由于与瀑布的集成而被删除。

  • 我认为我们需要等待谷歌团队对your question的回答,这将是 * 最有信誉的答案来源 *

目前,我看到了一个使用原生元素的解决方案--使用Audience Network SDK

初始化Audience Network SDK

  1. public class YourApplication extends Application {
  2. ...
  3. @Override
  4. public void onCreate() {
  5. super.onCreate();
  6. // Initialize the Audience Network SDK
  7. AudienceNetworkAds.initialize(this);
  8. }
  9. ...
  10. }

然后,示例化一个NativeBannerAd对象,创建一个AdListener,并在Activity中调用loadAd(...)

  1. public class NativeBannerAdActivity extends Activity {
  2. private final String TAG = NativeBannerAdActivity.class.getSimpleName();
  3. private NativeBannerAd nativeBannerAd;
  4. @Override
  5. protected void onCreate(@Nullable Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. // Instantiate a NativeBannerAd object.
  9. // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
  10. // now, while you are testing and replace it later when you have signed up.
  11. // While you are using this temporary code you will only get test ads and if you release
  12. // your code like this to the Google Play your users will not receive ads (you will get a no fill error).
  13. nativeBannerAd = new NativeBannerAd(this, "YOUR_PLACEMENT_ID");
  14. NativeAdListener nativeAdListener = new NativeAdListener() {
  15. @Override
  16. public void onMediaDownloaded(Ad ad) {
  17. // Native ad finished downloading all assets
  18. Log.e(TAG, "Native ad finished downloading all assets.");
  19. }
  20. @Override
  21. public void onError(Ad ad, AdError adError) {
  22. // Native ad failed to load
  23. Log.e(TAG, "Native ad failed to load: " + adError.getErrorMessage());
  24. }
  25. @Override
  26. public void onAdLoaded(Ad ad) {
  27. // Native ad is loaded and ready to be displayed
  28. Log.d(TAG, "Native ad is loaded and ready to be displayed!");
  29. }
  30. @Override
  31. public void onAdClicked(Ad ad) {
  32. // Native ad clicked
  33. Log.d(TAG, "Native ad clicked!");
  34. }
  35. @Override
  36. public void onLoggingImpression(Ad ad) {
  37. // Native ad impression
  38. Log.d(TAG, "Native ad impression logged!");
  39. }
  40. });
  41. // load the ad
  42. nativeBannerAd.loadAd(
  43. nativeBannerAd.buildLoadAdConfig()
  44. .withAdListener(nativeAdListener)
  45. .build());
  46. }
  47. }
  • 您可能会发现以下与使用中介将Google移动的Ads SDK与Meta Audience Network配合使用相关的资源很有帮助 *:
  • Here您可以通过Google移动的Ads SDK看到中介示例和用于中介的适配器
  • On this page您可以看到有关如何为广告网络独立构建中介适配器的信息
  • 此外,我发现了一个问题,证实Meta在2022年9月做了一些改进。此错误也与FacebookMediationAdapter有关。

希望这些能对你有所帮助

展开查看全部
l2osamch

l2osamch2#

在依赖项com.google.ads.mediation:facebook:6.14.0.0中,类FacebookAdapter和FacebookExtras已被弃用。您应该使用以下替代方案替换它们:
FacebookAdapter:使用FacebookBiddingAdapter代替。FacebookExtras:使用FacebookBiddingExtraBundleBuilder代替。提供这些替代方案是为了确保兼容性,并整合Facebook Audience Network SDK的最新更新和功能。
请确保相应地更新您的代码,并将不推荐使用的类替换为相应的替代类,以确保与Facebook中介适配器的顺利集成和功能。

u4dcyp6a

u4dcyp6a3#

我认为文档只是添加了更多的信息日志,现在我们需要的最小值就是拥有依赖关系,仅此而已。
如果我错了,请让我知道。
可悲的是,我仍然有错误,但我认为原因是网站上的东西(Facebook和/或Admob)。
编辑:我想我在清单中缺少了这个,因为项目在2个应用程序之间共享了它,其中一个没有它:

  1. <meta-data
  2. android:name="com.google.android.gms.ads.APPLICATION_ID"
  3. android:value="@string/ad_mob_app_id" />

现在我认为它工作正常。

相关问题