0

我无法让 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

我用谷歌搜索了这个问题,女巫把我带到了这个问题:Android 上的空 AdWhirl 布局(没有显示广告) .. 这个人基本上和我的经历一样,说他想通了,但从来没有发布过..

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

提前致谢!托马斯

4

1 回答 1

2

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

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

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

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

一旦您确认 AdWhirl 后端正在提供正确的配置,您就可以降低 AdWhirl 缓存的积极性。你可以这样做:

AdWhirlManager.setConfigExpireTimeout(1000 * 10);

这将使 AdWhirl 仅每 10 秒缓存一次配置,这意味着它基本上会在每次刷新时提取一个新配置。然后,AdMob 应该会出现在下一次配置拉取中,并且一切都应该从那里开始。

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

AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 30);
于 2012-07-27T21:59:22.287 回答