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.jar
和 AudienceNetwork.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 控制台都会显示广告请求信息。
问题
- 我是否正确设置了订单项?
- 我们如何解决广告尺寸不受支持的问题?
更新
- 订单项设置没有问题。但是如果使用dfp做中介的话,需要注意优先级here
- 目前,最简单的解决方案是放弃智能横幅,改用横幅。这将允许您从 Facebook 受众网络获取中介广告。
- 如果您使用混淆器,请不要忘记添加
-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 受众网络获得的内容,您必须执行以下操作:
- 创建订单
- 创建订单项
- 创建
SDK mediation
创意
- 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
。
应用程序
它已经使用 dfp 从 admob 获取广告,如 DFP Android Guides. Now I want to get ads from facebook audience network through dfp. I follow the guide here 中所述,并将 FacebookAdapter.jar
和 AudienceNetwork.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 控制台都会显示广告请求信息。
问题
- 我是否正确设置了订单项?
- 我们如何解决广告尺寸不受支持的问题?
更新
- 订单项设置没有问题。但是如果使用dfp做中介的话,需要注意优先级here
- 目前,最简单的解决方案是放弃智能横幅,改用横幅。这将允许您从 Facebook 受众网络获取中介广告。
- 如果您使用混淆器,请不要忘记添加
-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 受众网络获得的内容,您必须执行以下操作:
- 创建订单
- 创建订单项
- 创建
SDK mediation
创意 - 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
。