Зачем InterstitialAd показывать в обход условной логики? - PullRequest
0 голосов
/ 04 марта 2019

Я разработал простое приложение кроссворд Kannada с InterstitialAd и поделился им с друзьями для обратной связи.Изначально я установил условие, чтобы друзья / другие люди не видели рекламу до 01 апреля 2019 года, поэтому я добавил логику в Circle-Progress-View's OnProgressChangedListener.Во время отладки я тестировал ту же логику с другими временными метками, и она работала как надо, но некоторые из друзей получают рекламу для release build из playstore.

Как вы можете видеть в следующем коде, это просто простое условие, я сделал так, чтобы showInterstitial () вызывался только из OnProgressChangedListener, но нигде, а самое главное System.currentTimeMillis() проверяется на> = 01-апрель-2019.
BTW Interstitial frequency capping отключено в настройках приложения AdMob.

private int MIN_AD_INTERVAL_IN_SECONDS = 480;
private long START_AD = 1554076800;
@Override
protected void onCreate(Bundle savedInstanceState) {
   // other codes pre-required codes
    MobileAds.initialize(this,"ca-app-pub-MYAppID~Here");
    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("ca-app-pub-MyUnit/IdHere");

  // other codes like initGridViews, initProgressView, initListeners etc.
}
CircleProgressView.OnProgressChangedListener() {
            @Override
            public void onProgressChanged(float value) {
                Log.d(TAG, "Progress Changed: " + value);
                long fullMsecs = System.currentTimeMillis();
                Log.d(TAG, "onProgressChanged: curre epoc"+fullMsecs);
                if(ad_last_loaded==0){
                   //ad loading first time in this session. update global variable accordingly
                    ad_last_loaded=SystemClock.elapsedRealtime();
                }
                long ad_interval = SystemClock.elapsedRealtime()-ad_last_loaded;

Log.d("elog", "e"+fullMsecs);//^
                if((ad_interval/1000)>MIN_AD_INTERVAL_IN_SECONDS && value>50 && fullMsecs>=START_AD)
                {
                    // if progress>50 i.e if user finished 50% of level.
                    // and time elapsed is 8m since last ad
                    // and current system time is greater than 1554076800 ie. 01-apr-2019
                    Log.d(TAG, "Progress Changed: ad triggred" + value);
                    showInterstitial();
                }
            }
        });
        private void showInterstitial() {
        // Show the ad if it's ready. Otherwise reload again.
         if (interstitialAd != null && interstitialAd.isLoaded()) {
           //Log.d(TAG, "showInterstitial: ");
           interstitialAd.show();
         } else {
           //Log.d(TAG, "showInterstitial: Ad did not load");
           reloadAdAgain();
         }
       }
       private void reloadAdAgain() {
       // Request a new ad if one isn't already loaded
        if (!interstitialAd.isLoading() && !interstitialAd.isLoaded()) {
          AdRequest adRequest = new AdRequest.Builder().build();
          interstitialAd.loadAd(adRequest);
        }
      }

^ Я включил этот журнал в сборку релиза, чтобы проверить текущее время.Никакие другие журналы не регистрируются в выпуске и специально добавляются здесь в коде.
PS: Могу ли я поделиться ссылкой на приложение PlayStore здесь?

...