Android上的AdWhirl - 配给权重之和为0 - 不显示广告

时间:2012-07-27 15:29:05

标签: android admob adwhirl

我无法让Adwhirl工作。经过一个小时的尝试官方文档后,我尝试了简约路线,通过XML:

 <com.adwhirl.AdWhirlLayout
     android:id="@+id/addwhirlview"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" /> 

这段代码与原始AdMob代码(com.google.ads.AdView)位于同一位置,工作正常。

我从LogCat获得以下AdWhirl:

I/AdWhirl SDK(18641): Creating adWhirlManager...
D/AdWhirl SDK(18641): Locale is: en_US
D/AdWhirl SDK(18641): Hashed device ID is: 7d1dd13a2fa91c0ad174cb69a11549a3
I/AdWhirl SDK(18641): Finished creating adWhirlManager
D/AdWhirl SDK(18641): Prefs{427dbf543f7849e6bd9e8c425a2a52a6}: {"config": "{"extra":{"location_on":1,"background_color_rgb":{"red":0,"green":0,"blue":0,"alpha":1},"text_color_rgb":{"red":255,"green":255,"blue":255,"alpha":1},"cycle_time":30,"transition":8},"rations":[]}
D/AdWhirl SDK(18641): ", "timestamp": 1343402294184}
I/AdWhirl SDK(18641): Using stored config data
D/AdWhirl SDK(18641): Received jsonString: {"extra":{"location_on":1,"background_color_rgb":{"red":0,"green":0,"blue":0,"alpha":1},"text_color_rgb":{"red":255,"green":255,"blue":255,"alpha":1},"cycle_time":30,"transition":8},"rations":[]}
I/AdWhirl SDK(18641): Sum of ration weights is 0 - no ads to be shown

我用Google搜索了这个问题,女巫把我带到了这个问题:Empty AdWhirl layout on android (no ads shown) ..这个家伙基本上和我一样,说他弄清楚了,但从来没有发布过如何......

我在清单中获得了AdWhirl密钥,我将Admob设置为我唯一的广告网络,并在应用列表中添加了应用等,所以我很确定那一方是正确的..我在做什么错,“定量权重之和为0”甚至意味着什么?

提前致谢! 托马斯

1 个答案:

答案 0 :(得分:2)

在AdWhirl中,Ration表示有关您已配置的广告网络的信息。广告网络有一个名称和网络ID(AdWhirl设置这些),以及百分比值和您为该网络指定的任何密钥(在AdMob的情况下,只使用一个密钥 - 发布商ID)。

然后,AdWhirl会提取您的配置,并为您配置的每个网络累加配给权重(百分比)。在您的情况下,百分比加起来为0.

为什么会这样?您的JSON字符串包含"rations":[],这意味着所提取的配置AdWhirl没有配置任何广告网络。您会注意到日志也会说Using stored config data,这意味着它从先前的拉动中缓存了配置。您最近可能更新了配置,但AdWhirl仍在缓存旧配置。

您可以在网络浏览器中检查http://mob.adwhirl.com/getInfo.php?appver=3.2.0&appid=REPLACE_WITH_YOUR_APP_ID(插入自己的SDK KEY)以查看AdWhirl后端是否正在为新配置提供服务。如果您已正确配置AdMob,则应在rations数组中看到一个条目。

一旦您确认AdWhirl后端正在提供正确的配置,您就可以减少AdWhirl缓存的负担。你可以这样做:

AdWhirlManager.setConfigExpireTimeout(1000 * 10);

这将使AdWhirl每10秒仅缓存一次配置,这意味着它基本上会在每次刷新时拉出一个新的配置。然后,AdMob应该出现在下一个配置拉动中,一切都应该在那里工作。

请注意,通常最好将配置缓存更长时间,这样您的应用就不必每次刷新都会提取配置。在正常情况下,您可以考虑缓存30分钟:

AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 30);