2

App

It already uses dfp to get ads from admob as described in DFP Android Guides. Now I want to get ads from facebook audience network through dfp. I follow the guide here and add FacebookAdapter.jar and AudienceNetwork.jar into my app.

DFP

In my line item, I set type price priority and use sdk mediation ad with facebook audience network.

Condition

However, when the app runs, I see the following message just like someone else reported here.

W/FacebookAdapter(18649): The input ad size is not supported at this moment.

I think the code works, and dfp delivers the ads from facebook audience network. I am pretty sure about this because both dfp and facebook console show the ad request information.

Questions

  1. Do I setup the line item correctly?
  2. How could we fix the issue of unsupported ad size?

Update

  1. Nothing wrong about the line item setting. But if you use dfp for mediation, you need to be aware of the priority here
  2. Currently, the simplest solution is to give up smart banner and use banner instead. This would allow you to get mediation ad from facebook audience network.
  3. Don't forget to add -keep public class com.google.ads.mediation.** {*;} if you use proguard. Otherwise, you will see couldn't instantiate facebook adapter message.
4

2 回答 2

7

我使用 dfp sdk,所以如果您使用其他 sdk,我不能保证它可以正常工作。我的代码已经适用于 admob 和其他中介网络,我尝试添加 facebook 受众网络。

布局.xml

<com.google.android.gms.ads.doubleclick.PublisherAdView
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:id="@+id/adView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                ads:adSize="BANNER"
                ads:adUnitId="@string/ad_unit_id"
                android:visibility="gone" /> 

请注意,我在这里使用BANNER而不是SMART_BANNER,不知何故,dfp 和 facebook 之间的横幅大小不兼容。在我看来,这是一个sdk的问题。我希望谷歌稍后会解决这个问题,但我现在只是放弃 SMART_BANNER。正如我在更新中提到的,如果你使用 SMART_BANNER,你会得到这个W/FacebookAdapter(18649): The input ad size is not supported at this moment.

facebook android sdk - 这个来自 facebook,你可以AudienceNetwork.jar在里面找到。

facebook 适配器- 这是来自dfp 中介网络,您可以找到 FacebookAdapter.jar。

在 Android Studio 中,您需要做的就是将 jars 放入您的 libs 文件夹并确保您的 build.gradle 包含 libs 文件夹。

构建.gradle

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
...
}

Android Studio 中的项目结构

不知何故,当我构建 apk 时,即使我Synchronize 'build.gradle'. 因此,您可能需要检查您的 project.iml 并确保您在其中看到以下内容。

项目.iml

...
    <orderEntry type="library" exported="" name="AudienceNetwork" level="project" />
    <orderEntry type="library" exported="" name="FacebookAdapter" level="project" />

保卫

正如我在回复中所说,com.google.ads.mediation如果你使用Proguard,你一定不要忘记添加!否则,你会一直看到不能instantiate com.google.ads.mediation.facebookadapter class

-keep public class com.google.ads.mediation.** { public *; }

日志

如果一切配置正确,您将看到这条消息。

02-18 16:24:25.315 8081-8307/com.xxxxxxx I/Ads﹕ Trying mediation network: 1.0568273599589929E19 02-18 16:24:25.320 8081-8081/com.xxxxxxx I/Ads﹕ Instantiating mediation adapter: com.google.ads.mediation.facebook.FacebookAdapter 02-18 16:24:25.335 8081-8081/com.xxxxxxx W/Ads﹕ Server parameters: {"gwhirl_share_location":"1","pubid":"xxxxxxxxxxxxx_xxxxxxxxxxxxx"}

如果您愿意放弃 SMART BANNER,这是使用 Audience Network 的最简单方法。如果您必须使用 SMART BANNER,我建议您使用com.google.ads.mediation.customevent.CustomEventBanner自己实现自定义事件横幅。在Vpon 的 Google Admob Mediation中,它展示了一个自定义均匀横幅的实现示例。我认为您将能够以这种方式使用SMART_BANNER,这也意味着您必须自己转换广告尺寸。


更新

定位

实际上,我不确定您是否可以使用 facebook 受众网络进行定位,因为我在 facebook 的官方文档中找不到任何有关定位的信息。

您可以看到dfp Custom 目标,我代码将类似于.addNetworkExtrasBundle(new com.google.ads.mediation.facebook.FacebookAdapter(), bundle).

展示位置 ID

如果您不熟悉如何使用从 facebook 受众网络获得的placement_id,您必须执行以下操作:

  1. 创建订单
  2. 创建订单项
  3. 创建SDK mediation广告素材
  4. 如下图所示选择Facebook Audience Network,然后将您的展示位置 ID 放在那里。

在此处输入图像描述

这是您如何操作的非常简单的版本,您应该知道订单项的设置会对广告产生影响。如果您的设置不正确,例如项目的类型优先级过低或频次上限过长,您可能看不到广告。


2016 年 2 月

您现在可以使用 gradle 安装受众网络库。

compile 'com.facebook.android:audience-network-sdk:4.+'

有关在 Android 中使用原生广告 API 的更多信息

如果您在没有投放任何广告的情况下看到以下消息,那可能是因为您的设备或模拟器上没有安装 facebook 应用程序。

E/ActivityThread: Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider 
W/FacebookAdapter: No fill. We are not able to serve ads to this person. Please refer to https://developers.facebook.com/docs/audience-network/faq#a12. If you are integrating Audience Network for the first time, you can use test ads https://developers.facebook.com/docs/audience-network/testing.

2016 年 5 月

Yoann Hercouet 在评论中指出LARGE_BANNER is also not available on Facebook

于 2015-02-18T08:48:36.453 回答
0

FacebookAdapter 内部存在广告大小匹配问题:

https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/MWoBWBR0FQM

于 2015-02-10T17:16:25.227 回答