Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio 30秒后播放Interstitalad观众网络Facebook_Android Studio_Handler_Android Handler_Interstitial_Facebook Audience Network - Fatal编程技术网

Android studio 30秒后播放Interstitalad观众网络Facebook

Android studio 30秒后播放Interstitalad观众网络Facebook,android-studio,handler,android-handler,interstitial,facebook-audience-network,Android Studio,Handler,Android Handler,Interstitial,Facebook Audience Network,我想在我的Android应用程序中使用Facebook观众网络,我在应用程序中集成了Interstitalad,它工作正常,但看起来像是活动启动。我想在30秒后播放广告。这是我的密码 interstitialAd = new InterstitialAd(this, "1555910157949688_1556058954601475"); interstitialAd.setAdListener(new InterstitialAdListener() {

我想在我的Android应用程序中使用Facebook观众网络,我在应用程序中集成了Interstitalad,它工作正常,但看起来像是活动启动。我想在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); 
}

我更喜欢这样做:

      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();

我更喜欢这样做:

      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();

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

有关正确/错误的中间层实现(特别是“意外启动的中间层”点)的帮助,请查看本页:

为了遵守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));
    }
});

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

有关正确/错误的中间层实现(特别是“意外启动的中间层”点)的帮助,请查看本页:

为了遵守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));
    }
});

您使用了3000,即3秒。请使用30*1000,即30秒。我使用了30000,这是一个错误。我建议您使用25秒或30秒来实例化Interstitalad对象,因为有时它取决于网络,广告会显示3-4秒的延迟。您使用了3000,即3秒。请使用30*1000,即30秒。我使用30000问题中是否有错误?我建议您实例化Interstitalad对象b/w 25秒或30秒,因为有时它取决于网络,广告将以3-4秒的延迟显示