/** * Copyright Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.samples.quickstart.admobexample.java; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.InterstitialAd; import com.google.android.gms.ads.MobileAds; import com.google.samples.quickstart.admobexample.R; import com.google.samples.quickstart.admobexample.databinding.ActivityMainBinding; // [SNIPPET load_banner_ad] // Load an ad into the AdView. // [START load_banner_ad] public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private static final String TEST_APP_ID = "ca-app-pub-3940256099942544~3347511713"; private AdView mAdView; // [START_EXCLUDE] private InterstitialAd mInterstitialAd; private Button mLoadInterstitialButton; private ActivityMainBinding binding; // [END_EXCLUDE] @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // [START_EXCLUDE] binding = ActivityMainBinding.inflate(getLayoutInflater()); mAdView = binding.adView; mLoadInterstitialButton = binding.loadInterstitialButton; View layout = binding.getRoot(); // [END_EXCLUDE] setContentView(layout); checkIds(); // Initialize the Google Mobile Ads SDK MobileAds.initialize(this, getString(R.string.admob_app_id)); mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); // [END load_banner_ad] // AdMob ad unit IDs are not currently stored inside the google-services.json file. // Developers using AdMob can store them as custom values in a string resource file or // simply use constants. Note that the ad units used here are configured to return only test // ads, and should not be used outside this sample. // [START instantiate_interstitial_ad] // Create an InterstitialAd object. This same object can be re-used whenever you want to // show an interstitial. mInterstitialAd = new InterstitialAd(this); mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id)); // [END instantiate_interstitial_ad] // [START create_interstitial_ad_listener] mInterstitialAd.setAdListener(new AdListener() { @Override public void onAdClosed() { requestNewInterstitial(); beginSecondActivity(); } @Override public void onAdLoaded() { // Ad received, ready to display // [START_EXCLUDE] if (mLoadInterstitialButton != null) { mLoadInterstitialButton.setEnabled(true); } // [END_EXCLUDE] } @Override public void onAdFailedToLoad(int i) { // See https://goo.gl/sCZj0H for possible error codes. Log.w(TAG, "onAdFailedToLoad:" + i); } }); // [END create_interstitial_ad_listener] // [START display_interstitial_ad] mLoadInterstitialButton = findViewById(R.id.loadInterstitialButton); mLoadInterstitialButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mInterstitialAd.isLoaded()) { mInterstitialAd.show(); } else { beginSecondActivity(); } } }); // [END display_interstitial_ad] // Disable button if an interstitial ad is not loaded yet. mLoadInterstitialButton.setEnabled(mInterstitialAd.isLoaded()); } /** * Load a new interstitial ad asynchronously. */ // [START request_new_interstitial] private void requestNewInterstitial() { AdRequest adRequest = new AdRequest.Builder() .build(); mInterstitialAd.loadAd(adRequest); } // [END request_new_interstitial] private void beginSecondActivity() { Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); } // [START add_lifecycle_methods] /** Called when leaving the activity */ @Override public void onPause() { if (mAdView != null) { mAdView.pause(); } super.onPause(); } /** Called when returning to the activity */ @Override public void onResume() { super.onResume(); if (mAdView != null) { mAdView.resume(); } if (!mInterstitialAd.isLoaded()) { requestNewInterstitial(); } } /** Called before the activity is destroyed */ @Override public void onDestroy() { if (mAdView != null) { mAdView.destroy(); } super.onDestroy(); } // [END add_lifecycle_methods] @VisibleForTesting public AdView getAdView() { return mAdView; } private void checkIds() { if (TEST_APP_ID.equals(getString(R.string.admob_app_id))) { Log.w(TAG, "Your admob_app_id is not configured correctly, please see the README"); } } }