Я разработал простое приложение кроссворд 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 здесь?