【问题标题】:Show interstitialAd after 30 seconds Audience Network Facebook30 秒后显示插页式广告 Audience Network Facebook
【发布时间】:2020-08-25 07:14:33
【问题描述】:

我想在我的 Android 应用中使用 Facebook Audience Network,我在应用内集成了 interstitialAd,它运行良好,但它显示为 Activity 启动。我想在 30 秒后展示广告。这是我的代码

 interstitialAd = new InterstitialAd(this, "1555910157949688_1556058954601475");

    interstitialAd.setAdListener(new InterstitialAdListener() {
      

        @Override
        public void onAdLoaded(Ad ad) {
            // Interstitial ad is loaded and ready to be displayed
            Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");
            // Show the ad
            interstitialAd.show();
        }

       
    });

    interstitialAd.loadAd();

我已经尝试这样做来安排我的广告,但它不起作用。

private void showAdWithDelay() {
   Handler handler = new Handler();
   handler.postDelayed(new Runnable() {
       public void run() {
            // Check if interstitialAd has been loaded successfully
           if(interstitialAd == null || !interstitialAd.isAdLoaded()) {
               return;
           }
            // Check if the ad is already expired or invalidated, and do not show ad if that is the case. You will not get paid to show an invalidated ad.
           if(interstitialAd.isAdInvalidated()) {
               return;
           }
           // Show the ad
            interstitialAd.show(); 
       }
   }, 3000); 
}

【问题讨论】:

  • 您使用了 3000,即 3 秒,请使用 30 * 1000 持续 30 秒
  • 是的,我使用的是 30000,这是个问题
  • 我建议您将 interstitialAd 对象实例化为 25 秒或 30 秒,因为有时它取决于网络,广告会延迟 3-4 秒显示

标签: android-studio handler android-handler interstitial facebook-audience-network


【解决方案1】:

我更喜欢这样做:

      Handler handler = new Handler();
      interstitialAd = new InterstitialAd(this, "XXX");
      interstitialAd.setAdListener(new InterstitialAdListener() {
        @Override
        public void onAdLoaded(Ad ad) {
          handler.postDelayed(new Runnable() {
            @Override
            public void run() {
              interstitialAd.show();
            }
          }, YOUR_TIME);
        }
      });

      interstitialAd.loadAd();

如果你想更精确,那就去做吧:

      final long lastTime = System.currentTimeMillis();
      Handler handler = new Handler();
      interstitialAd = new InterstitialAd(this, "XXX");
      interstitialAd.setAdListener(new InterstitialAdListener() {
        @Override
        public void onAdLoaded(Ad ad) {
          long now = System.currentTimeMillis();
          long timeWait;
          if (now - lastTime >= YOUR_TIME){
            timeWait = 0;
          }else {
            timeWait = YOUR_TIME-(now-lastTime);
          }
          handler.postDelayed(new Runnable() {
            @Override
            public void run() {
              interstitialAd.show();
            }
          }, timeWait);
        }
      });

      interstitialAd.loadAd();

【讨论】:

    【解决方案2】:

    我认为您的实施违反了 AdMob 政策,可能会给您带来一些麻烦。

    查看此页面以获取有关正确/错误插页式实现的帮助(特别是“意外启动的插页式”点):https://support.google.com/admob/answer/6201362?hl=en&ref_topic=2936214

    为遵守 AdMob 政策,我建议您仅在活动/应用自然过渡中显示插页式广告,不同的实现方式可能会导致您被 Admob 禁止。

    为此,您可以将代码更改为首先加载广告并跟踪其加载状态,如下所示:

    boolean isAdLoaded = false;
    
    interstitialAd = new InterstitialAd(this, "1555910157949688_1556058954601475");
    
    interstitialAd.setAdListener(new InterstitialAdListener() 
    { 
        @Override
        public void onAdLoaded(Ad ad) 
        {
            // Interstitial ad is loaded and ready to be displayed
            Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");
            // The ad has been loaded
            isAdLoaded = true;
        }
    });
    
    interstitialAd.loadAd();
    

    然后在应用程序的自然过渡中显示它,例如当用户点击按钮转到不同的活动时:

    shareButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            //Show interstitial if it is loaded
            if(isAdLoaded)
                interstitialAd.show();
            
            //Open Activity
            startActivity(new Intent(this,OtherActivity.class));
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      相关资源
      最近更新 更多