Проблемы с интеграцией рекламы Heyzap в мое приложение Unity

Как следует из названия, я пытаюсь добавить рекламную оболочку в свой проект, но у меня возникают некоторые проблемы:

  • Всякий раз, когда я запускаю пакет посредничества, сети Heyzap и Heyzap Cross Promo полностью интегрированы со всеми опциями. Однако, если я попытаюсь получить любой тип добавления, это даст мне ошибку NO_FILL, и я не смогу ее показать.
  • После инициализации рекламных сетей они инициализируются правильно, так что все в порядке.
  • Однако, если я попытаюсь показать объявление, скажем, межстраничное, оно полностью потерпит неудачу.

Я проверил пример приложения, которое 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();
    }
}

Может ли кто-нибудь увидеть что-то, что я сделал неправильно? Потому что не могу.


person sjmcmullan    schedule 26.04.2018    source источник
comment
Та же проблема и не могу найти решение Вы решаете эту проблему ??   -  person programmers_39    schedule 20.07.2018


Ответы (1)


Из вашего кода мне кажется, что вы не звоните, чтобы показать объявление, а просто получаете его. Для межстраничной рекламы вам нужно вызвать следующую строку:

HZInterstitialAd.Show ();

Вы сможете показывать рекламу только после завершения вызова Fetch(). Вы можете узнать, когда Fetch () успешно завершилась, либо (1) настроив своих делегатов для проверки этого, либо (2) проверив, доступен ли AD, используя такой метод, как HZInterstitialAd.IsAvailable ().

Метод (1) — показывает рекламу сразу после завершения Fetch () — обратите внимание, что это специфично для межстраничных объявлений HeyZap и не будет работать для других типов рекламы (видео и т. д.) или для сетей, отличных от HeyZap, если вы используете посредничество:

HZInterstitialAd.SetDisplayListener(delegate(string adState, string adTag) {
    Debug.Log("INTERSTITIAL: " + adState + " Tag : " + adTag);

    if ( adState.Equals("available") ) {
        HZInterstitialAd.Show ();
    }
});

Метод (2). То, как вы используете этот метод, действительно зависит от вашей архитектуры. Например, вы можете добавить метод Try в свой AdManager и попросить вызывающую сторону решить, что делать, если объявление не готово:

public static bool TryShowInterstitialAd() 
{
    if (HZInterstitialAd.IsAvailable ()) {
        HZInterstitialAd.Show ();
        return true;
    }

    return false;
}
person Mik    schedule 25.07.2018