Переход на новое 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));
}
}