Переход на новое activity в качестве вознаграждения за просмотр рекламы rewarded ad

Я пытаюсь реализовать функцию перехода на новое активити при просмотре рекламы c вознаграждением, где вознаграждением является переход на активити. Функция реализуется через нажатие на картинку. Мой код работает следующим образом. При нажатии на картинку показывает объявление с вознаграждением и если пользователь не досмотрел рекламу и закрыл объявление, то он все равно попадает на новое активити, даже если не досмотрел рекламу. Что не так с моим кодом?)

      @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_selection);
    Log.d(LOG_TAG, "SAonCreate");

    MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) { }
    });
    mRewardedVideoAd= MobileAds.getRewardedVideoAdInstance(this);

    mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",new AdRequest.Builder().build());      // You need to pass your rewared video ad Id here...

    mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {

        }

        @Override
        public void onRewardedVideoAdOpened() {

        }

        @Override
        public void onRewardedVideoStarted() {

        }

        @Override
        public void onRewardedVideoAdClosed() {
            mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",new AdRequest.Builder().build());
            onRewardedVideoAdClosed();

        }

        @Override
        public void onRewarded(RewardItem rewardItem) {
            adHasBeenSeen = 1;
            Toast.makeText(SelectionActivity.this, R.string.congratulations, Toast.LENGTH_SHORT).show();
        }


        @Override
        public void onRewardedVideoAdLeftApplication() {
            //User clicked on ad here write your caching code here....
            Toast.makeText(SelectionActivity.this, "Clicked on Ad", Toast.LENGTH_SHORT).show();

        }

        @Override
        public void onRewardedVideoAdFailedToLoad(int i) {

        }

        @Override
        public void onRewardedVideoCompleted() {


        }
    });


    findViewById(R.id.rad_button6).setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            if (mRewardedVideoAd.isLoaded()) {
                ImageView imageView = (ImageView) view;
                Intent intent = new Intent(SelectionActivity.this, TutorialActivity.class);
                intent.putExtra("i", Integer.parseInt(imageView.getTag().toString()));
                startActivity(intent);
                mRewardedVideoAd.show();
                findViewById(R.id.rad_button6).setVisibility(View.GONE);

            }
            else {
                Toast.makeText(SelectionActivity.this, R.string.please_wait, Toast.LENGTH_SHORT).show();
            }
        }
    });

    findViewById(R.id.rad_button10).setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            if (mRewardedVideoAd.isLoaded()) {
                ImageView imageView = (ImageView) view;
                Intent intent = new Intent(SelectionActivity.this, TutorialActivity.class);
                intent.putExtra("i", Integer.parseInt(imageView.getTag().toString()));
                startActivity(intent);
                mRewardedVideoAd.show();
                findViewById(R.id.rad_button10).setVisibility(View.GONE);

            }
            else {
                Toast.makeText(SelectionActivity.this, R.string.please_wait, Toast.LENGTH_SHORT).show();
            }
        }
    });

}


Ответы (1 шт):

Автор решения: гена угарин

Я использовал таким методом, пока не появиться крестик для закрытия межстраничной рекламы.

public class MainActivity extends AppCompatActivity {

public InterstitialAd interstitialAd;  //реклама
private AdView adView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //реклама начало
    MobileAds.initialize(this,"идентификатор");
    adView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("идентификатор");
    interstitialAd.loadAd(adRequest);
    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            try {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);finish();
            }catch (Exception e) {

            }
        }
    });

    Window window = getWindow();
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

    Button blogger = findViewById(R.id.blogger);
    blogger.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            gotUrl("сайт");
        }
    });
    Button buttonStart = (Button)findViewById(R.id.buttonStart);
    buttonStart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (interstitialAd.isLoaded()){
                interstitialAd.show();
            }else {
                try {
                    Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                    startActivity(intent);
                    finish();
                } catch (Exception e) {
                }
            }
        }
    });
}
private void gotUrl(String s) {
    Uri uri = Uri.parse(s);
    startActivity(new Intent(Intent.ACTION_VIEW,uri));
}

}

→ Ссылка