有人知道AdWhirl是如何运作的吗?
我为Greystripe设置了我的自定义事件,如果它尚未初始化我初始化SDK,并刷新BannerView,但我没有看到自定义事件被调用。所以我的主要问题是,AdWhirl如何以及何时调用自定义事件?什么是口粮和翻车?我没有对它们做任何事情(主要是因为我不知道为什么我需要它们.AdWhirl对它们做了什么?)
另外,如何控制AdWhirl何时刷新横幅广告?我想将刷新与按钮动作联系起来。
过去两天我一直在寻找不间断的在线搜索,并阅读了很多人们共享的教程和示例Java类,但没有一个有效。看起来AdWhirl似乎停滞不前。我很不清楚AdWhirl是如何工作的:它可以在应用程序和您希望在广告中使用的所有广告机会之间进行调解。这对我来说是一个完全过于高级的理解。 :(
答案 0 :(得分:2)
您是否阅读了描述如何使用自定义事件的wiki page?您基本上在后端UI中创建一个自定义事件,其行为类似于另一个广告网络,您可以配置它的流量。然后,您可以实现在后端命名的函数名称。唯一不直观的部分是你必须实现AdWhirlInterface来监听自定义事件,这意味着创建一个adWhirlGeneric()方法。这个方法可以是空的,我在创建自己的测试事件时没有看到它被调用。最后,确保设置AdWhirlInterface。
因此,假设您在后端创建了一个网络:
Name: Test Network
Function Name: testEvent
并给它流量(我建议在测试时给它100%的流量),然后你的代码看起来像这样:
public class MyActivity extends Activity {
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
}
...
public void testEvent() {
// Place event code here.
Log.d("Cust_Network", "Cust network got called!");
}
}
要控制刷新广告,请在点击按钮时调用AdWhirlLayout上的rotateThreadedNow()。这将使AdWhirl通过随机确定新广告网络的过程,并在这种情况下调用正确的适配器或自定义事件。如果您选择使用此路线,则可能不需要自动刷新,在这种情况下,您应该禁用后端的自动刷新。
配给对象使用配置数据中的数据填充。每个配给代表一个广告网络,并具有代表各个广告网络ID的密钥,您在后端设置的权重百分比以及回填优先级。回填优先级是AdWhirl在原始请求未填写时将请求的网络订单。这种通过回填优先级的过程称为翻转。在实现自己的自定义事件时,您需要了解一些关于翻转的内容。
提到的Wiki页面会将这些建议添加到您的自定义事件中:
// In your custom event code, you'll want to call some of the below methods.
//
// On success:
// this.adWhirlLayout.adWhirlManager.resetRollover();
// this.adWhirlLayout.rotateThreadedDelayed();
//
// On failure:
// this.adWhirlLayout.rolloverThreaded();
如果您的自定义事件正确提取广告,您将需要重置翻转顺序(因此下一个请求将具有正确的回填顺序),并调用rotateThreadedDelayed()以便在时间量内自动进行刷新你在后端指定了。如果广告请求失败,您需要调用rolloverThreaded(),以便AdWhirl可以通过它的翻转流程来检查其他已配置的广告网络是否有广告。
答案 1 :(得分:1)
如果你想要,你可以使用我开发的开源库,允许将AdWhirl与其他(不受支持的)广告网络一起使用(但也可以使用官方支持的广告网络)。该库也是可扩展的,因此您可以向其添加新网络并通过AdWhirl轻松管理。
该库是AdMAL(Ad Mediation Abstraction Layer),可在Apache 2.0开源许可下的github.com存储库中找到:https://github.com/marcosiino/AdMAL
使用AdMAL,您可以在应用程序中轻松实现支持和不支持网络的AdWhirl(集成最容易实现AdWhirl SDK)。实际上它只支持iOS(它是在Objective-C中开发的),但我打算在接下来的几个月内移植到android。
我出于自己的目的开始使用AdMAL,然后决定几天前在开源许可下将其发布给公众。希望这有帮助!我鼓励其他开发人员改进库并实现新的网络支持,这样每个人都可以受益。