Androidアプリへの AdMob インタースティシャル広告導入

Androidアプリに AdMob のインタースティシャル広告を導入するサンプルを作成しました。

下記のサンプルでは、アプリがスリープ状態から復帰した時と、画面が再度読み込まれた時に全面広告が表示されます。

サンプルダウンロード

公式ドキュメント

導入手順

1. Google Play Services SDK の読み込み

build.gradle から Google Play Services SDK を読み込みます。バージョンは最新版を指定してください。

1
2
3
4
dependencies {
    // 省略
    compile 'com.google.android.gms:play-services:7.3.0'
}

2. AdMob 広告ユニットID の指定

AdMobIntersBanner.java の14行目で広告ユニットID を指定します。

1
private static final String INTERS_AD_UNIT_ID = "Your AdMob Ad unit ID";

3. デバッグモードの指定

AdMobIntersBanner.java の15行目でデバッグモードをオンにしてください。

1
private static final boolean DEBUG_MODE = true;

4. テスト端末のデバイスID を指定

AdMobIntersBanner.java の17行目でテスト端末のデバイスID を指定します。

デバイスIDは、実機で一度広告を表示すると Android Studio の LogCat に表示されます。

1
2
3
private static final String[] DEBUG_DEVICE_ID = {
    "Your test device ID"
};

5. テスト端末の追加

AdMobIntersBanner.java の51行目にあるコメントアウトを外し、テスト端末を追加します。

1
2
3
4
adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .addTestDevice(DEBUG_DEVICE_ID[0])
        .build();

下記に実装サンプルを記載します。導入の際のご参考になれば幸いです。

サンプルソースコード

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package net.dolice.admobinterstitialadex;

import android.app.Activity;
import android.os.Bundle;

import net.dolice.ad.AdMobIntersBanner;

public class MainActivity extends Activity {
    private AdMobIntersBanner mIntersAd;

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

        // 全面広告の読み込み
        preloadInterstitialAd();
    }

    // 全面広告の読み込み
    private void preloadInterstitialAd() {
        mIntersAd = new AdMobIntersBanner();
        mIntersAd.preload(this);
    }

    // 全面広告が読み込み完了していれば表示
    private void showInterstitialAd() {
        // 全面広告表示
        if (mIntersAd != null) {
            mIntersAd.show();
        }
    }

    @Override
    public void onRestart() {
        super.onRestart();

        // 全面広告が読み込み完了していれば表示
        showInterstitialAd();
    }
}

AdMobIntersBanner.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package net.dolice.ad;

import android.content.Context;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;

/**
 * Created by Dolice on 15/03/19.
 */

public class AdMobIntersBanner {
    private InterstitialAd mIntersAd;
    private static final String INTERS_AD_UNIT_ID = "Your AdMob Ad unit ID";
    private static final boolean DEBUG_MODE = true;
    private static final String[] DEBUG_DEVICE_ID = {
            "Your test device ID"
    };

    /**
     * 全面広告のプリロード
     * @param context
     */
    public void preload(Context context) {
        mIntersAd = new InterstitialAd(context);
        mIntersAd.setAdUnitId(INTERS_AD_UNIT_ID);
        mIntersAd.loadAd(getAdRequest());
    }

    /**
     * 全面広告の表示
     */
    public void show() {
        if (mIntersAd == null) {
            return;
        }

        if (mIntersAd.isLoaded()) {
            mIntersAd.show();
        }
    }

    /**
     * 広告リクエストの取得
     */
    private AdRequest getAdRequest() {
        AdRequest adRequest;
        if (DEBUG_MODE) {
            adRequest = new AdRequest.Builder()
                    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                    //.addTestDevice(DEBUG_DEVICE_ID[0])
                    .build();
        } else {
            adRequest = new AdRequest.Builder().build();
        }

        return adRequest;
    }
}

以上で AdMob インタースティシャル広告の導入は完了になります。

公式ドキュメントに解りやすくサンプルが掲載されていますので、そちらも参考にされると良いかもしれません。

お薦めの参考書

詳解 Swift 改訂版
Swiftのかなり入り込んだところまで解説しながら、実践コードを多数収録しています。応用本になりますので、入門書を読み終えて中級者から上級者に差し掛かる時に読むことをお勧めします。読み物としてだけではなくリファレンスとしても使用できます。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)