【问题标题】:Interstitial Ad Loading After every 1 Minte每 1 分钟加载一次插页式广告
【发布时间】:2013-10-06 14:21:03
【问题描述】:

我想每隔一分钟展示一次插页式广告... 谁能用示例代码解释一下...

谢谢 请

    interstitialAds = new InterstitialAd(this, "Your_Pub_ID");
    final AdRequest adRequest = new AdRequest();
    interstitialAds.loadAd(adRequest);
    interstitialAds.setAdListener(this);

【问题讨论】:

    标签: android loops admob ads interstitial


    【解决方案1】:

    首先,这对您的用户来说将是一个非常糟糕的体验。我强烈建议不要这样做。

    但如果你真的想激怒你的用户,那么可以这样:

    final Runnable runanble = new Runnable() {
      public void run() {
        while (true) {
          wait(60000);
          runOnUiThread(intersitial.showAd());
          interstitial.loadAd(new request());
        }
      }
    };
    

    编辑: 不要这样做。我收到 Admob 的回复,说这直接违反了他们的政策,并且会导致您的帐户被禁用。

    【讨论】:

    • 如果我想每五分钟展示一次插页式广告,我还应该在展示一个后立即加载广告吗?还是我应该在展示广告前一分钟加载广告?会影响性能吗?
    • 您可以在展示前的任何时间加载广告(您只需要留出足够的时间让它通过通常糟糕的连接加载)。我在游戏开始时加载我的并在结束时显示它。但正如我在上面添加的那样,不要每 X 分钟自动显示一次插页式广告,因为 Admob 认为这是违反政策的。
    • @William 不工作,我无法解析 showAd()
    【解决方案2】:

    这违反了 admob 政策,他们会禁止你,这对用户来说也是非常糟糕的体验。

    编辑: 政策链接(请参阅“Repeated or recurring interstitials”部分)-https://support.google.com/admob/answer/6201362?hl=en&ref_topic=2745287

    【讨论】:

    • 这不是问题的答案,但应该是评论!
    • 答案很简单。创建一个线程,调用您的广告进行加载,如果加载则显示,等待 6000 毫秒。
    • 请分享说明这一点的政策的 URL。
    • support.google.com/admob/answer/… 这里是 URL @ShajeelAfzal。请查看“重复或经常出现的插页式广告”部分
    【解决方案3】:

    有多种方式可以定期展示插页式广告。您可以在应用中添加代码,以便定期显示插页式广告。


    prepareAd();

        ScheduledExecutorService scheduler =
                Executors.newSingleThreadScheduledExecutor();
        scheduler.scheduleAtFixedRate(new Runnable() {
    
            public void run() {
                Log.i("hello", "world");
                runOnUiThread(new Runnable() {
                    public void run() {
                        if (mInterstitialAd.isLoaded()) {
                            mInterstitialAd.show();
                        } else {
                           Log.d("TAG"," Interstitial not loaded");
                        }
    
                        prepareAd();
    
    
                    }
                });
    
            }
        }, 20, 20, TimeUnit.SECONDS);
    

    但是,我(你可以说是 admob)强烈阻止你做这些事情。这违反了 AdMob 政策,如果您这样做,您的帐户将被暂停。

    如果您想了解更多有关 Android 应用程序开发以及如何在您的应用程序中放置 admob 广告的知识。我建议你访问这个网站。

    http://www.elegantespace.com/how-to-load-interstitial-ad-at-regular-interval-of-time/

    【讨论】:

      【解决方案4】:
      place it in oncreate method
      
      handler.postDelayed(runnable, 420000);
      

      在oncreate方法之后

      Runnable runnable = new Runnable(){
      @Override
      public void run() {
      // TODO Auto-generated method stub
      //Your code to show add
      // Create the interstitial.
      // Prepare the Interstitial Ad
      Interstitial = new InterstitialAd(your activity);
      // Insert the Ad Unit ID
      interstitial.setAdUnitId("your id ");
      
      //Locate the Banner Ad in activity_main.xml
      AdView adView = (AdView) findViewById(R.id.ad_view);
      
      // Request for Ads
      AdRequest adRequest = new AdRequest.Builder()
      
      // Add a test device to show Test Ads
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
      .addTestDevice("")
      .build();
      
       // Load ads into Banner Ads
       adView.loadAd(adRequest);
      
       // Load ads into Interstitial Ads
       Interstitial.loadAd(adRequest);
      
       // Prepare an Interstitial Ad Listener
       interstitial.setAdListener(new AdListener() {
       public void onAdLoaded() {
       // Call displayInterstitial() function
       displayInterstitial();
       }
       });
       handler.postDelayed(this, 600000); // 1000 - Milliseconds
       }
       };
      

      【讨论】:

        【解决方案5】:
        interstitialAd.setAdListener(new AdListener() {
        public void onAdLoaded() {
            Handler handler = new Handler(); 
            handler.postDelayed(new Runnable() { 
                public void run() { 
                    MainActivity.this.interstitialAd.show();
                } 
            }, 5000);
        } });
        

        【讨论】:

          【解决方案6】:

          很简单。创建 Timertask 并每 60000 毫秒调度一次。但这对用户来说是糟糕的用户体验。不要这样做

          final Handler handler = new Handler();
              Timer timer = new Timer();
              TimerTask doAsynchronousTask = new TimerTask() {
                  @Override
                  public void run() {
                      handler.post(new Runnable() {
                          public void run() {
                              if (mInterstitialAd.isLoaded()) {
                                  mInterstitialAd.show();
                              }
                          }
                      });
                  }
              };
              timer.schedule(doAsynchronousTask, 0, 60000);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多