今回の記事はSwiftのiOSアプリ開発で収益を考える際に必要なAdmob広告をアプリ内に表示する方法に関してご紹介する記事です。初心者にも分かりやすいように画像付きで、Admobの登録から広告を表示するswiftコードの解説を記載しております。是非参考にしてみてください。
Admob広告とは?
まず、Admob広告とは何かというとGoogleのiOS版の広告と思っていただければ良いと思います。Web版では非常に有名な「Google Adsense」があるようにiOS版では「Google Admob」があるといった具合です。
では早速登録を行っていきましょう。
Admobに登録
登録自体は非常に簡単で、審査等もありません。また、年会費当一切掛からず無料です。では登録に進みます。下記公式の登録ページがあるのでそちらから登録しましょう。
必要情報を入力します。初期設定のままで良いと思います。
この次に同意するボタンが出てくるので同意のみ行えば電話番号からPINコードが送られてくるのでそれを入力すれば完了です。
では次に広告のプロジェクトを作成していきましょう。
スタートをクリック。
いいえをクリック。
アプリ名とプラットフォームを選択し、ユーザー指標を有効にする。アプリを検索する際ですが、アップルストアに配信した後5日程度の間でGoogleAdmob側でも検索に引っかかるようになるので配信したてでは検索できない可能性がありますのでご注意を。
以上でアプリの登録が完了です。
次のステップとして「アプリにapp-ads.txtをセットアップ」と「広告ユニットの設定が必要になります。」実行していきましょう。
アプリにapp-ads.txtをセットアップ
Admobのサイトからアプリを選択し、「全てのアプリを表示」をクリックします。
これで下記のような画面が作成されるので「app-ads.txt」のファイル作成した後に、このファイルに下記をコピーします。
ではこのファイルを設置していきます。
どのサーバにおいてもいいのですが基本的に皆さんWordplessなどを設置している自身のサイトに配置する方がいいと思います。こちらはアプリのプライバシーポリシー記入などが必要な為保有していると思います。
私はロリポップサーバーを保有しているので下記サイトの手順で行いました。Xserverなどでも基本的にドメインの一個したのURLにファイル転送ツールなどを使って配置してください。
「https://[ドメイン]/app-ads.txt」をブラウザで開いて入力した文字が表示されればOKです。
後はAdmobのクローラーが見つけてくれますのでしばらくお待ちください。
また、この作業終了後「App Store Connect」よりマーケティングURLを登録します。手順は簡単で、ログイン後→アプリのアップデートを行う際にマーケティングURLに上記の「app-ads.txt」を配置したドメインのディレクトリに上記を配置します。
アプリのアップデートはアプリ名の上の+マークをクリックして新しいバージョンのアプリを作成しておく必要があります。ただ、広告表示させる為にアップデートする必要があるので同じタイミングで登録し切ってしまいましょう。
「https://[自身のドメイン]/」をマーケティングURLに配置。
これで準備完了です。
広告ユニットの作成
広告ユニットの作成を行います。広告ユニットページから広告ユニット作成をクリックし、広告の種類と広告ユニット名を書きます。広告の種類に関しては公式の説明を読めば問題なく理解できると思います。リンクから確認してみてください。
上がアプリIDでしたがUnit IDです。
この広告ユニットを最後にアプリに組み込んでみましょう。
アプリ内に広告表示手順
podでライブラリインストール
ポッドのバージョンが古いとインストールできなかったので私はまず更新してから「pod install」を行いました。
sudo gem install cocoapods
pod init
[ファイル内にライブラリ追加]
pod install --repo-update
ファイル内に追加する内容は下記です。
target '[アプリ名]' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'Google-Mobile-Ads-SDK'
# Pods for [アプリ名]
後はXcodeでの操作です。
Swiftコード挿入
まずは「info.plist」を修正します。
「info.plist」を右クリックで「open as」→「source code」で編集していきます。下記を追加してください。
<key>GADApplicationIdentifier</key>
<string>アプリID</string>
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
</array>
<key>GADIsAdManagerApp</key>
<true/>
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5a6flpkh64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>424m5254lk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>
追加する場所はkeyの一番下でいいと思います。
公式の説明の場合は下記の部分は記載されていないのですがこれがないとアプリがクラッシュしました。
アプリIDはAdmobのサイトから「アプリ」→「アプリ設定」で確認できますが初回はテスト用のコード(ca-app-pub-3940256099942544~1458002511)で行った方がいいようです。誤って自身のものでやってしまうとアカウントが判される可能性もあるようです。これでXcodeでの設定は終了です。
最後にSwiftコードで広告を表示させる方法をご紹介します。
まずは普段あまり触らない「Appdelegate.swift」のファイルにに下記を記載します。
import UIKit
import GoogleMobileAds //追加部分
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate { //追加部分
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil) //追加部分
return true
}
今回はインタースティシャルの広告表示を行ってみます。まずはページ遷移などがある前のStoryboardに紐付いているSwiftファイルを開きます。(インタースティシャルはページ遷移などがないと使用できません。)
ちなみに広告unitと下記コードは合わせる必要があります。仮に広告Unitでバナーを表示していた場合はバナー用のコードに変える必要があります。
また、混乱しやすいので整理しておくとアプリIDとUnit IDは別物です。
Admobのサイトで広告の種類を選んだときに二つのIDが与えられます。詳しくは上記Unit ID作成をご覧ください。
では、インターシャル広告表示のコードに移ります。下記を追加します。
import GoogleMobileAds
import UIKit
class ViewController {
private var interstitial: GADInterstitialAd?
func viewDidLoad() {
super.viewDidLoad()
let request = GADRequest()
GADInterstitialAd.load(withAdUnitID:"[作成した広告unit IDの番号]",
request: request,
completionHandler: { [self] ad, error in
if let error = error {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
return
}
interstitial = ad
}
)
}
}
後はボタンなどの遷移する際のアクションの前に下記を追加することで広告表示ができます。今回のコードはAdmobのテスト用コードなので広告タイトルの部分にテストモードと記載されます。それが確認できれば広告表示は完了です。
interstitial?.present(fromRootViewController: self)
インタースティシャル広告はページを消した際に処理を追加するコードはデリゲートから各種設定できます。詳しくはこちらの記事をご参照ください。
「【Swift】Admob広告の表示を消した際に処理を追加する方法。〜 delegate使用 〜」
今回の記事は以上です。他にもiOSアプリ配信方法やSwift関連の開発についての記事をAIからARまで多数記載しています。気になる方は是非参考にしてください。
コメント
[…] 「【Swift】配信したアプリにAdmob広告を貼る方法」 […]
[…] 「iOSアプリをアップルストアに配信する手順」「【Swift】配信したアプリにAdmob広告を貼る方法」 […]
[…] 「配信済みのiOSアプリに広告を表示する方法ご紹介。」 […]