Swift

【Swift4】初心者向け!iPhoneアプリに広告を貼る便利関数のご紹介

こんにちは!KON(@pippi_kon)です。

この記事では、SwiftでiPhoneアプリにAdMob広告をお手軽に設置できる便利な自作関数についてご紹介します。

すでにバリバリアプリ開発をされている方には特に有益な情報はないと思います。

これからiPhoneアプリ開発でアプリの収益化を行うと思っている方や、アプリ開発のたびに毎回広告を貼るのに苦労しているという方向けの記事です。

この記事をおすすめしたい人

iPhoneアプリを作って広告収入を得たいと思っている方

アプリ広告の貼り方がわからない方

毎回広告を貼るのに苦労している方

バージョン情報

この記事は以下のバージョンで記載しています。

Xcode:9.3.1

Swift:4.1

関数作成の背景

iPhoneアプリにAdMob広告を設置するのって結構面倒ですよね。

特に広告設置場所の計算

画面下に配置するときは、画面全体の高さから広告の高さを引いた位置を広告表示の開始地点とし…ってシンプルだけど面倒。

画面上に配置したいときは?上下両方のときは?

さらに、iPhoneXの登場でSafeAreaという概念が登場し、このエリアを考慮した座標計算が必要になりますます面倒に…。

KON
KON
ぬぉおお…めんどい…

 

一度コードを作り上げてしまえばあとはコピペして使い回せばいいのですが、ダラダラ書かれたコードを毎回コピペするのはスマートじゃないし、もっとスッキリさせたい。

こう、一発で広告を設置できるような関数ないかなぁ?

しかも、引数で広告配置場所を選択できるようなやつ。

テスト広告と本番広告も切り替えられるといいなぁ。

ないかぁ…

なければ作ればいいじゃん!

 

関数を使ってできること

今回ご紹介する私の自作関数を使えば以下のような問題を解決できます!

・面倒な座標計算をしなくていい

・コピペの煩わしさを解消

・テスト/本番広告の入れ替えがラク

 

面倒な座標計算をしなくていい

例えば、広告をアプリ画面下に配置するとします。

ここで大変というか面倒なのが広告を表示する座標の計算

まず画面全体の高さを取得して、そこから広告の高さSafeAreaの高さを減算しなければいけません。

やってることはただの引き算なので簡単ですが、こんなことが起きます。

・それぞれの項目値を取得する方法がわからない。

・取得方法を調べるのがめんどくさい。

・おいおいSafeAreaって何だよ?

 

しかし、今回ご紹介する関数を使えば、この面倒な計算を自動で実施してくれます!

値の取得方法を調べたり、SafeAreaの意味を調べたりする必要はありません。

iPhoneXにだってちゃんと表示してみせます!

 

しかも!関数の引数で広告の位置を設定できるんです

設定といっても指定できるのは「画面上」と「画面下」の2箇所のみ。

汎用性を持たせるとかえって難しくなってしまいますからね。

 

コピペの煩わしさを解消

一度広告設置用コードを作り上げてしまえば、あとはそれをコピペして使い回せます。

一見お手軽に見えますが、こんな経験はありませんか?

・コピー元のソースコードが見つからない。(探すのが大変)

・コピーするコードが1箇所にまとまってないので何回も往復しなければいけない。

・最新のソースコードかと思ったら古いものだった。

 

今回ご紹介する関数を使えば、このような煩わしさを解消できます!

必要なコードは全て1つのファイルに収めているので、これをインポートして呼び出すだけです。

ソースコードを探したり、最新のものかをチェックしたりする必要はありません。

 

テスト/本番広告の入れ替えがラク

アプリを作成しているとき、誤って自分の広告をクリックしてしまうとGoogleから制裁(広告停止)を受けてしまいます。

これを防止するために用意されているのがテスト用広告

普段アプリ開発中はこのテスト広告を使ってテストしていると思います。

でも時々ちゃんと広告が表示されるか気になって本番用広告に差し替えたりしてませんか?

その度に長い広告IDをコピペして切り替えたりしてませんか?

 

本関数を使えば、このテスト用広告と本番用広告の切り替えが簡単にできます!

関数の引数でテストモードを指定(true/false)してあげるだけです。

もう長い広告IDのコピペは不要です!

 


関数の仕様

書式

イニシャライザー

init(id: String, test: Bool)

関数名 init
引数 id: String
本番用広告ユニットIDを指定する。
test: Bool
テストモードかどうかを指定する。
true:テスト広告表示、false:本番用広告表示
戻り値 なし
特記事項 なし

 

広告表示関数

func putAdMobVer1(vc: UIViewController, adpos: Int)

関数名 putAdMobVer1
引数 vc: UIViewController
広告を表示するViewControllerを指定する。
adpos: Int
広告表示位置を指定する。(定数指定)
定数:adposTop:画面上、adposBottom:画面下
戻り値 なし
特記事項 広告IDはイニシャライザーで指定する。

 

ソースコードと使い方

自作関数ということで、関数のソースコードと関数の使い方についてはnoteで販売させていただいてます。(100円)

興味を持っていただけましたらご検討のほどよろしくお願いします!

noteを見てみる