【Android】インタースティシャル広告 実装方法
【Windows10】
【Andoroid studio 3.1.1】
インタースティシャル広告の実装方法です。
実際のアプリで確認したい場合は、以下のアプリをダウンロードして、アプリ起動後、画面上にあるクリア→OKを押すとインタースティシャル広告が出てきます。
必要な情報は以下です。
なお、★間はバナー広告、インタースティシャル広告、動画リワード広告で共通の処理となります。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★
①パーミッションの追加
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
②広告を使用する準備
build.gradle(app配下)
implementation 'com.google.android.gms:play-services-ads:15.0.1'
★★★★★★★★★★★★★★★★★★★★★★★★★★★★
③インタースティシャル広告の定義
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
④インタースティシャル広告の設定
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(AdMobID);
⑤インタースティシャル広告のリスナーの定義
//広告状態のリスナー
interstitialAd.setAdListener(new AdListener() {
//広告が閉じられた時
@Override
public void onAdClosed() {
super.onAdClosed();
}
//広告がロードできた時
@Override
public void onAdLoaded() {
super.onAdLoaded();
}
//広告がロードできなかった時
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
}
});
⑥インタースティシャル広告の読み込み
adRequest_interstitial = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest_interstitial);
⑦インタースティシャル広告の表示
if(interstitialAd != null && interstitialAd.isLoaded())
{
interstitialAd.show();
}
■最終的な実装例
アプリ起動直後にインタースティシャル広告が表示される実装です。
画面に一輪車に乗ったムックもどきが表示されれば成功です。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this); // getBaseContext()
interstitialAd.setAdUnitId(AdMobID);
//広告状態のリスナー
interstitialAd.setAdListener(new AdListener() {
//広告が閉じられた時
@Override
public void onAdClosed() {
super.onAdClosed();
}
//広告がロードできた時
@Override
public void onAdLoaded() {
super.onAdLoaded();
showInterstitial();
}
//広告がロードできなかった時
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
}
});
}
@Override
protected void onResume() {
load_ad();
super.onResume();
}
void load_ad()
{
adRequest_interstitial = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest_interstitial);
}
public void showInterstitial() {
if(interstitialAd != null && interstitialAd.isLoaded())
{
interstitialAd.show();
}
}
}
あとは、AdMobID = "ca-app-pub-3940256099942544/1033173712"部分を、Admobで取得したIDに変更すれば完了です。
以降は、実装を順に記載しているだけなので、必要のない方はここまででOKです。
■実装方法
①パーミッションの追加
AndroidManifest.xmlに以下を追加。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
②広告を使用する準備
build.gradle(app配下)に以下を追加。
implementation 'com.google.android.gms:play-services-ads:15.0.1'
ただし、最新のバージョンを追加する必要があるので注意。
以下方法で設定すればいけるはず。
Library dependencyを押下後、play-services-adsで検索して追加すればOK
③インタースティシャル広告の定義
MainActivity.javaで以下のように定義。
importはAlt+Enterでいける。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
④インタースティシャル広告の設定
MainActivity.javaで以下のように設定。
importはAlt+Enterでいける。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this); // getBaseContext()
interstitialAd.setAdUnitId(AdMobID);
}
}
⑤インタースティシャル広告のリスナーの定義
MainActivity.javaで以下のようにリスナーを定義。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this); // getBaseContext()
interstitialAd.setAdUnitId(AdMobID);
//広告状態のリスナー
interstitialAd.setAdListener(new AdListener() {
//広告が閉じられた時
@Override
public void onAdClosed() {
super.onAdClosed();
}
//広告がロードできた時
@Override
public void onAdLoaded() {
super.onAdLoaded();
}
//広告がロードできなかった時
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
}
});
}
}
⑥インタースティシャル広告の読み込み
MainActivity.javaで以下のようにインタースティシャル広告を読み込む。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this); // getBaseContext()
interstitialAd.setAdUnitId(AdMobID);
//広告状態のリスナー
interstitialAd.setAdListener(new AdListener() {
//広告が閉じられた時
@Override
public void onAdClosed() {
super.onAdClosed();
}
//広告がロードできた時
@Override
public void onAdLoaded() {
super.onAdLoaded();
}
//広告がロードできなかった時
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
}
});
}
@Override
protected void onResume() {
load_ad();
super.onResume();
}
void load_ad()
{
adRequest_interstitial = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest_interstitial);
}
}
⑦インタースティシャル広告の表示
MainActivity.javaで以下のようにインタースティシャル広告を表示。
public class MainActivity extends AppCompatActivity {
// インタースティシャル広告のID
private InterstitialAd interstitialAd;
AdRequest adRequest_interstitial;
String AdMobID = "ca-app-pub-3940256099942544/1033173712"; // Test ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// インタースティシャル広告の設定
interstitialAd = new InterstitialAd(this); // getBaseContext()
interstitialAd.setAdUnitId(AdMobID);
//広告状態のリスナー
interstitialAd.setAdListener(new AdListener() {
//広告が閉じられた時
@Override
public void onAdClosed() {
super.onAdClosed();
}
//広告がロードできた時
@Override
public void onAdLoaded() {
super.onAdLoaded();
showInterstitial();
}
//広告がロードできなかった時
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
}
});
}
@Override
protected void onResume() {
load_ad();
super.onResume();
}
void load_ad()
{
adRequest_bottom = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest_interstitial);
}
public void showInterstitial() {
if(interstitialAd != null && interstitialAd.isLoaded())
{
interstitialAd.show();
}
}
}
以上です。