1

有人知道 AdWhirl 是如何工作的吗?

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

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

在过去的两天里,我一直在网上不停地搜索,并阅读了很多人们分享的教程和示例 Java 类,但都没有奏效。看起来 AdWhirl 停滞不前。我不清楚 AdWhirl 是如何工作的:它在应用程序和您想在广告中使用的所有广告机会之间进行调解。对于我来说,这完全是一个太高级的理解。:(

4

2 回答 2

2

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

于 2011-09-25T02:59:59.913 回答
1

如果您愿意,可以使用我开发的开源库,该库允许将 AdWhirl 与其他(不受支持的)广告网络(但也与官方支持的广告网络)一起使用。该库也是可扩展的,因此您可以向其中添加新网络并通过 AdWhirl 轻松管理。

该库是 AdMAL(广告中介抽象层),可在 Apache 2.0 开源许可下的 github.com 存储库上获得:https ://github.com/marcosiino/AdMAL

使用 AdMAL,您可以轻松地在您的应用程序中为受支持和不受支持的网络实施 AdWhirl(集成比实施 AdWhirl SDK 更简单)。实际上它只支持 iOS(它是用 Objective-C 开发的),但我计划在接下来的几个月内移植到 android。

我出于自己的目的创建了 AdMAL,然后几天前决定根据开源许可向公众发布它。希望这有帮助!我鼓励其他开发人员改进库并实现新的网络支持,以便让每个人都受益。

于 2012-02-10T13:25:57.827 回答