Проблема интеграции объявлений Heyzap в мое приложение Unity - PullRequest
0 голосов
/ 26 апреля 2018

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

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

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

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

1 Ответ

0 голосов
/ 25 июля 2018

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

HZInterstitialAd.Show ();

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

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

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

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

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

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

    return false;
}
...