4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【iOS】アプリにAdMobを導入してみる

Posted at

はじめに

個人開発しているアプリに広告を表示したく調べてやってみた内容をまとめました。
今回はAdMobを使ってみました。

Google AdMob はアプリの収益化にご利用いただけるモバイル広告プラットフォームです。

利用する上での条件はこちら

Xcode 13.2.1 以降を使用していること
iOS 10.0 以降をターゲットとしていること
推奨: AdMob アカウントを作成して、アプリを登録します。

公式ドキュメントを参考にやっていきます。

環境

Xcode 14.1

内容

AdMob アカウントを作成する

  • ステップ 1: AdMob アカウントを作成する
  • ステップ 2: Google アカウントを確認する
  • ステップ 3: お支払い情報を入力する

支払い情報はお支払いタブから入力できます

アプリを登録する

すべてのアプリ画面から今回はiOSを選択して進めていく

AppStore公開済みのアプリなので検索したら表示されました

審査提出後のステップ

https://support.google.com/admob/answer/9363762?hl=ja

  • app-ads.txt を設定
    • ステップ 1: デベロッパー サイトを開設する
    • ステップ 2: app-ads.txt ファイルを作成する
    • ステップ 3: デベロッパー サイトで app-ads.txt ファイルを公開する
    • ステップ 4: AdMob による app-ads.txt ファイルのクロールと検証が終わるのを待つ
    • ステップ 5: app-ads.txt ファイルが AdMob アカウントで検証済みであることを確認する

この作業は必須ではなさそうですが、リリース後対応した方が良さそうですね

https://sunny10side.com/admob-app-ads-txt/

Mobile Ads SDK をインポートする

CocoaPodsを使ってpod install --repo-updateでインポートしていきます

Podfile
pod 'Google-Mobile-Ads-SDK'

エラーが出る場合はターミナルをRosettaを使用して開く(Finderのターミナルを右クリックから情報を見るで変更)にチェックを入れて再度インポートしてみるといけるかもしれません

Swift Package Managerを使う場合は

Info.plistに追加する

SKAdNetworkIdentifierには対象のものを追加する

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
</array>

キーポイント: 実際のアプリでは、上記の ID ではなく実際のAdMob アプリ ID を使用することが重要です。ただし、Hello World アプリで SDK を試すだけであれば、上記のサンプルのアプリ ID を使用できます。

ca-app-pub-3940256099942544~1458002511 この値を開発用で使う
リリース用の GADApplicationIdentifierはアプリ設定画面から確認して入れておく

リリースと開発で値を変えるには
User-Definedで設定値を定義してInfo.plistに$(ADMOB_APP_ID)を追加する

Info.plist
<key>GADApplicationIdentifier</key>
<string>$(ADMOB_APP_ID)</string>

さらにDebugRelease以外に設定を追加したい場合は
以前こちらの記事を書きました👇

Mobile Ads SDK を初期化する

+ import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

+   GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

警告
startWithCompletionHandler: の呼び出し時に、Mobile Ads SDK またはメディエーション パートナーの SDK によって広告のプリロードが行われる場合があります。欧州経済領域(EEA)内のユーザーから同意を得る必要がある場合は、リクエスト固有のフラグ(tagForChildDirectedTreatment や tag_for_under_age_of_consent など)を設定するか、広告が読み込まれる前になんらかの対応策を取ったうえで、Mobile Ads SDK を初期化するようにしてください。

とのことなので、リリース状況によって注意が必要です

広告フォーマットを選択する

いくつか種類がありますが、今回はバナーを選択します。

デバイス画面の上部か下部に表示される長方形の広告です。 ユーザーがアプリを操作している間は画面に残り、一定の時間が経過すると自動的に更新されます。モバイル広告を初めてお使いの場合は、この広告から始めるのが最適です。

バナーを実装する

アプリの開発とテストでは必ずテスト広告を使用し、配信中の実際の広告は使用しないでください。実際の広告でテストすると、アカウントが停止される場合があります。

テスト広告ID ca-app-pub-3940256099942544/2934735716 を開発で使用

リリース用の広告IDを取得する

設定はデフォルトのままにして完了。広告IDを取得する

GADBannerView を作成

StoryboaedにViewを追加してGADBannerViewを指定

対象のViewControllerに紐付けておく

ViewController
+    import GoogleMobileAds

+    @IBOutlet weak var bannerView: GADBannerView!

GADBannerView プロパティを設定

注: 広告ユニット ID は AdMob 管理画面で作成され、広告が表示されるアプリ内の場所を表します。たとえば、2 つのビュー コントローラでバナー広告を表示する場合、それぞれにひとつずつ広告ユニットを作成できます。

override func viewDidLoad() {
    super.viewDidLoad()
    ...

+   bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
+   bannerView.rootViewController = self
}

上記の実装でテスト表示はできるが
広告IDも開発用とリリース用で別々の値を取得する必要があるので
GADApplicationIdentifierと同じようにUser-Definedで定義

Bundle.main.object(forInfoDictionaryKey: "AdMobSettingViewBannerAdUnitId") as? String

bannerView.adUnitIDに渡すようにする

広告を読み込む

override func viewDidLoad() {
    super.viewDidLoad()
    ...

    bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
    bannerView.rootViewController = self
+   bannerView.load(GADRequest())
}

その他

GADBannerViewDelegateを実装することで広告表示のライフサイクルイベントで処理を追加することができる

以上の実装で

無事テスト用の広告が表示されました👏
サイズについてはこちらを参照したが、アダプティブ バナーとすることで自動調整されるようです

さいごに

広告表示の実装は思っていたより簡単でした。
SwiftUIで実装したアプリに導入して、また気付きポイントあればまとめてみたいと思います。

参考

https://qiita.com/am10/items/008d1314c1e4df18ab75

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?