您是否阅读过描述如何使用自定义事件的wiki 页面?您基本上在后端 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 可以通过其滚动过程来检查您配置的其他广告网络是否有广告。