バナー広告をつける

Google AdMobでアプリにバナー広告を付けます。
・Webは「Google Adsense」
・モバイルは「Google AdMob」

完成形はこちら

Qボタンというアプリにバナー広告を付けました。ストーリーボードでバナー広告設定してます。

コードだけで広告設定できるようですが、ストーリーボードの方が圧倒的に楽です(ちなみに私はコードのみで広告設定しようと思いましたが、広告が表示されずに断念しました)

Google AdMobアプリ登録

AdMob会員登録

下記リンク先からGoogleユーザーIDでAdMobに申し込む
Google AdMob → https://admob.google.com/intl/ja/home/

アプリの登録

AdMob申し込み完了後にログインしたらアプリを追加しましょう

リリース済みアプリのみ追加できます

リリースしてない人は、以下記事の手順でAppリリース完了させてください

アプリID,広告IDの取得

AdMobにアプリ登録したら、アプリID広告ユニットIDが発行されます。2つのIDは、後のXcodeの編集で使用します(AdMobサイトでいつでも確認できるのでメモの必要無し)

アプリID:「cp-app-pub-数字 〜 数字」

広告ユニットID:「cp-app-pub-数字 / 数字」

Xcodeの編集

Google公式手順を見たらできますが、時間が無い人向けに簡潔にまとめます
Google公式スタートアップ → https://developers.google.cn/admob/ios/quick-start?hl=ja

ライブラリーのインストール

CocoaPodsを使ってGoogle-Mobile-Ads-SDKをインストールします

pod 'Google-Mobile-Ads-SDK'

CocoaPodsって何? CocoaPodsのインストール方法忘れた方は以下参照↓

info.plistの編集

info.plistにGADApplicationIdentifierSKAdNetworkItemsを追加して、アプリIDを記述します

広告ユニットIDではなく、アプリIDを登録しましょう

Google AdMob公式に書いてある、とても長〜いコードを追加します

        <key>GADApplicationIdentifier</key>
        <string>ca-app-pub-数字~数字</string> //←独自のアプリIDをここに入力してください
        <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>v4nxqhlyqp.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>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>4468km3ulz.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>578prtvx9j.skadnetwork</string>
            </dict>
            <dict>
                <key>SKAdNetworkIdentifier</key>
                <string>4dzt52r2t5.skadnetwork</string>
            </dict>
            <dict>
                <key>SKAdNetworkIdentifier</key>
                <string>e5fvkxwrpn.skadnetwork</string>
            </dict>
            <dict>
                <key>SKAdNetworkIdentifier</key>
                <string>8c4e2ghe7u.skadnetwork</string>
            </dict>
            <dict>
                <key>SKAdNetworkIdentifier</key>
                <string>zq492l623r.skadnetwork</string>
            </dict>
            <dict>
                <key>SKAdNetworkIdentifier</key>
                <string>3qcr597p9d.skadnetwork</string>
            </dict>
        </array>

AppDelegate.swiftの編集

AppDelegateはあまり触らない部分ですが下記の「//←広告用に追加」のコードを追記

import UIKit
import GoogleMobileAds //←広告用に追加

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Google Mobile Ads SDKの初期化
          GADMobileAds.sharedInstance().start(completionHandler: nil) //←広告用に追加
        
        return true
    }

Main.storyboardの編集

ストーリーボードの好きな位置に広告表示用のViewを配置。Viewのサイズは高さ50に固定、ClassはGADBannerViewに変更。

ViewController.swiftの編集

Main.storyboardで追加した広告表示用のViewを、ViewController.swiftにひも付けます。名前は「bannerView」クラスは「GADBannerView」を選択。

    @IBOutlet weak var bannerView: GADBannerView!

次に、GoogleMobileAdsをインポート

import UIKit
import GoogleMobileAds   //←これです

次に、classのところにGADBannerViewDelegate(デリゲート)を記入

class ViewController: UIViewController,GADBannerViewDelegate {

次に、viewDidLoad内に下記のコードを追加。広告ユニットIDは自分のAdmobサイトで確認。

    override func viewDidLoad() {
        super.viewDidLoad()
        
        bannerView.delegate = self
        bannerView.adUnitID = "ca-app-pub- 数字 / 数字 " //←あなたの広告ユニットID
        bannerView.rootViewController = self
        bannerView.load(GADRequest())

最後に、広告表示にアニメーション効果など色々と追加(よく分からない人は下記コードを全部コピペ。viewDidLoad ()内ではなく外側にコピペしてください)

    //広告にアニメーションをつける
    func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
      bannerView.alpha = 0
      UIView.animate(withDuration: 1, animations: {
        bannerView.alpha = 1
      })
    }
        
    //その他広告表示で必要そうな関数 無くても広告は表示される
    func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
      print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
    }

    func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
      print("bannerViewDidRecordImpression")
    }

    func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
      print("bannerViewWillPresentScreen")
    }

    func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
      print("bannerViewWillDIsmissScreen")
    }

    func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
      print("bannerViewDidDismissScreen")
    }

ATT対応(AppTrackingTransparency)

最後は、アプリ申請リジェクト対策です。以下記事を参照。このATT対応が原因でAppleアプリ審査でリジェクトされてアプリ広告をあきらめる人が多数いると思います。

アプリリリースでの注意点

アプリリリース手順に関しては下記記事参照↓

広告表示をするアプリはAppのプライバシー設定を変更する必要があります。この設定しないとAppleに審査してもらえません。ある程度それっぽいところにチェック入れておいたら大丈夫です。

広告収益

バナー広告の単価はよくわかりませんが平均100円/日(広告表示回数 100回/日)ぐらいです

おしまい(=´∀`)

コメント

  1. 上田 博之 より:

    iPhone アプリを開発しています。
    アダプティブバナーの搭載がうまくいかず難航していましたが、記事を読んでサクッと設定できました。
    本当にありがとうございました。

タイトルとURLをコピーしました