2

我将广告添加到 Activity 的方式是将转到下一个 Activity 的按钮设置为不可见,直到广告完成加载。

public void showAd_andSetGoButton()   
{   
    if (isNetworkAvailable() == true)
    {
        button_go.setVisibility(View.INVISIBLE);    
        button_loading.setVisibility(View.VISIBLE);

        mPublisherInterstitialAd = new PublisherInterstitialAd(this);
        mPublisherInterstitialAd.setAdUnitId(MY_PUBLISHER_ID);

        // Create an ad request.
        PublisherAdRequest.Builder publisherAdRequestBuilder = new PublisherAdRequest.Builder();

        // Optionally populate the ad request builder.
        publisherAdRequestBuilder.addTestDevice(PublisherAdRequest.DEVICE_ID_EMULATOR);

        // Set an AdListener.
        mPublisherInterstitialAd.setAdListener(new AdListener() 
        {
           @Override
           public void onAdLoaded() 
           {
                // Toast.makeText(First.this, "The interstitial is loaded", Toast.LENGTH_SHORT).show();             
               button_go.setVisibility(View.VISIBLE);   
               button_loading.setVisibility(View.INVISIBLE);
           }

           @Override
           public void onAdClosed() 
           {
                go_action();
           }
       });

       // Start loading the ad now so that it is ready by the time the user is ready to go to the next level.
       mPublisherInterstitialAd.loadAd(publisherAdRequestBuilder.build());          
    }
    else
    {
        button_go.setVisibility(View.VISIBLE);  
    }
}  

问题:

上面的代码运行良好。但是,我知道有时即使发出广告请求,由于库存不足等原因,也不会返回任何广告。我想问一下当这种情况出现时,onAdLoaded()如果无法加载广告,是否会正确返回以便 button_go 可见?

谢谢!

4

1 回答 1

0

AdListener()

这将在广告接收失败时触发

mPublisherInterstitialAd.setAdListener(new AdListener() 
{
   @Override
   public void onAdLoaded() 
   {
       // Toast.makeText(First.this, "The interstitial is loaded", Toast.LENGTH_SHORT).show();             
       button_go.setVisibility(View.VISIBLE);   
       button_loading.setVisibility(View.INVISIBLE);
   }

   @Override
   public void onAdClosed() 
   {
       go_action();
   }

   @Override
   public void onFailedToReceiveAd(Ad arg0, ErrorCode error) {
     // add your code here 
   }    
});
于 2014-02-03T05:26:06.470 回答