如何统一隐藏亚马逊广告

时间:2016-03-24 22:15:50

标签: ios amazonads

所以我将亚马逊移动广告整合到我的unity / ios项目中。每当场景发生变化时,我都会努力将广告隐藏起来。每次打开场景时,广告都会显示。所以除非你很快改变场景,否则一切正常。我不想在主游戏中播放广告,因为它会妨碍用户的观看。每次进入重试场景时,如果您在广告加载之前快速切换到该场景,该广告将停留在下一个场景上,从而在其上展示另一个广告。每当场景发生变化时,无论您更改场景的速度如何,都应该隐藏广告。是否有任何方法可以确保在展示广告时隐藏广告?我使用下面的代码:

void Start() {
    mobileAds = AmazonMobileAdsImpl.Instance;
    ApplicationKey key = new ApplicationKey();
    key.StringValue = iosKey;
    mobileAds.SetApplicationKey(key);

    ShouldEnable enable = new ShouldEnable();
    enable.BooleanValue = true;
    mobileAds.EnableTesting(enable);
    mobileAds.EnableLogging(enable);

    Placement placement = new Placement();
    placement.Dock = Dock.BOTTOM;
    placement.HorizontalAlign = HorizontalAlign.CENTER;
    placement.AdFit = AdFit.FIT_AD_SIZE;
    response = mobileAds.CreateFloatingBannerAd(placement);
    string adType = response.AdType.ToString();
    long identifer = response.Identifier;

    newResponse = mobileAds.LoadAndShowFloatingBannerAd(response);
    bool loadingStarted = newResponse.BooleanValue;
}


void OnDestroy() {
    mobileAds.CloseFloatingBannerAd(response);
    response = null;
    mobileAds = null;
    newResponse = null;
}

2 个答案:

答案 0 :(得分:1)

您何时下载Unity插件?在插件的早期版本中存在一些问题,这听起来像(整个,一个广告加载到另一个东西之上)。如果您最近没有更新它,请尝试从亚马逊下载最新版本,看看问题是否仍然存在。

答案 1 :(得分:0)

关闭广告API

 mobileAds.CloseFloatingBannerAd(response);  

仅在广告已加载时才有效。您需要注册广告加载的活动。如果场景被销毁,那么您将在广告加载的事件触发时关闭广告。

您可以按照以下方式注册AdLoaded事件,Documentation

    using com.amazon.mas.cpt.ads;

    bool sceneDestroyed = false;  //tracks if scene is destroyed



    //Obtain object used to interact with the plugin
    IAmazonMobileAds mobileAds = AmazonMobileAdsImpl.Instance;


    // Define event handler
    private void EventHandler(Ad args)
    {
       if (sceneDestroyed)
       {
            mobileAds.CloseFloatingBannerAd(response);
       }
       else
       {
           //Do some other job
       }
    }

    //Register for an event
    mobileAds.AddAdLoadedListener(EventHandler);

    void OnDestroy() 
    {
                sceneDestroyed = true;
    }