正如标题所述,我试图将广告包装添加到我的项目中,但我遇到了一些问题:
我已经检查了示例应用程序Heyzap已经安装了这里,并且它运行得很好。我甚至试着把它应用到我自己的项目中,没有改变任何东西,我也遇到了同样的问题。
这是我写的一堂课:
using Heyzap;
using UnityEngine;
public static class AdManager {
public static void InitialiseAdNetwork()
{
HeyzapAds.NetworkCallbackListener networkCallbackListener = delegate(string network, string callback) {
Debug.Log("The " + network + " network has been " + callback);
};
HeyzapAds.SetNetworkCallbackListener(networkCallbackListener);
HeyzapAds.Start("myID", HeyzapAds.FLAG_DISABLE_AUTOMATIC_FETCHING);
HZInterstitialAd.SetDisplayListener(delegate(string adState, string adTag) {
Debug.Log("INTERSTITIAL: " + adState + " Tag : " + adTag);
});
HZIncentivizedAd.SetDisplayListener(delegate(string adState, string adTag) {
Debug.Log("INCENTIVIZED: " + adState + " Tag : " + adTag);
});
}
public static void ShowMediationSuite()
{
HeyzapAds.ShowMediationTestSuite();
}
public static void ShowInterstitialAd()
{
HZInterstitialAd.Fetch();
}
}有人能看到我做错了什么吗?因为我不能。
发布于 2018-07-25 04:47:33
在我看来,从您的代码中可以看出,您不是要显示AD,而是要获取AD。对于间质广告,您需要调用以下行:
HZInterstitialAd.Show ();只有在Fetch ()调用完成后才能显示AD。您可以通过(1)设置委托来检查它,或者(2)使用HZInterstitialAd.IsAvailable ()之类的方法检查AD是否可用,从而找出Fetch ()何时已成功完成。
方法(1) -在Fetch ()完成后立即显示AD -注意,这是特定于HeyZap Interstitial广告的,如果您使用中介,它将不适用于其他AD类型(视频等)或非HeyZap网络:
HZInterstitialAd.SetDisplayListener(delegate(string adState, string adTag) {
Debug.Log("INTERSTITIAL: " + adState + " Tag : " + adTag);
if ( adState.Equals("available") ) {
HZInterstitialAd.Show ();
}
});方法(2) --如何执行此方法实际上取决于您的体系结构。例如,您可以向您的AdManager添加一个Try方法,并让调用方决定在AD尚未准备好的情况下做什么:
public static bool TryShowInterstitialAd()
{
if (HZInterstitialAd.IsAvailable ()) {
HZInterstitialAd.Show ();
return true;
}
return false;
}https://stackoverflow.com/questions/50037149
复制相似问题