Facebook Audience Network 与 dfp 中介网络

Facebook Audience Network with dfp mediation network

应用程序

它已经使用 dfp 从 admob 获取广告,如 DFP Android Guides. Now I want to get ads from facebook audience network through dfp. I follow the guide here 中所述,并将 FacebookAdapter.jarAudienceNetwork.jar 添加到我的应用程序中。

DFP

在我的订单项中,我设置类型 price priority 并使用 sdk mediation 广告与 facebook 受众网络。

条件

但是,当应用程序运行时,我看到了以下消息,就像其他人报告的那样 here

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

我认为代码有效,dfp 投放来自 facebook 受众网络的广告。我对此非常确定,因为 dfp 和 facebook 控制台都会显示广告请求信息。

问题

  1. 我是否正确设置了订单项?
  2. 我们如何解决广告尺寸不受支持的问题?

更新

  1. 订单项设置没有问题。但是如果使用dfp做中介的话,需要注意优先级here
  2. 目前,最简单的解决方案是放弃智能横幅,改用横幅。这将允许您从 Facebook 受众网络获取中介广告。
  3. 如果您使用混淆器,请不要忘记添加 -keep public class com.google.ads.mediation.** {*;}。否则,您将看到无法实例化 facebook 适配器消息。

FacebookAdapter 中存在广告尺寸匹配问题:

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

我使用的是 dfp sdk,所以如果你使用其他 sdk,我不能保证它有效。我的代码已经适用于 admob 和其他中介网络,我尝试添加 facebook 受众网络。

layout.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的问题。我希望 google 稍后会解决这个问题,但我暂时放弃 SMART_BANNER。正如我在更新中提到的,如果你使用 SMART_BANNER,你将得到这个 W/FacebookAdapter(18649): The input ad size is not supported at this moment.

罐子

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

facebook adapter - This is from dfp mediation network,你可以找到FacebookAdapter.jar.

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

build.gradle

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

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

project.iml

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

Proguard

正如我在回复中所说,如果你使用Proguard,一定不要忘记添加com.google.ads.mediation!否则,你会一直看到 cannot 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's Google Admob Mediation中,它显示了自定义横幅广告的实现示例。我想这样你就可以使用SMART_BANNER,同时也意味着你必须自己转换广告尺寸。


更新

定位

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

您可以看到 dfp 对此的自定义定位,我 猜测 代码将类似于 .addNetworkExtrasBundle(new com.google.ads.mediation.facebook.FacebookAdapter(), bundle).

展示位置 ID

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

  1. 创建订单
  2. 创建订单项
  3. 创建 SDK mediation 创意
  4. Select Facebook Audience Network 喜欢下面的图片,然后将您的展示位置 ID 放在那里。

这是一个非常简单的版本,您应该知道订单项的设置会对广告产生影响。如果您的设置不正确,例如商品的 type 优先级太低或 frequency capping 太长,您可能看不到广告.


2016 年 2 月

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

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

更多信息请见 Using the Native Ad API in Android

如果您在没有投放任何广告的情况下看到以下消息,那可能是因为您的设备或模拟器上没有安装 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