有人知道AdWhirl的运作方式吗?

我为Greystripe设置了自定义事件,如果尚未初始化SDK,则可以在其中初始化SDK,然后刷新BannerView,但看不到自定义事件被调用。所以我的主要问题是,AdWhirl如何以及何时调用自定义事件?口粮和结转额是多少?我没有对它们做任何事情(主要是因为我不知道为什么需要它们。AdWhirl对它们有什么作用?)

另外,如何控制AdWhirl何时刷新横幅?我想将刷新与按钮动作联系在一起。

在过去的两天里,我一直在不停地搜索在线内容,并阅读了许多人们共享的教程和示例Java类,但没有一个起作用。看起来AdWhirl停滞不前。对于我来说,目前还不清楚AdWhirl的工作原理:它在应用程序和您要在广告中使用的所有广告机会之间进行中介。对于我来说,这是一个太高的理解,无法前进。 :(

最佳答案

您是否已阅读wiki page,其中描述了如何使用自定义事件?您基本上是在后端用户界面中创建一个自定义事件,其行为类似于另一个广告网络,并且可以配置其流量。然后,您可以实现在后端命名的函数名称。唯一不直观的部分是您必须实现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可以通过其滚动过程来检查其他已配置的广告网络中的广告。

09-28 00:10